Установка AltLinux на Btrfs

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Обязательно к прочтению[править]

Поскольку официально установщик операционной системы Alt Linux не поддерживает полноценную работу с файловой системой btrfs, данная статья является, по большому счету, лабораторным журналом и описывает наиболее удачную и работоспособную из опробованных ее автором конфигураций. Исходя из этого, необходимо понимать, что действия, описанные здесь, не всегда являются оптимальными - просто они заработали. Также необходимо понимать, что их пошаговое повторение не дает 100% гарантии успеха на вашем оборудовании, поэтому применяйте все действия на свой страх и риск. И, пожалуйста, если у вас получилось лучше, вносите изменения в эту статью.


Установка Alt Linux на файловую систему BTRFS на примере Alt Linux Starterkit P8 XFCE[править]

Зачем он нужен, этот ваш BTRFS?[править]

BTRFS, как файловая система, обладает целым набором преимуществ, наиболее интересным из которых, с точки зрения использования на предприятиях, является возможность быстрого (практически мгновенного) создания снимков состояния (снапшотов) операционной системы (как целиком, так и любой из необходимых ее частей, как то: папки пользователей, корень файловой системы, любая папка внутри системы, которую вы посчитаете необходимым сохранить) и легкое переключение между этими снимками.

Перед установкой[править]

Для установки операционной системы использовался P8 Starterkit с рабочим столом XFCE4. Данное требование не является обязательным и большой разницы между другими дистрибутивами операционной системы Alt Linux быть не должно.

Legacy и UEFI - установка немного отличается, что будет отражено в дальнейшей инструкции.

Подготовка жестких дисков[править]

После загрузки с Live cd необходимо создать таблицу разделов на жестком диске приблизительно следующего вида (sdX - жесткий диск, выбранный вами для установки операционной системы).

Для Legacy-установки

sdX1 ~500 mb - форматируем в файловой системе ext2/3/4, это у нас будет раздел /boot. 
sdX2 - форматируем в файловой системе btrfs (все свободное место, которое вы не планируете потратить под sdX1 и sdX3.
sdX3 - swap-раздел

Для UEFI-установки

sdX1 ~500 mb - форматируем в файловой системе ext2/3/4, раздел /boot
sdX2 ~500 mb - форматируем в файловой системе fat32, для установки UEFI делаем отдельный раздел /boot/efi
sdX3 - форматируем в файловой системе btrfs (все свободное место, которое вы не планируете потратить под sdX1, sdX2 и sdX4.
sdX4 - swap-раздел

Выносить на отдельный раздел /home нет необходимости, поскольку он у нас будет на подтоме внутри раздела файловой системы.

Выбор размера и расположения swap должен быть обусловлен его последующей эксплуатацией, перед созданием раздела ознакомьтесь тут с некоторыми рекомендациями.

Установка[править]

Производится посредством стандартного инсталлятора операционной системы.


Legacy

  • В установщике выбираем пункт "Настроить разделы вручную".
  • При установке указываем точку монтирования /boot для sdX1 и / для sdX2.
  • Активируем swap.

Дальнейшие действия ничем не отличаются от обычной установки на любую другую файловую систему.


UEFI

  • Указываем точки монтирования /boot для sdX1, /boot/efi для sdX2 и / для sdX3.
  • При необходимости активируем swap.

В дальнейшем устанавливаем как обычно. После установки необходимо проверить, чтобы в fstab строчка, описывающая монтирование раздела /boot, находилась выше строки, описывающей монтирование раздела /boot/efi.

После установки[править]

Приступаем к настройке структуры подтомов (все дальнейшие действия производятся от суперпользователя).

Для начала создадим в корне папку, где в дальнейшем будем хранить рабочие подтома и их снапшоты.

# mkdir /subvol

Btrfs использует подтома внутри файловой системы. Для вывода подтомов воспользуемся командой:

# btrfs subvolume list /

'/' показывает btrfs-prog, в каком разделе файловой системы искать подтома. Пока у нас существует только корневой подтом.

Приступим к созданию подтома для корня системы. Поскольку установщик Alt Linux не поддерживает установку на подтома btrfs, установка производилась сразу в корневой раздел системы - то есть, в подтом с subvolume id = 5. Сделаем его снапшот:

# btrfs subvolume snap / /@ 

В файловом менеджере снапшот корневой системы будет выглядеть обычной папкой, так что "@" используется в этой инструкции исключительно для удобства идентификации, в остальном никаких ограничений не существует.

Теперь создадим подтом для домашних папок:

# btrfs subvolume create /@home

На этом этапе нам необходимо скопировать папки с пользователями из папки /home в папку /@home. Убедитесь в корректном выставлении прав.

Если на этом этапе запросить список подтомов, выглядеть он будет примерно следующим образом:

# btrfs subvolume list /
ID 257 gen 600 top level 5 path @
ID 258 gen 35 top level 5 path @home

Для дальнейшей настройки потребуются ID подтомов.

Вставим в fstab строки для настройки монтирования корневого подтома, в котором будут храниться снапшоты, к папке subvols, а подтома @home - к папке /home:

UUID=XXXX /subvols btrfs noatime,subvolid=5,nofail 1 1 # где XXXX - уникальный UUID вашего раздела с файловой системой btrfs.
UUID=XXXX /home btrfs noatime,subvol=@home,nofail 1 1

UUID у обоих одинаковый, поскольку том один, а вот опции subvol/subvolid различаются. При использовании subvol необходимо прописывать маршрут к подтому (в нашем случае @home лежит в корневом томе), если же использовать subvolid, достаточно просто указать ID из 'btrfs subvolume list' - в примере это 258.

В принципе, с помощью fstab можно настроить монтирование и корневого диска, однако при этом придется прописывать опции для Grub, поэтому предлагаю для корня использовать средства btrfs-prog. Собственно, делается это так:

# btrfs subvolume set-default 257 / # где 257 в нашем примере - ID подтома @. Этой командой мы указываем, что подтомом по умолчанию для папки / будет @.

После перезагрузки компьютера у нас получится следующая структура:

  • В корневом подтоме btrfs (subvolid 5) у нас созданы два подтома @ и @home, которые примонтированы как корневая папка операционной системы и папка пользователей соответственно.
  • Доступ в подтом 5 осуществляется через папку subvols в корне операционной системы.

Если у вас все так и получилось, можно удалить файлы операционной системы из папки /subvols (кроме двух подтомов, естественно) - и установка Alt Linux на btrfs закончена.

Создание и управление снапшотами btrfs[править]

Создание снапшотов[править]

Приступим к тому, ради чего все затевалось: созданию мгновенных снапшотов.

Файловая система btrfs работает по технологии Copy-on-Write, благодаря чему создание снапшота - невероятно простое дело и занимает несколько секунд:

# btrfs subvolume snap /subvols/@ /subvols/@$(date +%d%m)

Где "/subvols/@" - путь в файловой системе до нашего подтома, а "/subvols/@$(date +%d%m)" - путь и название снапшота по дате его создания.

В случае успеха команда даст следующий ответ:

 Create a snapshot of '/subvols/@' in '/subvols/@2111' 

Повторяем операцию для домашней папки

# btrfs subvolume snap /subvols/@home /subvols/@home$(date +%d%m) 
 Create a snapshot of '/subvols/@home' in '/subvols/@home2111' 

Проверяем:

# btrfs subvolume list /
ID 257 gen 688 top level 5 path @
ID 258 gen 689 top level 5 path @home
ID 265 gen 678 top level 5 path @2111
ID 266 gen 682 top level 5 path @home211

Создание снапшотов закончено.

Переход по снапшотам[править]

Для отката корневой системы в предыдущее состояние достаточно набрать команду

# btrfs subvolume set-default 265 / # 265 - ID снапшота корня.

Для перехода на снапшот домашней папки достаточно поправить путь до подтома (или его ID, если монтирование проходит по опции subvolid=) в /etc/fstab, либо переименовав папки @home в, например, @home_broken, а @home2111 - в @home (работает только если монтирование в /etc/fstab настроено по опции subvol=).