1) Установка Debian.
Ставим Debian как обычно. Никаких дополнительных настроек. Все настройки Btrfs будут выполнены после установки системы. Также не станем делать отдельный раздел для /home, так как мы будем создавать /home на подтоме Btrfs.
2) Настройка подтомов Btrfs.
Когда установка системы закончилась, загружаемся с заранее подготовленной флешки с SystemRescueCD (или любым другим). После этого монтируем файловые системы Debian:
Код: Выделить всё
# mkdir /mnt/rootfs/
# mount /dev/sda3 /mnt/rootfs/Код: Выделить всё
# btrfs subvol create /mnt/rootfs/@Код: Выделить всё
# btrfs subvolume list /mnt/rootfs/
ID 268 gen 4624 top level 5 path @Код: Выделить всё
# cd /mnt/rootfs
# ls -1 | egrep -v '@|home' | while read d; do mv "$d" @/; doneКод: Выделить всё
# btrfs subvol create /mnt/rootfs/@homeКод: Выделить всё
# mv home/* @home/
# rmdir home
# mkdir @/homeКод: Выделить всё
# ls -l /mnt/rootfs/
total 0
drwxr-xr-x 1 root root 204 Jul 16 02:26 @
drwxr-xr-x 1 root root 14 Jul 16 18:51 @homeКод: Выделить всё
# btrfs subvolume list /mnt/rootfs/
ID 268 gen 4624 top level 5 path @
ID 426 gen 5355 top level 5 path @homeКод: Выделить всё
/dev/sda3 /home btrfs noatime,subvol=@home 0 0Код: Выделить всё
# btrfs subvolume set-default 268 /mnt/rootfs/Теперь пришло время для перезагрузки обратно в Debian.
3) Настройка GRUB 2.
Теперь нужно изменить подтом по умолчанию обратно на том верхнего уровня. В противном случае, настройки GRUB слетят при следующем обновлении (update-grub). Подтом верхнего уровня всегда имеет ID 5. Сначала надо смонтировать его:
Код: Выделить всё
# mkdir /mnt/rootfs/
# mount -o subvolid=5 /dev/sda3 /mnt/rootfs/Код: Выделить всё
# btrfs subvolume set-default 5 /mnt/rootfs/Обновляем конфигурацию GRUB:
Код: Выделить всё
# update-grubКод: Выделить всё
# grep '/@/' /boot/grub/grub.cfg
if loadfont /@/usr/share/grub/unicode.pf2 ; then
set locale_dir=($root)/@/boot/grub/locale
if background_image /@/usr/share/images/desktop-base/joy-grub.png; then
linux /@/boot/vmlinuz-3.9-1-amd64 root=UUID=4577942d-0841-42e9-a2f3-3d04b91ff2d5 ro rootflags=subvol=@ i915.i915_enable_rc6=1 i915.lvds_downclock=1 pcie_aspm=force cgroup_enable=memory quiet
initrd /@/boot/initrd.img-3.9-1-amd64
linux /@/boot/vmlinuz-3.9-1-amd64 root=UUID=4577942d-0841-42e9-a2f3-3d04b91ff2d5 ro single rootflags=subvol=@
initrd /@/boot/initrd.img-3.9-1-amd64Код: Выделить всё
# grub-install /dev/sdaДобавим в /etc/fstab опцию монтирования "subvol=@" к "/"
Код: Выделить всё
UUID=4577942d-0841-42e9-a2f3-3d04b91ff2d5 / btrfs noatime,subvol=@,compress=lzo 0 05) Снапшоты и откаты системы.
Делать снимки состояния (снапшоты) и откатываться на них легко:
Код: Выделить всё
# mount /dev/sda3 /mnt/rootfs/
# cd /mnt/rootfs/
# btrfs subvolume snapshot @ @_snapshotКод: Выделить всё
# cd /mnt/rootfs/
# mv @ @_old
# mv @_snapshot @Код: Выделить всё
# mount /dev/sda3 /mnt/rootfs/
# cd /mnt/rootfs/
# btrfs subvolume delete @_old


