Во-первых, мы создадим нужный нам макет в подобъеме по умолчанию:
btrfs subvolume snapshot / /rootfs
mkdir /snapshots
Обратите внимание, что /rootfs
это будет наша новая корневая файловая система, поэтому не делайте никаких изменений в текущей после этого шага.
Отредактируйте, /rootfs/etc/fstab
чтобы система использовала новый дочерний том rootfs в качестве корневой файловой системы. Для этого вам нужно изменить его, чтобы включить subvol=rootfs
опцию.
смонтируйте где-нибудь нашу новую корневую файловую систему, смонтируйте соответствующие файловые системы (dev, sys, proc, загрузитесь, если у вас есть), выполните chroot к нему и обновите 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
Вот и все. Перезагрузитесь, и ваша корневая файловая система должна быть подтомом rootfs. Если это удалось, не должно быть никакого каталога / snapshots. Теперь вы можете удалить содержимое старой корневой файловой системы в подобъеме по умолчанию.
Если вы хотите, вы можете сделать постоянную точку монтирования для подсоба по умолчанию:
mkdir /media/btrfs/root
тогда вы можете mount -o subvolid=0 /dev/sdXX /media/btrfs/root
и создавать свои снимки / подобъемы.
btrfs subvolume set-default ID /
.ID
можно найти с помощью `subvol=/rootfs
(обратите внимание/
) на то,fstab
что это кажется «правильным» способом, описанным в (btrfs wiki) [ btrfs.wiki.kernel.org/index.php/Mount_options] .subvol=/rootfs
заключается в том, что любая программа, которая не знает о вашем макете (например, установщики дистрибутивов), вместо этого будет монтировать подобъем по умолчанию. Если программа ожидает, что файловая система будет похожа на файловую систему linux, если произойдет сбой или что-то еще хуже, заполните свойfstab
или загрузят конфигурацию загрузчика.