loop += Nicholas, who has been working on btrfs integration.

Cheers,
-- 
Cyril Brulebois (k...@debian.org)            <https://debamax.com/>
D-I release manager -- Release team member -- Freelance Consultant


Osamu Aoki <os...@debian.org> (2021-02-20):
> Hi,
> 
> Knowing bulleseye 11 release is near and this issue may stay, people
> may need to work around this issue of btrfs subvolume as root
> partition.  Here is my WORKAROUND suggestion.
> 
> (Please note that my patch proposal in my original bug report is not-
> yet tested well.)
> 
> The current Debian Grub2 code at /etc/grub.d/30_os-prober requires to
> access some root partion contents from the btrfs ID 5 (FS_TREE) to
> function well.  (subvol=/)  
> 
> If you want to use timeshift (Ubuntu origin?) or snapper (Suse origin
> ?), they seem to use non-ID-5 subvol for the system install, i.e.,
> root-FS.  People use these tools on Debian too.
> 
> https://qa.debian.org/popcon-graph.php?packages=timeshift+snapper+snapper-gui+btrbk+btrfsmaintenance+duperemove&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1
> 
> 
> === WORKAROUND ===
> 
> Let's suppose your another linux installation on another formatted in
> btrfs at partion "/dev/nvme1n1p1" has its root-FS content in
> "subvol=@", please perform followings:
> 
> -----
> $ sudo mount -t btrfs -o subvol=/,defaults /dev/nvme1n1p1 /mnt
> $ cd /mnt
> $ sudo ln -sf @/boot boot
> $ sudo ln -sf @/etc  etc
> $ sudo ln -sf @/usr  usr
> $ sudo ln -sf @/lib  lib
> $ sudo ln -sf @/initrd.img initrd.img
> $ sudo ln -sf @/vmlinuz    vmlinuz
> $ sudo ln -sf @/initrd.img.old initrd.img.old
> $ sudo ln -sf @/vmlinuz.old    vmlinuz.old
> $ sudo btrfs subvol set-default /mnt/@
> $ cd /
> $ sudo umount /mnt
> -----
> 
> This assumes you do not have conflicting contents in subvol=/.
> 
> If you happen to use other subvol for the root-FS content, replace its
> subvol name in place of "@".
> 
> 
> === Additional Tips ===
> 
> You can convert a system from EXT2/3/4 to btrfs as follows by booting
> system from another system on the multiboot set-up.
> 
> File system conversion is trivial as described in
> https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3
> 
> -----
> $ sudo fsck.ext3 -f /dev/xxx
> $ sudo btrfs-convert /dev/xxx
> $ sudo mount -t btrfs /dev/xxx /mnt
> -----
> 
> You need to make some adjustment to cope with new filesystem ant its
> new blkid by adjustng at least /etc/fstab and /boot/grub/grub.cfg .
> 
> Please note UUID of partition changes after btrfs-convert.
> Please check 
> 
> -----
> --- fstab.orig  2021-02-19 14:49:32.768895933 +0900
> +++ fstab       2021-02-19 14:49:19.860921576 +0900
> @@ -6,6 +6,6 @@
>  #
>  # <file system> <mount point>   <type>  <options>       <dump>  <pass>
>  # / was on /dev/nvme1n1p1 during installation
> -UUID=491a357c-822f-4f38-b56e-b998baea81a5      /       ext4 
> errors=remount-ro 0       1
> +UUID=9be0d928-5892-4cdd-a647-1e8cce937b2e      /       btrfs defaults
> 0       1
>  # /boot/efi was on /dev/nvme0n1p1 during installation
> -----
> 
> 
> Also, you need to update many relevant parts of grub.cfg, too.  Roughly
> as ...
> -----
> --- grub.cfg-orig       2021-02-17 09:32:35.855910912 +0900
> +++ grub.cfg    2021-02-19 14:26:12.728005239 +0900
> ...
> -insmod ext2
> +insmod btrfs
> ...
> -  search --no-floppy --fs-uuid --set=root  491a357c-822f-4f38-b56e-
> b998baea81a5
> +  search --no-floppy --fs-uuid --set=root  9be0d928-5892-4cdd-a647-
> 1e8cce937b2e
> ...
> -       linux   /boot/vmlinuz-5.10.0-3-amd64 root=UUID=491a357c-822f-
> 4f38-b56e-b998baea81a5 ro  quiet
> +       linux   /boot/vmlinuz-5.10.0-3-amd64 root=UUID=9be0d928-5892-
> 4cdd-a647-1e8cce937b2e ro  quiet
> ...
> -----
> 
> The UUID change to the "linux ..." line is important since it will
> affect how this alternative partion update is grub configuration.
> 
> If you wish to move all this nely migrated system to a subvolume, just
> snapshot it to "@" or anything you like using "btrfs subvolume snapshot
> /mnt /@" command.
> 
> Of course, if your new system is at subvol=@, you need to adjust
> /etc/fstab as;
> 
> -----
> --- fstab.orig  2021-02-19 14:49:32.768895933 +0900
> +++ fstab       2021-02-19 14:49:19.860921576 +0900
> @@ -6,6 +6,6 @@
>  #
>  # <file system> <mount point>   <type>  <options>       <dump>  <pass>
>  # / was on /dev/nvme1n1p1 during installation
> -UUID=491a357c-822f-4f38-b56e-b998baea81a5      /       ext4 
> errors=remount-ro 0       1
> +UUID=9be0d928-5892-4cdd-a647-1e8cce937b2e      /       btrfs
> subvol=@,defaults 0       1
>  # /boot/efi was on /dev/nvme0n1p1 during installation
> -----
> 
> And then move on to use WORKAROUND as described in the above.
> 
> On Fri, 2021-02-19 at 14:12 +0000, Debian Bug Tracking System wrote:
> > ...
> > You can follow progress on this Bug here: 983107:
> > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=983107.

Attachment: signature.asc
Description: PGP signature

Reply via email to