Установка Rosa в btrfs с подтомами на этапе установки

Материал из Rosalab Wiki
Версия от 19:12, 27 января 2018; Filicorn (обсуждение | вклад) (Устанавливаем систему)

Перейти к: навигация, поиск

Установка Rosa в btrfs с подтомами на этапе установки

Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы. Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов. В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.

Основные команды, которыми мы будем пользоваться

mount
umount
btrfs subvolume list
btrfs subvolume create
btrfs subvolume snapshot
mv

Разметим диск

Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap. Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти. Получим три раздела:

/sda1	/boot   ext4  	 350Mb-500Mb
/sda2	/	btrfs	 50Gb
/sda3   swap		 4Gb

Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.

Создание подтомов в системе btrfs

Открываем терминал. Включаем суперюзера

su -

Смонтируем наш раздел с btrfs в /mnt

mount /dev/sda2 /mnt

Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:

btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home

Проверим, что подтома созданы верно @ и @home

ls /mnt
 @/ @home/

Видим наши подтома, все прекрасно. Продолжаем.

Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".

umount /mnt

Устанавливаем систему

Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в "Параметры монтирования → Дополнительно → Различные" и в строку вставим:

subvol=@

Далее продолжаем установку без форматирования разделов!!!!

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

После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером

mount /dev/sda2 /mnt

Посмотрим наши подтома:

btrfs subvolume list /mnt
 ID 257 gen 44 top level 5 path @
 ID 261 gen 43 top level 5 path @home

В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.

Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).
Значит что-то пошло не так на этапе создания подтомов!!!

Создадим снапшот корня

btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot

Проверяем list:

btrfs subvolume list /mnt
 ID 257 gen 44 top level 5 path @
 ID 261 gen 43 top level 5 path @home
 ID 262 gen 44 top level 5 path @_snapshot

Перенос домашнего каталога в подтом на btrfs

Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.

Для отображения процесса переноса зададим команду через -v

mv -v /mnt/@/home/* /mnt/@home

Проверяем, что перенесли правильно:

ls /mnt/@home
 vik/

Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст

ls /mnt/@/home

Поправим fstab

Установим текстовый редактор nano

urpmi nano

Горячие клавиши в nano:

выделить строку shift+end, копировать Alt+6, вставить Ctrl+U, сохранить изменения  Ctrl+O, выход Ctrl+X.

Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano

nano /mnt/@/etc/fstab

Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду

UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0

О параметрах интервалов проверки файловой системы вы может прочесть на арчвики fsck. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache

Теперь отмонтируем наш раздел

umount /mnt

Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!

Переходы по снапшотам

Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!

Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе

su -

Смонтируем /dev/sdа2 в /mnt:

mount /dev/sdа2 /mnt 

Переименуем наш кореневой подтом @ в @_old:

mv /mnt/@ /mnt/@_old

А снапшот @_snapshot переименуем в кореневой подтом @:

mv /mnt/@_snapshot /mnt/@

Отмонтируем

umount /mnt

Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!! Удалить лишние подтома можно командой

btrfs subvolume delete /mnt/@_old

Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.

Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.

Последние шаги

После того, как все настроено можно провести дефрагментацию и перебалансировку системы Смонтируем /dev/sdа2 в /mnt:

mount /dev/sdа2 /mnt 

Сделаем дефрагментацию:

btrfs fi defrag -r /mnt

Перебалансировка системы

btrfs balance start /mnt

Макет системы

subvolid=5
|
| ────  @
| 	|
| 	|── /usr
| 	|
| 	|── /bin
| 	|
| 	|── /home (пустой каталог)
| 	|── …
|
|
|── @home
|── @_snapshot
|
└── @...

Благодарность за помощь в редакции данной статьи Михаилу Новоселову!


Внешние ссылки

Вики btrfs

Опции монтирования

Балансировка btrfs