Przenieś instalację systemu Linux za pomocą btrfs na domyślnej objętości podrzędnej (subvolid = 0) do innej objętości podrzędnej

15

Podczas instalacji w głównym systemie plików btrfs wiele dystrybucji Linuksa instaluje się w domyślnej podwolumnie. Jeśli pozostanie niezmodyfikowany, ten układ wymusi utworzenie migawek lub podwoluminów w głównym systemie plików, co może być niepożądane. Innym możliwym układem byłoby posiadanie domyślnej podobjętości zawierającej snapshotskatalog i rootfspodobjętość, która jest głównym systemem plików. Jak mogę zmienić domyślną instalację btrfs dystrybucji, aby używać tego układu objętości wolnej od rozruchu z płyty live?

goncalopp
źródło

Odpowiedzi:

15

Po pierwsze, utworzymy układ, który chcemy w domyślnej podobjętości:

btrfs subvolume snapshot / /rootfs
mkdir /snapshots

Pamiętaj, że /rootfsbędzie to nasz nowy główny system plików, więc nie wprowadzaj żadnych zmian w bieżącym po tym kroku.

Edytuj, /rootfs/etc/fstababy system używał nowej podobjętości rootfs jako głównego systemu plików. W tym celu musisz go zmodyfikować, aby zawierał subvol=rootfsopcję.

zamontuj gdzieś nasz nowy główny system plików, zamontuj odpowiednie systemy plików (dev, sys, proc, boot, jeśli go masz), chroot do niego i zaktualizuj grub:

mount -o subvol=rootfs /dev/sdXX /media/temporary
cd /media/temporary
mount -o bind /dev  dev
mount -o bind /sys  sys
mount -o bind /proc proc
mount -o bind /boot boot
chroot .
update-grub
exit

Otóż ​​to. Uruchom ponownie, a główny system plików powinien być podobjętością rootfs. Jeśli to się powiedzie, nie powinno być żadnego katalogu / snapshots. Możesz teraz usunąć zawartość starego głównego systemu plików z domyślnej objętości podrzędnej.

Jeśli chcesz, możesz utworzyć stały punkt montowania dla domyślnej objętości podrzędnej:

mkdir /media/btrfs/root

możesz mount -o subvolid=0 /dev/sdXX /media/btrfs/roottworzyć i tworzyć migawki / podwolumny.

goncalopp
źródło
1
Zauważ też, że zamiast montowania, chrootowania i aktualizacji gruba, możesz po prostu ustawić domyślną podobjętość jako rootfs btrfs subvolume set-default ID /. IDmożna znaleźć za pomocą `subvolume list` btrfs /
goncalopp
Dodałem subvol=/rootfs(zwróć uwagę na /), fstabponieważ wydaje się, że jest to „właściwy” sposób, jak opisano w (btrfs wiki) [ btrfs.wiki.kernel.org/index.php/Mount_options] .
go2null
@ go2null Problem z używaniem subvol=/rootfspolega na tym, że każdy program, który nie jest świadomy twojego układu (na przykład instalatory dystrybucji) zamiast tego zamontuje domyślne podwolumny. Jeśli program spodziewa się, że system plików będzie wyglądał jak system plików Linux, jeśli zawiedzie lub gorzej - wypełnij swoje domyślne podobjętości rzeczy, których tam nie chcesz
goncalopp
hmm, pomyślałbym, że postępy, które bałaganią w systemach plików, przynajmniej sprawdzą fstabkonfigurację bootloadera.
go2null