Установка Rosa в btrfs с подтомами на этапе установки
Содержание
Установка 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 | └── @...
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!
Внешние ссылки