Установка Debian на подтом Btrfs
Добавлено: 03 апр 2015, 08:00
Внимание: после недавних обновлений, система отказывается загружаться по данной инструкции. Решение простое - при разметке диска, вынести /boot на отдельный раздел с файловой системой ext2 (можно и ext4) и всё будет работать.
1) Установка Debian.
Ставим Debian как обычно. Никаких дополнительных настроек. Все настройки Btrfs будут выполнены после установки системы. Также не станем делать отдельный раздел для /home, так как мы будем создавать /home на подтоме Btrfs.
2) Настройка подтомов Btrfs.
Когда установка системы закончилась, загружаемся с заранее подготовленной флешки с SystemRescueCD (или любым другим). После этого монтируем файловые системы Debian:
Создаём подтом "@"
Для проверки созданного подтома:
Затем переносим все данные на созданные подтома:
Создаём подтом для "/home"
После этого переносим содержимое "/home" на созданный подтом и создаём точку монтирования:
Затем убедимся, что все данные находятся в нужных подтомах:
и
Далее необходимо внести изменения в /etc/fstab (в /mnt/rootfs/@/etc/fstab) и добавить конфигурацию точки монтирования /home. Выглядит это так:
Для того чтобы можно было загружаться в Debian, нужно временно установить подтом "@" по умолчанию:
268 это ID @ , смотрите список подтомов выше.
Теперь пришло время для перезагрузки обратно в Debian.
3) Настройка GRUB 2.
Теперь нужно изменить подтом по умолчанию обратно на том верхнего уровня. В противном случае, настройки GRUB слетят при следующем обновлении (update-grub). Подтом верхнего уровня всегда имеет ID 5. Сначала надо смонтировать его:
Теперь можно изменить подтом по умолчанию:
Готово, можно обновить конфигурацию GRUB. “update-grub” корректно обнаруживает, что система использует подтом "@" и соответственно обновляет /boot/grub/grub.cfg. Вот почему нельзя продолжать использовать подтом "@" по умолчанию (c ID 268), а не том верхнего уровня. "/boot/grub/grub.cfg" имел бы конфигурацию "linux /@/boot/vmlinuz", но нет другого подтома "@" в подтоме "@", и таким образом путь будет неверным.
Обновляем конфигурацию GRUB:
Убедимся что /boot/grub/grub.cfg обновился:
Теперь нужно переустановить GRUB с измененной конфигурацией, в противном случае он не сможет найти необходимые файлы на новых местах:
4) Последний штрих.
Добавим в /etc/fstab опцию монтирования "subvol=@" к "/"
Перезагрузиться и готово.
5) Снапшоты и откаты системы.
Делать снимки состояния (снапшоты) и откатываться на них легко:
Если надо загрузиться с "@_snapshot" вместо "@" нужно просто переименовать подтома:
Перезагрузка, и используется вновь созданный подтом (снапшот). Если @_old не нужен, его можно просто удалить:
Источник http://blog.kourim.net/installing-debia ... -subvolume
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