http://wiki.rosalab.com/ru/api.php?action=feedcontributions&user=Filicorn&feedformat=atomRosalab Wiki - Вклад участника [ru]2024-03-29T01:46:04ZВклад участникаMediaWiki 1.26.4http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=19129Установка Rosa в btrfs с переносом в подтома после установки2022-01-17T19:36:47Z<p>Filicorn: /* Перенос в подтома */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса и линукс в целом, обязательна к прочтению начинающим и опытным пользователям, а также на более глубокое понимание файловой системы btrfs. Позволит повысить вам стабильность, отказоустойчивость системы. Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br /> '''<br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру: раздел с btrfs на sda1 - один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы Вы для себя понимали структуру, их расположение и связь. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./ - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Пояснение - дополнение'''<br /><br />
Этим способом переноса домашнего каталога также можно воспользоваться, если вы хотите установить свежую систему на новый HDD или SSD<br />и при этом сохранить все настройки пользователя, при использовании любой другой файловой системы.<br />Для этого переносим домашний каталог на новый раздел смонтированного диска, вышеописанным способом. Далее устанавливаем систему на новый HDD или SSD, задаем точки монтирования, раздел /home оставляем без форматирования, при установке должны быть введены - тот же пользователь, что и был раньше, а также пароли, используемые ранее.<br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br />
Таким образом, в правой части файлового менеджера mc должно остаться два подтома: '''@''', '''@home'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - проверяем, видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - проверяем, видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик, но не торопимся перегружаться (читаем ниже)<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
<br />
В частности, для дистрибутива LinuxMint Debian Edition "Cindy", обязательно необходимо применить команду:<br />
grub-install /dev/sda<br />
<br />
'''Примечание'''<br />
Создание снапшотов очень удобно делать и использовать программой с графическим интерфейсом '''"Timeshift"''', которая входит в состав этого дистрибутива с LMDE. Ознкомиться с ее работой вы можете по ссылкам:<br /><br />
[https://teejeetech.in/timeshift/ Timeshift - Утилита восстановления системы для Linux (англ.)]<br />
[https://www.alv.me/timeshift-btrfs/ Timeshift - Утилита восстановления системы для Linux (русский)]<br />
[https://www.alv.me/mint-19-i-timeshift-btrfs-ochen-neprostaya-mashina-vremeni/#comment-109457 Timeshift - Кратко как работать с программой с картинками (русский)]<br />
<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущенной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для всех подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br /><br />
Переименуем наш кореневой подтом '''@''' в '''@_old''':<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />Посмотрим каталог /opt:<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default может нарушить макет установленный по умолчанию, применение ее после проделанной инструкции не желательно без опыта!'''<br />
'''Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
== '''В заключении''' ==<br />
После всех манипуляций и настроек рекомендуем ознакомиться с инструментами fstrim, filefrag при использовании Btrfs на SSD, воспользовавшись руководствами man.<br /><br />
Провести балансировку и дефрагментацию системы, как описано в [http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit этой] статье.<br /><br />
Раз в месяц или меньше рекомендуем пользоваться командой btrfs scrub start <путь>, она считывает все блоки данных и метаданных со всех устройств и проверяет контрольные суммы. Автоматически восстанавливает поврежденные блоки, если есть правильная копия. Дополнительную информацию вы можете посмотреть по внешней ссылке "Btrfs in Calculate Linux" в конце статьи.<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[https://wiki.calculate-linux.org/ru/btrfs Btrfs in Calculate Linux - (для ознакомления)]<br /><br />
[https://wiki.archlinux.org/index.php/Btrfs Btrfs in Arch Linux wiki - (для ознакомления)]<br /><br />
[https://ctlos.github.io/wiki/btrfs/btrfs-part1/ Btrfs in CTLOS Linux (Arch based) - (для ознакомления)]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=UEFI&diff=18578UEFI2020-04-17T07:28:09Z<p>Filicorn: </p>
<hr />
<div>{{Дописать}}<br />
===UEFI===<br />
EFI - интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, его основное предназначение: корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы. UEFI BIOS замена устаревшего BIOS — интерфейса, который идет во всех современных материнских платах.<br />
<br />
===ROSA SUPPORT===<br />
ROSA начала поддержку UEFI с версии ROSA 2012 Desktop Alpha2 iso образов. В настоящее время реализация поддержка UEFI находится в стадии тестирования и могут быть некоторые ограничения. Требуются результаты тестов от реальных аппаратных средств и отчеты об ошибках. В настоящее время ROSA по-прежнему имеет 2 комплекта ISO-образов, с (x86_64) и без (i586) поддержки UEFI. Чтобы проверить, что ваши ISO образы имеют встроенную поддержку - просто посмотрите на содержимое ISO. Если вы видите папку с EFI - ваши образы должны загружаться на UEFI оборудовании.<br />
<br />
===Основные отличия UEFI от BIOS===<br />
<br />
* Поддержка GPT (GUID Partition Table)<br />
<br />
GPT — новый способ разметки, замена MBR. В отличие от MBR, GPT поддерживает диски размером более 2ТБ и неограниченное количество разделов, в то время как MBR поддерживает без костылей только 4. UEFI по умолчанию поддерживает FAT32 с GPT-разделов. MBR сам UEFI не поддерживает, поддержка и загрузка с MBR осуществляется расширением CSM (Compatibility Support Module)<br />
<br />
* Поддержка сервисов<br />
<br />
В UEFI есть два типа сервисов: boot services и runtime services. Первые работают только до загрузки ОС и обеспечивают взаимодействие с графическими и текстовыми терминалами, шинами, блочными устройствами и т.д., а runtime services может использовать ОС.<br />
<br />
* Встроенный менеджер загрузки<br />
<br />
Для UEFI не требуется ставить загрузчик, если вы хотите мультизагрузку. Можно добавлять свои пункты меню, и они появятся в загрузочном меню UEFI, вместе с дисками и флешками. Это очень удобно и позволяет грузить Linux без загрузчика, а сразу ядро. Таким образом, можно установить Windows и Linux без сторонних загрузчиков.<br />
<br />
* Модульная архитектура<br />
<br />
Вы можете использовать свои приложения в UEFI. Вы можете загружать свои драйверы в UEFI.<br />
<br />
* Secure Boot<br />
<br />
Secure Boot (защищенная загрузка или безопасная загрузка) – это одна из функций UEFI, позволяющая бороться с руткитами и буткитами (которые используют уязвимости в прошивке BIOS) еще на предварительном этапе загрузки ОС.<br />
<br />
===Preparing UEFI bootable flash drives===<br />
Currently there are different ways of preparing UEFI bootable flash drives:<br />
<br />
1) Using the livecd-iso-to-disk from the livecd-tools rosa2012.1 package.<br />
* - insert your flash drive<br />
* - check it's device name ( with blkid command )<br />
* - Run <pre>livecd-iso-to-disk --efi --format /pathtoisoimage/isoimagename.iso /dev/sdX</pre> (where X is the device letter that you got from blkid on previous step ).<br />
<br />
<br><br />
'''Under testing:'''<br />
<br>2) Using the dd command<br />
CAREFUL! DD command may and will completely wipe your device. Please check your target device very carefully!<br />
* - insert your flash drive<br />
* - check it's device name ( with blkid command )<br />
* - run <pre>dd if=/pathtoisoimage/imagename.iso /dev/sdX bs=8M</pre> (where X is the device letter that you got from blkid on previous step ).<br />
<br />
3) Usually latest unetbootin in "iso" mode should also provide the bootable UEFI flash drive<br />
<br />
<br>'''TODO:'''<br />
<br>4) Manually formatting and partitioning of the flash drive<br />
<br />
=== Bugs and feature requests ===<br />
For any bug reports and feature requests please visit [http://bugs.rosalinux.com bugzilla]<br />
<br />
=== Ресурсы ===<br />
[https://wiki.archlinux.org/index.php/EFI_system_partition_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI system partition (Русский) на арчвики]<br><br />
[https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface Extensible Firmware Interface (EFI) на Википедии]<br />
<br />
<br />
[[Категория:Документация]]<br />
[[en:UEFI]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=18485Установка Rosa в btrfs с переносом в подтома после установки2020-01-26T17:23:24Z<p>Filicorn: /* Перенос в подтома */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса и линукс в целом, обязательна к прочтению начинающим и опытным пользователям, а также на более глубокое понимание файловой системы btrfs. Позволит повысить вам стабильность, отказоустойчивость системы. Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br /> '''<br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру: раздел с btrfs на sda1 - один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы Вы для себя понимали структуру, их расположение и связь. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./ - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Пояснение - дополнение'''<br /><br />
Этим способом переноса домашнего каталога также можно воспользоваться, если вы хотите установить свежую систему на новый HDD или SSD<br />и при этом сохранить все настройки пользователя, при использовании любой другой файловой системы.<br />Для этого переносим домашний каталог на новый раздел смонтированного диска, вышеописанным способом. Далее устанавливаем систему на новый HDD или SSD, задаем точки монтирования, раздел /home оставляем без форматирования, при установке должны быть введены - тот же пользователь, что и был раньше, а также пароли, используемые ранее.<br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br />
Если вдруг удалили папку '''/home''', во время переноса "оптом" всех папок, то кнопкой '''F5''' скопируйте её назад. Таким образом, в правой части файлового менеджера mc должно остаться три папки: '''@''', '''@home''', '''/home'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - проверяем, видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - проверяем, видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик, но не торопимся перегружаться (читаем ниже)<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
<br />
В частности, для дистрибутива LinuxMint Debian Edition "Cindy", обязательно необходимо применить команду:<br />
grub-install /dev/sda<br />
<br />
'''Примечание'''<br />
Создание снапшотов очень удобно делать и использовать программой с графическим интерфейсом '''"Timeshift"''', которая входит в состав этого дистрибутива с LMDE. Ознкомиться с ее работой вы можете по ссылкам:<br /><br />
[https://teejeetech.in/timeshift/ Timeshift - Утилита восстановления системы для Linux (англ.)]<br />
[https://www.alv.me/timeshift-btrfs/ Timeshift - Утилита восстановления системы для Linux (русский)]<br />
[https://www.alv.me/mint-19-i-timeshift-btrfs-ochen-neprostaya-mashina-vremeni/#comment-109457 Timeshift - Кратко как работать с программой с картинками (русский)]<br />
<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущенной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для всех подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br /><br />
Переименуем наш кореневой подтом '''@''' в '''@_old''':<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />Посмотрим каталог /opt:<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default может нарушить макет установленный по умолчанию, применение ее после проделанной инструкции не желательно без опыта!'''<br />
'''Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
== '''В заключении''' ==<br />
После всех манипуляций и настроек рекомендуем ознакомиться с инструментами fstrim, filefrag при использовании Btrfs на SSD, воспользовавшись руководствами man.<br /><br />
Провести балансировку и дефрагментацию системы, как описано в [http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit этой] статье.<br /><br />
Раз в месяц или меньше рекомендуем пользоваться командой btrfs scrub start <путь>, она считывает все блоки данных и метаданных со всех устройств и проверяет контрольные суммы. Автоматически восстанавливает поврежденные блоки, если есть правильная копия. Дополнительную информацию вы можете посмотреть по внешней ссылке "Btrfs in Calculate Linux" в конце статьи.<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[https://wiki.calculate-linux.org/ru/btrfs Btrfs in Calculate Linux - (для ознакомления)]<br /><br />
[https://wiki.archlinux.org/index.php/Btrfs Btrfs in Arch Linux wiki - (для ознакомления)]<br /><br />
[https://ctlos.github.io/wiki/btrfs/btrfs-part1/ Btrfs in CTLOS Linux (Arch based) - (для ознакомления)]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=18484Установка Rosa в btrfs с переносом в подтома после установки2020-01-26T17:02:32Z<p>Filicorn: /* Делаем chroot и Правим fstab */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса и линукс в целом, обязательна к прочтению начинающим и опытным пользователям, а также на более глубокое понимание файловой системы btrfs. Позволит повысить вам стабильность, отказоустойчивость системы. Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br /> '''<br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру: раздел с btrfs на sda1 - один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы Вы для себя понимали структуру, их расположение и связь. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./ - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br />
Если вдруг удалили папку '''/home''', во время переноса "оптом" всех папок, то кнопкой '''F5''' скопируйте её назад. Таким образом, в правой части файлового менеджера mc должно остаться три папки: '''@''', '''@home''', '''/home'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - проверяем, видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - проверяем, видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик, но не торопимся перегружаться (читаем ниже)<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
<br />
В частности, для дистрибутива LinuxMint Debian Edition "Cindy", обязательно необходимо применить команду:<br />
grub-install /dev/sda<br />
<br />
'''Примечание'''<br />
Создание снапшотов очень удобно делать и использовать программой с графическим интерфейсом '''"Timeshift"''', которая входит в состав этого дистрибутива с LMDE. Ознкомиться с ее работой вы можете по ссылкам:<br /><br />
[https://teejeetech.in/timeshift/ Timeshift - Утилита восстановления системы для Linux (англ.)]<br />
[https://www.alv.me/timeshift-btrfs/ Timeshift - Утилита восстановления системы для Linux (русский)]<br />
[https://www.alv.me/mint-19-i-timeshift-btrfs-ochen-neprostaya-mashina-vremeni/#comment-109457 Timeshift - Кратко как работать с программой с картинками (русский)]<br />
<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущенной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для всех подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br /><br />
Переименуем наш кореневой подтом '''@''' в '''@_old''':<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />Посмотрим каталог /opt:<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default может нарушить макет установленный по умолчанию, применение ее после проделанной инструкции не желательно без опыта!'''<br />
'''Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
== '''В заключении''' ==<br />
После всех манипуляций и настроек рекомендуем ознакомиться с инструментами fstrim, filefrag при использовании Btrfs на SSD, воспользовавшись руководствами man.<br /><br />
Провести балансировку и дефрагментацию системы, как описано в [http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit этой] статье.<br /><br />
Раз в месяц или меньше рекомендуем пользоваться командой btrfs scrub start <путь>, она считывает все блоки данных и метаданных со всех устройств и проверяет контрольные суммы. Автоматически восстанавливает поврежденные блоки, если есть правильная копия. Дополнительную информацию вы можете посмотреть по внешней ссылке "Btrfs in Calculate Linux" в конце статьи.<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[https://wiki.calculate-linux.org/ru/btrfs Btrfs in Calculate Linux - (для ознакомления)]<br /><br />
[https://wiki.archlinux.org/index.php/Btrfs Btrfs in Arch Linux wiki - (для ознакомления)]<br /><br />
[https://ctlos.github.io/wiki/btrfs/btrfs-part1/ Btrfs in CTLOS Linux (Arch based) - (для ознакомления)]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=18475Установка Rosa в btrfs с переносом в подтома после установки2020-01-16T16:06:35Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса и линукс в целом, обязательна к прочтению начинающим и опытным пользователям, а также на более глубокое понимание файловой системы btrfs. Позволит повысить вам стабильность, отказоустойчивость системы. Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br /> '''<br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру: раздел с btrfs на sda1 - один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы Вы для себя понимали структуру, их расположение и связь. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./ - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br />
Если вдруг удалили папку '''/home''', во время переноса "оптом" всех папок, то кнопкой '''F5''' скопируйте её назад. Таким образом, в правой части файлового менеджера mc должно остаться три папки: '''@''', '''@home''', '''/home'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - проверяем, видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - проверяем, видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик, но не торопимся перегружаться (читаем ниже)<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
<br />
В частности, для дистрибутива LinuxMint Debian Edition "Cindy", обязательно необходимо применить команду:<br />
grub-install /dev/sda<br />
<br />
Примечание.<br />
Создание снапшотов очень удобно делать и использовать программой с графическим интерфейсом '''"Timeshift"''', которая входит в состав этого дистрибутива с LMDE. Ознкомиться с ее работой вы можете по ссылкам:<br /><br />
[https://teejeetech.in/timeshift/ Timeshift - Утилита восстановления системы для Linux (англ.)]<br />
[https://www.alv.me/timeshift-btrfs/ Timeshift - Утилита восстановления системы для Linux (русский)]<br />
[https://www.alv.me/mint-19-i-timeshift-btrfs-ochen-neprostaya-mashina-vremeni/#comment-109457 Timeshift - Кратко как работать с программой с картинками (русский)]<br />
<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущенной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для всех подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br /><br />
Переименуем наш кореневой подтом '''@''' в '''@_old''':<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />Посмотрим каталог /opt:<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default может нарушить макет установленный по умолчанию, применение ее после проделанной инструкции не желательно без опыта!'''<br />
'''Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
== '''В заключении''' ==<br />
После всех манипуляций и настроек рекомендуем ознакомиться с инструментами fstrim, filefrag при использовании Btrfs на SSD, воспользовавшись руководствами man.<br /><br />
Провести балансировку и дефрагментацию системы, как описано в [http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit этой] статье.<br /><br />
Раз в месяц или меньше рекомендуем пользоваться командой btrfs scrub start <путь>, она считывает все блоки данных и метаданных со всех устройств и проверяет контрольные суммы. Автоматически восстанавливает поврежденные блоки, если есть правильная копия. Дополнительную информацию вы можете посмотреть по внешней ссылке "Btrfs in Calculate Linux" в конце статьи.<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[https://wiki.calculate-linux.org/ru/btrfs Btrfs in Calculate Linux - (для ознакомления)]<br /><br />
[https://wiki.archlinux.org/index.php/Btrfs Btrfs in Arch Linux wiki - (для ознакомления)]<br /><br />
[https://ctlos.github.io/wiki/btrfs/btrfs-part1/ Btrfs in CTLOS Linux (Arch based) - (для ознакомления)]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=18474Установка Rosa в btrfs с переносом в подтома после установки2020-01-16T15:37:17Z<p>Filicorn: /* Делаем chroot и Правим fstab */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса и линукс в целом, обязательна к прочтению начинающим и опытным пользователям, а также на более глубокое понимание файловой системы btrfs. Позволит повысить вам стабильность, отказоустойчивость системы. Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br /> '''<br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру: раздел с btrfs на sda1 - один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы Вы для себя понимали структуру, их расположение и связь. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./ - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br />
Если вдруг удалили папку '''/home''', во время переноса "оптом" всех папок, то кнопкой '''F5''' скопируйте её назад. Таким образом, в правой части файлового менеджера mc должно остаться три папки: '''@''', '''@home''', '''/home'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - проверяем, видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - проверяем, видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик, но не торопимся перегружаться (читаем ниже)<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
<br />
В частности, для дистрибутива LinuxMint Debian Edition "Cindy", обязательно необходимо применить команду:<br />
grub-install /dev/sda<br />
<br />
Примечание.<br />
Создание снапшотов очень удобно делать и использовать программой с графическим интерфейсом '''"Timeshift"''', которая входит в состав этого дистрибутива с LMDE. Ознкомиться с ее работой вы можете по ссылкам:<br /><br />
[https://teejeetech.in/timeshift/ Timeshift - Утилита восстановления системы для Linux (англ.)]<br />
[https://www.alv.me/timeshift-btrfs/ Timeshift - Утилита восстановления системы для Linux (русский)]<br />
[https://www.alv.me/mint-19-i-timeshift-btrfs-ochen-neprostaya-mashina-vremeni/#comment-109457 Timeshift - Кратко как работать с программой с картинками (русский)]<br />
<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущенной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для всех подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br /><br />
Переименуем наш кореневой подтом '''@''' в '''@_old''':<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />Посмотрим каталог /opt:<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default может нарушить макет установленный по умолчанию, применение ее после проделанной инструкции не желательно без опыта!'''<br />
'''Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[https://wiki.calculate-linux.org/ru/btrfs Btrfs in Calculate Linux - (для ознакомления)]<br /><br />
[https://wiki.archlinux.org/index.php/Btrfs Btrfs in Arch Linux wiki - (для ознакомления)]<br /><br />
[https://ctlos.github.io/wiki/btrfs/btrfs-part1/ Btrfs in CTLOS Linux (Arch based) - (для ознакомления)]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=18473Установка Rosa в btrfs с переносом в подтома после установки2020-01-16T15:36:16Z<p>Filicorn: /* Делаем chroot и Правим fstab */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса и линукс в целом, обязательна к прочтению начинающим и опытным пользователям, а также на более глубокое понимание файловой системы btrfs. Позволит повысить вам стабильность, отказоустойчивость системы. Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br /> '''<br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру: раздел с btrfs на sda1 - один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы Вы для себя понимали структуру, их расположение и связь. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./ - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br />
Если вдруг удалили папку '''/home''', во время переноса "оптом" всех папок, то кнопкой '''F5''' скопируйте её назад. Таким образом, в правой части файлового менеджера mc должно остаться три папки: '''@''', '''@home''', '''/home'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - проверяем, видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - проверяем, видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик, но не торопимся перегружаться (читаем ниже)<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
<br />
В частности, для дистрибутива LinuxMint Debian Edition "Cindy", обязательно необходимо применить команду:<br />
grub-install /dev/sda<br />
<br />
Примечание.<br />
Создание снапшотов очень удобно делать и использовать программой с графическим интерфейсом '''"Timeshift"''', которая входит в состав этого дистрибутива с LMDE. Ознкомиться с ее работой вы можете по ссылкам:<br /><br />
[https://teejeetech.in/timeshift/ Timeshift - Утилита восстановления системы для Linux (англ.)]<br />
[https://www.alv.me/timeshift-btrfs/ Timeshift - Утилита восстановления системы для Linux (русский)]<br />
[https://www.alv.me/mint-19-i-timeshift-btrfs-ochen-neprostaya-mashina-vremeni/#comment-109457 Timeshift - Кратко как работать с программой с картинками (русский)]<br />
<br />
<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущенной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для всех подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br /><br />
Переименуем наш кореневой подтом '''@''' в '''@_old''':<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />Посмотрим каталог /opt:<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default может нарушить макет установленный по умолчанию, применение ее после проделанной инструкции не желательно без опыта!'''<br />
'''Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[https://wiki.calculate-linux.org/ru/btrfs Btrfs in Calculate Linux - (для ознакомления)]<br /><br />
[https://wiki.archlinux.org/index.php/Btrfs Btrfs in Arch Linux wiki - (для ознакомления)]<br /><br />
[https://ctlos.github.io/wiki/btrfs/btrfs-part1/ Btrfs in CTLOS Linux (Arch based) - (для ознакомления)]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=18472Установка Rosa в btrfs с переносом в подтома после установки2020-01-16T15:02:02Z<p>Filicorn: /* Макет системы */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса и линукс в целом, обязательна к прочтению начинающим и опытным пользователям, а также на более глубокое понимание файловой системы btrfs. Позволит повысить вам стабильность, отказоустойчивость системы. Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br /> '''<br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру: раздел с btrfs на sda1 - один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы Вы для себя понимали структуру, их расположение и связь. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./ - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br />
Если вдруг удалили папку '''/home''', во время переноса "оптом" всех папок, то кнопкой '''F5''' скопируйте её назад. Таким образом, в правой части файлового менеджера mc должно остаться три папки: '''@''', '''@home''', '''/home'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - проверяем, видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - проверяем, видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик, но не торопимся перегружаться (читаем ниже)<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
<br />
В частности, для дистрибутива LinuxMint Debian Edition "Cindy", обязательно необходимо применить команду:<br />
grub-install /dev/sda<br />
<br />
Примечание.<br />
Создание снапшотов очень удобно использовать программой "Timeshift", которая входит в состав этого дистрибутива LMDE:<br />
https://teejeetech.in/timeshift/<br />
<br />
Описание программы от разработчика (перевод на русский), тут: <br />
https://www.alv.me/timeshift-btrfs/<br />
<br />
Кратко как работать с программой с картинками, тут:<br />
https://www.alv.me/mint-19-i-timeshift-btrfs-ochen-neprostaya-mashina-vremeni/#comment-109457<br />
<br />
<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для всех подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br /><br />
Переименуем наш кореневой подтом '''@''' в '''@_old''':<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />Посмотрим каталог /opt:<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default может нарушить макет установленный по умолчанию, применение ее после проделанной инструкции не желательно без опыта!'''<br />
'''Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[https://wiki.calculate-linux.org/ru/btrfs Btrfs in Calculate Linux - (для ознакомления)]<br /><br />
[https://wiki.archlinux.org/index.php/Btrfs Btrfs in Arch Linux wiki - (для ознакомления)]<br /><br />
[https://ctlos.github.io/wiki/btrfs/btrfs-part1/ Btrfs in CTLOS Linux (Arch based) - (для ознакомления)]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17448Установка Rosa в btrfs с переносом в подтома после установки2018-06-28T02:19:38Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса и линукс в целом, обязательна к прочтению начинающим и опытным пользователям, а также на более глубокое понимание файловой системы btrfs. Позволит повысить вам стабильность, отказоустойчивость системы. Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br /> '''<br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру: раздел с btrfs на sda1 - один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы Вы для себя понимали структуру, их расположение и связь. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для всех подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br /><br />
Переименуем наш кореневой подтом '''@''' в '''@_old''':<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />Посмотрим каталог /opt:<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default может нарушить макет установленный по умолчанию, применение ее после проделанной инструкции не желательно без опыта!'''<br />
'''Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17447Установка Rosa в btrfs с переносом в подтома после установки2018-06-28T02:06:56Z<p>Filicorn: /* Переходы по снапшотам */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br />Статья получилась объемной и раскрывает полноценную работу с системой линукс и обязательна к прочтению начинающим и опытным пользователям!'''<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы вы для себя понимали структуру и их расположение. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для всех подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br /><br />
Переименуем наш кореневой подтом '''@''' в '''@_old''':<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />Посмотрим каталог /opt:<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default может нарушить макет установленный по умолчанию, применение ее после проделанной инструкции не желательно без опыта!'''<br />
'''Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17446Установка Rosa в btrfs с переносом в подтома после установки2018-06-28T01:54:03Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br />Статья получилась объемной и раскрывает полноценную работу с системой линукс и обязательна к прочтению начинающим и опытным пользователям!'''<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы вы для себя понимали структуру и их расположение. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Смонтируем наш раздел sda1 c btrfs в /mnt:<br />
su -<br />
mount /dev/sda1 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 105 top level 5 path @<br />
ID 264 gen 105 top level 5 path @home<br />
Пояснение: В данном выводе мы видим, что на разделе /dev/sda1 присутствуют два подтома, корневой - @ и домашний - @home. level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br /><br />
Создадим снапшот корневого подтома @:<br />
cd /mnt - перейдем в каталог mnt<br />
btrfs subvolume snapshot ./@ ./@_snapshot<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 114 top level 5 path @<br />
ID 264 gen 114 top level 5 path @home<br />
ID 270 gen 111 top level 5 path @_snapshot<br />
Для понимания создания снапшотов был создан текстовый файл '''"test snaphot"''' в корневом каталоге в папке /opt. После этого сделаем переход на снапшот в качестве корня. <br />
su -<br />
ls / - покажет содержание корневого каталога в @<br />
> /opt/"test snaphot.txt" - пользуемся самой короткой командой для создания файла в Linux - >.<br />
== '''Переходы по снапшотам''' ==<br />
Переход по подтомам можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду '''mv'''.<br /><br />
Cоздание снапшотов и переходов для подтомов делается аналогичным образом, следите только за пространством жесткого диска и именами подразделов!<br /><br />
Перейдем на снапшот в качестве корневого каталога. Продолжаем работать в смонтированном в /mnt разделе /dev/sda1, или же примонтируем вновь, как описано выше!<br />
Переименуем наш кореневой подтом @ в @_old:<br />
cd /mnt<br />
mv ./@ ./@_old<br />
А снапшот '''@_snapshot''' переименуем в кореневой подтом '''@''':<br />
mv ./@_snapshot ./@<br />
Проверяем подтома:<br />
btrfs subvolume list /<br />
ID 263 gen 154 top level 5 path @_old<br />
ID 264 gen 173 top level 5 path @home<br />
ID 270 gen 172 top level 5 path @<br />
cd - выйдем из каталога /mnt<br />
umount /mnt - Отмонтируем и можно перезагружаться<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
После перезагрузки проверим каталог /opt и увидим, что файл "test snaphot", созданный нами ранее, отсутствует! Он остался в @_old, поэтому снапшоты и называют моментальными снимками!<br />
ls /opt<br />
lib/ share/ <br />
И смотрим предыдущий корневой подтом:<br />
su -<br />
mount /dev/sdа1 /mnt<br />
ls /mnt/@_old/opt<br />
lib/ share/ test snaphot.txt<br />
<br />
Удалить лишние подтома (с раздела /dev/sda1, примонтированного в /mnt) можно командой:<br />
btrfs subvolume delete /mnt/@_old<br />
<br />
'''Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны! Могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.'''<br />
<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17445Установка Rosa в btrfs с переносом в подтома после установки2018-06-28T01:32:35Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs.<br />Статья получилась объемной и раскрывает полноценную работу с системой линукс и обязательна к прочтению начинающим и опытным пользователям!'''<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. Названия подтомов могут быть отличными от тех, что даны в статье, главное чтобы вы для себя понимали структуру и их расположение. <br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Если не в терпеж, читаем [http://wiki.rosalab.com/ru/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D1.81.D0.BD.D0.B0.D0.BF.D1.88.D0.BE.D1.82.D0.BE.D0.B2 Установка Rosa в btrfs с подтомами на этапе установки]<br />
<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17442Установка Rosa в btrfs с подтомами на этапе установки2018-06-26T11:56:09Z<p>Filicorn: </p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в "Параметры монтирования → Дополнительно → Различные" и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!! Сейчас система является полностью готовой к работе!<br />
<br />
Ниже в статье домашний каталог вынесен из корневого для повышения отказоустойчивости. Можно изучить пункт создания снапшотов и переходов по снапшотам, домашний каталог оставить на месте.<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Пояснение: переходы по снапшотам и их создание можно делать в рабочей системе, если отходить от этой статьи. все изменения вступают в силу после перезагрузки.<br /><br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8 Установка Rosa в btrfs с переносом в подтома после установки]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17441Установка Rosa в btrfs с подтомами на этапе установки2018-06-26T11:54:03Z<p>Filicorn: /* Создание снапшотов */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в "Параметры монтирования → Дополнительно → Различные" и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!! Сейчас система является полностью готовой к работе!<br />
<br />
Ниже в статье домашний каталог вынесен из корневого для повышения отказоустойчивости. Можно изучить пункт создания снапшотов и переходов по снапшотам, домашний каталог оставить на месте.<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Пояснение: переходы по снапшотам и их создание можно делать в рабочей системе, если отходить от этой статьи. все изменения вступают в силу после перезагрузки.<br /><br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17440Установка Rosa в btrfs с переносом в подтома после установки2018-06-26T11:48:42Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. <br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
== '''Создание снапшотов''' ==<br />
Если не в терпеж, читаем [http://wiki.rosalab.com/ru/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D1.81.D0.BD.D0.B0.D0.BF.D1.88.D0.BE.D1.82.D0.BE.D0.B2 Установка Rosa в btrfs с подтомами на этапе установки]<br />
<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17439Установка Rosa в btrfs с переносом в подтома после установки2018-06-26T11:43:21Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. <br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
<br />
<br />
<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit Установка Rosa в btrfs с подтомами на этапе установки]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2 Восстановление загрузчика Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) EFI System Partition (Русский) арчвики]<br /><br />
[https://habr.com/post/314412/ Настройка UEFI-загрузчика. Самое краткое руководство в мире. 2016г.]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) Change root (Русский) арчвики]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem Ошибка grub rescue unknown filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17438Установка Rosa в btrfs с переносом в подтома после установки2018-06-26T11:38:50Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. <br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
<br />
<br />
<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог. точка монтирования home)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br /><br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br /><br />
[http://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&action=edit]<br /><br />
[http://wiki.rosalab.com/ru/index.php/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_Grub2]<br /><br />
[https://wiki.archlinux.org/index.php/EFI_System_Partition%20(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)]<br /><br />
[https://habr.com/post/314412/]<br /><br />
[https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)]<br /><br />
[https://losst.ru/oshibka-grub-rescue-unknown-filesystem]<br /><br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17437Установка Rosa в btrfs с переносом в подтома после установки2018-06-26T11:29:35Z<p>Filicorn: /* Делаем chroot и Правим fstab */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. <br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает! Дальше можно приступать к созданию снапшотов.''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел<br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17436Установка Rosa в btrfs с переносом в подтома после установки2018-06-26T11:28:10Z<p>Filicorn: /* Система не запустилась и выдает ошибку */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. <br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает!''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел <br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
В таких случаях нам нужно найти раздел /boot. Мы знаем, что /boot у нас в @, поэтому ищем где наши @ и @home.<br /><br />
Ищем @ и @home в разделе hd0,1:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Где мы увидим наш /boot.<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка в систему.<br /><br />
Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17435Установка Rosa в btrfs с переносом в подтома после установки2018-06-26T11:19:10Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. <br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче, по небольшой инструкции "Система не запустилась и выдает ошибку" можно зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает!''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел <br />
<br />
== '''Система не запустилась и выдает ошибку''' == <br />
<br />
Находясь в chroot мы обновили загрузчик grub2. Перезагружаем и видим такой вывод - “error file boot/grub/i386-pc/normal.mod not found” и "grub rescue>". Загрузчик не нашел путь до модуля normal.mod<br />
<br />
Без модулей grub поддерживает только ту файловую систему, которая была в /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей.<br />Наш boot там же, где и @.<br />
grub rescue> ls<br /><br />
Пример:<br />
по команде ls, отображаются разделы: (hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos2) (hd0,msdos1) и их нумерация будет такая:<br />
ls (hd0,1)/<br />
ls (hd0,2)/<br />
ls (hd0,3)/<br />
ls (hd0,4)/<br />
Ищем наши @ и @home:<br />
ls (hd0,1)/<br />
@ @home<br />
ls (hd0,1)/@ - команда выведет каталоги в @. Мы увидим наш boot, каталог выбран верно!!!<br />
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:<br />
set root=(hd0,1)<br />
set prefix=($root)/@/boot/grub2 пояснение после (hd0,1)/<br />
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:<br />
insmod $prefix/i386-pc/normal.mod<br />
normal<br />
Происходит загрузка. Дальше в системе устанавливаем загрузчик grub2 в /dev/sda:<br />
su -<br />
grub2-install /dev/sda<br />
Перезагружаемся!!!<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17434Установка Rosa в btrfs с переносом в подтома после установки2018-06-26T11:00:09Z<p>Filicorn: /* Правим fstab */</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. <br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Делаем chroot и Правим fstab''' ==<br />
Мы перенесли систему в подтома и параметр монтирования нам нужен не /, а subvol=@. Нужно примонтировать наш btrfs раздел с опцией subvol=@ и сделать chroot в систему!<br />
cd /tmp - Перейдем в папку tmp<br />
mkdir 0 - создадим папку 0<br />
mount | grep rosa - Проверяем расположение нашей системы и параметры монтирования<br />
/dev/sda1 on /media/rosa type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)<br />
<br />
mount /dev/sda1 0 -o subvol=@ - Монтируем раздел btrfs на /dev/sda1 в папку 0 с опцией subvol=@<br />
ls 0 - Проверяем. Видим список каталогов нашей системы<br />
<br />
Смонтируем временные интерфейсные файловые системы в 0 (из хостовой системы в гостевую):<br />
for i in dev sys proc; do mount --bind -v /$i 0/$i; done<br />
mount: /dev bound on /tmp/0/dev.<br />
mount: /sys bound on /tmp/0/sys.<br />
mount: /proc bound on /tmp/0/proc.<br />
Пояснение: /$i - из хостовой системы, 0/$i - в гостевую. Программа, запущенная в окружении chroot не может получить доступ к файлам вне нового корневого каталога.<br /><br />
Делаем '''chroot''' в папку 0:<br />
chroot 0<br />
ls - Проверяем. Видим список каталогов нашей системы<br />
<br />
Правим '''fstab''' в /etc/fstab:<br /><br />
Горячие клавиши в '''nano''': выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
nano /etc/fstab<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 / btrfs relatime,nofail,subvol=@ 1 1<br />
UUID=3c9c9142-ac07-45ed-99b5-773f3cea2ce1 /home btrfs relatime,nofail,subvol=@home 1 1<br />
Опции relatime,nofail можно заменить на defaults<br />
Обновляем загрузчик и перезагружаемся<br />
update-grub2 - для росы<br />
update-grub - для убунту/дебиано подобных<br /><br />
Обновление загрузчика может не сработать в росе, рекомендуется установить загрузчик по новой в /dev/sda сразу, командами ниже. Или же после перезагрузки при неудаче по небольшой инструкции чуть ниже зайти в систему и установить загрузчик из под суперпользователя.<br />
Установка grub2 в /dev/sda (находимся в chroot 0):<br />
grub2-install /dev/sda<br />
grub-install /dev/sda - для убунту/дебиано подобных и остальных<br />
Проверяем<br />
cat /boot/grub2/grub.cfg | grep /boot - для росы<br />
cat /boot/grub/grub.cfg | grep /boot - для остальных<br /><br />
Видим что boot раздел находиться в @ -/@/boot, все верно и сделано правильно!<br />
<br />
'''Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает!''' <br />
<br />
Проверить наши подтома можно примонтировав раздел btrfs в запущеной системе, в нашем случае это sda1:<br />
su -<br />
mount /dev/sda1 /mnt<br />
ls /mnt/@/home - будет пуст, а<br />
ls /mnt/@home - покажет нам нашего пользователя!!!<br />
umount /mnt - отмонтировать раздел <br />
<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17431Установка Rosa в btrfs с переносом в подтома после установки2018-06-25T13:00:38Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. <br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
== '''Правим fstab''' ==<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17430Установка Rosa в btrfs с переносом в подтома после установки2018-06-25T12:59:35Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br /><br />
Что такое подтома в системе btrfs?<br /><br />
При разметке диска опытные стараются ставить корень, home и другие каталоги в разные разделы, которые имеют структуру sdxX, а в системе uefi их может быть множество.<br /><br />
В случае же с btrfs раздел может быть один, а вот подтома заменяют дополнительные разделы. И в итоге у нас получается - к примеру раздел с btrfs - sda1 один, а подтома - @, @home, @var, @opt, @usr разные и независимые, с тем только условием, что они имеют точки монтирования в корневом подтоме @ и прописаны в /etc/fstab. <br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
== '''Перенос в подтома''' ==<br />
На этом этапе стоит дать пояснения. Можно не переносить каталог /home в подтом @home, а просто перенести всё содержимое в @. Тогда уменьшится количество команд при создании снапшотов и станет легче обслуживать систему. Сократиться количество подтомов.<br /><br />
Но есть и минусы этой простоты, если home не отделить, он тоже будет снапшотится. Естественно это скажется на размере снапшотов и занимаемом дисковом пространстве, при внушительном размере хомяка))).<br />
Установим утилиты nano и mc, если их нет!<br /><br />
Запустим '''Midnight Commander''':<br />
mc<br />
Легких путей Мы не ищем, поэтому поместим все по своим местам в подтома @ и @home.<br /><br />
<br />
'''Перенос /home в @home:'''<br /><br />
Находясь в MC, слева перейдем в каталог @home, справа перейдем в каталог /home. Выберем нашего юзера - /user и нажмем на клавиатуре клавишу '''insert''' (выделит все файлы и папки в каталоге).<br /><br />
Затем нажмем '''F6''' для переноса из '''/home''' в подтом '''@home'''. Проверить это легко - справа в mc каталог /home будет пуст.<br /><br />
<br />
'''Перенесем остальные каталоги и файлы в подтом @'''<br /><br />
Теперь нужно перенести все каталоги и файлы в подтом '''@''', кроме '''@home'''. Удалять папку '''/home''' не нужно, она будет точкой монтирования нашего подтома '''@home'''.<br />
Слева перейдем в '''@''', а справа передвигаемся по каталогам, нажимая клавишу '''insert''' выделим все файлы, кроме '''@home'''. Нажмем '''F6''' и перенесем все выделенное в '''@'''.<br /><br />
Выйдем из редактора '''MC''' - введем exit.<br /><br />
<br />
Дальше нам нужно поправить fstab и обновить загрузчик grub2!<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17429Установка Rosa в btrfs с переносом в подтома после установки2018-06-25T12:40:48Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак, ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
== '''Установим систему в btrfs''' ==<br />
Устанавливаем систему как обычно в подготовленные разделы. В итоге у нас весь subvolid=5 заполниться системными каталогами и файлами, с которыми не удобно работать при создании снапшотов!<br /><br />
После установки, выключаем систему и загружаемся в LiveCD. Все дальнейшие действия по переносу в подтома можно осуществлять только в этом режиме, иной метод может привести к потере данных.<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Монтируем нашу систему в каталог media<br />
mkdir /media/rosa<br />
mount /dev/sda1 /media/rosa<br />
Переходим в папку rosa<br />
cd /media/rosa<br />
ls ./home - проверяем, видим имя нашего пользователя в установленной системе.<br />
Продолжаем. Не забываем, что мы находимся в каталоге rosa.<br /><br />
Создадим подтома (@ и @home) в системе btrfs на разделе /dev/sda1, который мы смонтировали в /media/rosa:<br />
btrfs subvolume create ./@<br />
btrfs subvolume create ./@home<br />
Проверим, что подтома созданы верно @ и @home<br />
ls ./rosa - увидим системные каталоги, включая @ и @home<br />
или<br />
btrfs subvolume list ./<br />
ID 263 gen 31 top level 5 path @<br />
ID 264 gen 32 top level 5 path @home<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17428Установка Rosa в btrfs с переносом в подтома после установки2018-06-25T12:26:02Z<p>Filicorn: </p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br /><br />
'''Статья подходит и для других дистрибутивов, умеющих работать с файловой системой btrfs'''.<br />
<br />
== '''Основные команды, которыми мы будем пользоваться''' ==<br />
man<br />
mkdir<br />
cd<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
mc<br />
== '''Структура операций''' ==<br />
1. Установить систему на раздел с btrfs.<br />2. Запустить LiveCD и примонтировать установленую систему для работы в каталог /media/rosa.<br />3. Создать подтома корня и домашнего каталога (@ и @home).<br /><br />
4. Сделать chroot в систему с опцией subvol=@ в разделе btrfs (subvolid=5).<br />
== '''Разметим диск''' ==<br />
Грузимся в LiveCD открываем gparted и делаем простую разметку. Раздел с корнем и раздел подкачки.<br /><br />
Или устанавливаем сразу, без режима LiveCD, и редактируем разделы в diskdrake (Управление дисковыми разделами росы).<br /><br />
Примечание: Стоит отметить, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти! Если система UEFI, то раздел /boot будет в fat32/vfat и иметь вид “/sdxX /boot fat32 350Mb-500Mb”.<br /><br />
Если у нас UEFI, то при разметке поменяется нумерация разделов от той, что в статье - "/boot/efi sda1, /корень sda2, /swap sda3". Читаем про утилиту efibootmg и флаги для разделов esp,boot.<br /><br />
Итак ефи у нас не будет, поэтому создаем корень и свап:<br />
/sda1 / btrf 50Gb<br />
/sda2 swap 4Gb<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17427Установка Rosa в btrfs с переносом в подтома после установки2018-06-24T14:26:08Z<p>Filicorn: Filicorn переименовал страницу Page/BTRFS в РОСЕ. Ищем, что попроще в Установка Rosa в btrfs с переносом в подтома после установки без оставления п…</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC_%D0%B2_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=17426Установка Rosa в btrfs с переносом в подтома после установки2018-06-24T14:23:38Z<p>Filicorn: Новая страница: «Статья рассчитана на повышение уровня владения операционной системой Роса, а также боле…»</p>
<hr />
<div>Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования/переноса и иметь минимальный опыт работы в терминале.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16826Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T16:19:05Z<p>Filicorn: /* Устанавливаем систему */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в "Параметры монтирования → Дополнительно → Различные" и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!! Сейчас система является полностью готовой к работе!<br />
<br />
Ниже в статье домашний каталог вынесен из корневого для повышения отказоустойчивости. Можно изучить пункт создания снапшотов и переходов по снапшотам, домашний каталог оставить на месте.<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16825Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T16:18:53Z<p>Filicorn: /* Устанавливаем систему */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в "Параметры монтирования → Дополнительно → Различные" и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!! Сейчас система является полностью готовой к работе!<br />
Ниже в статье домашний каталог вынесен из корневого для повышения отказоустойчивости. Можно изучить пункт создания снапшотов и переходов по снапшотам, домашний каталог оставить на месте.<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16824Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T16:18:37Z<p>Filicorn: /* Устанавливаем систему */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в "Параметры монтирования → Дополнительно → Различные" и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!! Сейчас система является полностью готовой к работе! <br />
Ниже в статье домашний каталог вынесен из корневого для повышения отказоустойчивости. Можно изучить пункт создания снапшотов и переходов по снапшотам, домашний каталог оставить на месте.<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16823Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T16:15:38Z<p>Filicorn: /* Устанавливаем систему */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в "Параметры монтирования → Дополнительно → Различные" и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!! Сейчас система является полностью готовой к работе! Можно изучить пункт создания снапшотов и переходов по снапшотам. Домашний каталог вынесен из корневого для повышения отказоустойчивости.<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16822Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T16:12:27Z<p>Filicorn: /* Устанавливаем систему */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в "Параметры монтирования → Дополнительно → Различные" и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!!<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:Page/BTRFS_%D0%B2_%D0%A0%D0%9E%D0%A1%D0%95._%D0%98%D1%89%D0%B5%D0%BC,_%D1%87%D1%82%D0%BE_%D0%BF%D0%BE%D0%BF%D1%80%D0%BE%D1%89%D0%B5.&diff=16821:Page/BTRFS в РОСЕ. Ищем, что попроще.2018-01-27T16:06:14Z<p>Filicorn: </p>
<hr />
<div>{{#access: assigned to = User:Filicorn | actions = *, manage}}<br />
{{#manage rights: assigned to = User:Filicorn}}<br />
{{#predefined right: Page/BTRFS в РОСЕ. Ищем, что попроще}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:Page/BTRFS_%D0%B2_%D0%A0%D0%9E%D0%A1%D0%95._%D0%98%D1%89%D0%B5%D0%BC,_%D1%87%D1%82%D0%BE_%D0%BF%D0%BE%D0%BF%D1%80%D0%BE%D1%89%D0%B5&diff=16820:Page/BTRFS в РОСЕ. Ищем, что попроще2018-01-27T16:04:52Z<p>Filicorn: Новая страница: «{{#access: assigned to = User:Filicorn | actions = *, manage}} {{#manage rights: assigned to = User:Filicorn}} {{#predefined right: Page/BTRFS в РОСЕ. Ище…»</p>
<hr />
<div>{{#access: assigned to = User:Filicorn | actions = *, manage}}<br />
{{#manage rights: assigned to = User:Filicorn}}<br />
{{#predefined right: Page/BTRFS в РОСЕ. Ищем, что попроще.}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16819Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T16:01:30Z<p>Filicorn: /* Установка Rosa в btrfs с подтомами на этапе установки. */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в параметры монтирования → Дополнительно → Различные и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!!<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16818Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T16:01:15Z<p>Filicorn: /* Установка Rosa в btrfs с подтомами на этапе установки. */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки.''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов, своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в параметры монтирования → Дополнительно → Различные и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!!<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:Page/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16817:Page/Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T16:00:17Z<p>Filicorn: </p>
<hr />
<div>{{#access: assigned to = User:Filicorn | actions = *}}<br />
{{#access: assigned to = * | actions = read}}<br />
{{#manage rights: assigned to = User:Filicorn}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:Page/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16816:Page/Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T16:00:04Z<p>Filicorn: Новая страница: «{{#access: assigned to = User:Filicorn | actions = *}} {{#manage rights: assigned to = User:Filicorn}}»</p>
<hr />
<div>{{#access: assigned to = User:Filicorn | actions = *}}<br />
{{#manage rights: assigned to = User:Filicorn}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=Delete27&diff=16815Delete272018-01-27T15:57:17Z<p>Filicorn: Полностью удалено содержимое страницы</p>
<hr />
<div></div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16814Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T15:55:56Z<p>Filicorn: Новая страница: «= '''Установка Rosa в btrfs с подтомами на этапе установки.''' = Статья рассчитана на повышение у…»</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки.''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в параметры монтирования → Дополнительно → Различные и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!!<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16813:Установка Rosa в btrfs с подтомами на этапе установки2018-01-27T15:53:20Z<p>Filicorn: Filicorn переименовал страницу ACL:Page/Установка Rosa в btrfs с подтомами на этапе установки. в [[ACL:Установка Rosa в btrfs с подтомами на этапе установк…</p>
<hr />
<div>{{#access: assigned to = User:Filicorn | actions = *}}<br />
{{#access: assigned to = * | actions = read}}<br />
{{#manage rights: assigned to = User:Filicorn}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:Page/BTRFS_%D0%B2_%D0%A0%D0%9E%D0%A1%D0%95._%D0%98%D1%89%D0%B5%D0%BC,_%D1%87%D1%82%D0%BE_%D0%BF%D0%BE%D0%BF%D1%80%D0%BE%D1%89%D0%B5.&diff=16810:Page/BTRFS в РОСЕ. Ищем, что попроще.2018-01-25T13:39:08Z<p>Filicorn: </p>
<hr />
<div>{{#access: assigned to = User:Filicorn | actions = *, manage}}<br />
{{#manage rights: assigned to = User:Filicorn}}<br />
{{#predefined right: Page/BTRFS в РОСЕ. Ищем, что попроще.}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=Delete33&diff=16809Delete332018-01-25T13:12:04Z<p>Filicorn: </p>
<hr />
<div>Помимо создания подтомов в btrfs <br />
<br />
<br />
Создание снапшота btrfs.</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=Delete33&diff=16808Delete332018-01-25T13:10:44Z<p>Filicorn: </p>
<hr />
<div>{{how-to-install|{{lc:{{PAGENAME}}}}}}Помимо создания подтомов в btrfs <br />
<br />
<br />
Создание снапшота btrfs.</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:Page/ROSA:%D0%92%D0%BD%D0%B5%D1%81%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0&diff=16807:Page/ROSA:Внесение вклада2018-01-25T13:06:31Z<p>Filicorn: </p>
<hr />
<div>{{#access: assigned to = User:Filicorn | actions = *}}<br />
{{#manage rights: assigned to = User:Filicorn, *}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:Page/ROSA:%D0%92%D0%BD%D0%B5%D1%81%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0&diff=16806:Page/ROSA:Внесение вклада2018-01-25T12:55:44Z<p>Filicorn: </p>
<hr />
<div>{{#access: assigned to = User:Filicorn, * | actions = *}}<br />
{{#manage rights: assigned to = User:Filicorn, *}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:Page/ROSA:%D0%92%D0%BD%D0%B5%D1%81%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0&diff=16805:Page/ROSA:Внесение вклада2018-01-25T12:54:48Z<p>Filicorn: </p>
<hr />
<div>{{#access: assigned to = User:Filicorn | actions = *, manage}}<br />
{{#access: assigned to = * | actions = *}}<br />
{{#manage rights: assigned to = User:Filicorn, *}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=:%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Rosa_%D0%B2_btrfs_%D1%81_%D0%BF%D0%BE%D0%B4%D1%82%D0%BE%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8&diff=16804:Установка Rosa в btrfs с подтомами на этапе установки2018-01-25T12:34:06Z<p>Filicorn: </p>
<hr />
<div>{{#access: assigned to = User:Filicorn | actions = *}}<br />
{{#access: assigned to = * | actions = read}}<br />
{{#manage rights: assigned to = User:Filicorn}}</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=Delete27&diff=16803Delete272018-01-25T11:59:15Z<p>Filicorn: /* Поправим fstab */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки.''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в параметры монтирования → Дополнительно → Различные и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!!<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>О параметрах интервалов проверки файловой системы вы может прочесть на арчвики [https://wiki.archlinux.org/index.php/Fsck_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#/etc/fstab fsck]. Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!'''<br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicornhttp://wiki.rosalab.com/ru/index.php?title=Delete27&diff=16802Delete272018-01-25T11:51:04Z<p>Filicorn: /* Макет системы */</p>
<hr />
<div>= '''Установка Rosa в btrfs с подтомами на этапе установки.''' =<br />
<br />
Статья рассчитана на повышение уровня владения операционной системой Роса, а также более глубокое понимание файловой системы btrfs. Статья позволит повысить вам стабильность, отказоустойчивость системы.<br />
Система btrfs уникальна тем, что являясь по себе файловой системой, внутри может содержать подтома, которые имеют функции разделов.<br />
В данной инструкции нужно строго следить за номерами разделов. Своими действиями. Понимать принцип монтирования разделов, команд копирования и иметь минимальный опыт работы в терминале.<br />
<br />
'''Основные команды, которыми мы будем пользоваться'''<br />
mount<br />
umount<br />
btrfs subvolume list<br />
btrfs subvolume create<br />
btrfs subvolume snapshot<br />
mv<br />
<br />
== '''Разметим диск''' ==<br />
Грузимся в liveCD открываем gparted и делаем простую разметку. Создадим три раздела загрузочный /boot, корневой / и раздел подкачки /swap.<br />
Если система UEFI, то раздел /boot будет в fat32. Тут же стоит указать, что раздел подкачки не нужен, если у вас более 4Gb оперативной памяти.<br />
Получим три раздела:<br />
/sda1 /boot ext4 350Mb-500Mb<br />
/sda2 / btrfs 50Gb<br />
/sda3 swap 4Gb<br />
Если вылазит ошибка 23 (rsync) во время установки, нужно увеличить /boot.<br />
<br />
== '''Создание подтомов в системе btrfs''' ==<br />
Открываем терминал. Включаем суперюзера<br />
su -<br />
Смонтируем наш раздел с btrfs в /mnt<br />
mount /dev/sda2 /mnt<br />
<br />
Создадим подтома в системе btrfs на /dev/sda2 - @ и @home:<br />
btrfs subvolume create /mnt/@<br />
btrfs subvolume create /mnt/@home<br />
<br />
Проверим, что подтома созданы верно @ и @home<br />
ls /mnt<br />
@/ @home/<br />
Видим наши подтома, все прекрасно. Продолжаем.<br />
<br />
Отмонтируем наш раздел. После этого можно приступить к установке, кликнув мышкой по иконке "Установщик в режиме live".<br />
umount /mnt<br />
<br />
== '''Устанавливаем систему''' ==<br />
Выбираем разметку диска в ручную. Монтируем разделы и выставляем параметры. /dev/sda2 с btrfs включим режим эксперта. Зайдем в параметры монтирования → Дополнительно → Различные и в строку вставим:<br />
subvol=@<br />
Далее продолжаем установку без форматирования разделов!!!!<br />
<br />
== '''Создание снапшотов''' ==<br />
После установки перезагружаемся опять в liveCD. Открываем терминал. Смонтируем /dev/sda2 под суперюзером<br />
mount /dev/sda2 /mnt<br />
Посмотрим наши подтома:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
В данном выводе мы видим, что на разделе /dev/sda2 присутствуют два подтома, корневой - @ и домашний - @home, который на данном этапе пуст.<br />
<br />
Пояснение: level в нашем случае должен быть в пределах от 0 до 9. В ином случае (если значение трехзначное число) это будет вложенный подраздел (подраздел внутри подраздела).<br />
Значит что-то пошло не так на этапе создания подтомов!!!<br />
<br />
Создадим снапшот корня<br />
btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot<br />
Проверяем list:<br />
btrfs subvolume list /mnt<br />
ID 257 gen 44 top level 5 path @<br />
ID 261 gen 43 top level 5 path @home<br />
ID 262 gen 44 top level 5 path @_snapshot<br />
<br />
== '''Перенос домашнего каталога в подтом на btrfs''' ==<br />
Чтобы еще больше повысить отказоустойчивость. Мы перенесем домашний каталог в отдельный подтом @home, с которого в дальнейшем мы также сможем делать снапшоты.<br />
<br />
Для отображения процесса переноса зададим команду через -v<br />
mv -v /mnt/@/home/* /mnt/@home<br />
Проверяем, что перенесли правильно:<br />
ls /mnt/@home<br />
vik/<br />
Видим нашего пользователя, все верно! Проверим каталог /home в @, он должен быть пуст<br />
ls /mnt/@/home<br />
<br />
== '''Поправим fstab''' ==<br />
Установим текстовый редактор nano<br />
urpmi nano<br />
Горячие клавиши в nano:<br />
<br />
выделить строку '''shift+end''', копировать '''Alt+6''', вставить '''Ctrl+U''', сохранить изменения '''Ctrl+O''', выход '''Ctrl+X'''.<br />
<br />
Сейчас нам нужно подправить настройки параметров монтирования разделов на диске в /etc/fstab. Из-за того, что наш домашний каталог теперь располагается в отдельном подтоме. Откроем fstab в nano<br />
nano /mnt/@/etc/fstab<br />
Скопируем строку с / для /dev/sda2, с помощью горячих клавишь и приведем ее к виду<br />
UUID=“номер раздела с /home“ /home btrfs subvol=@home 0 0<br />
<small>Дополнительные опции монтирования опущены для упрощения инструкции, добавить их можно будет в /etc/fstab при желании. Это опции - compress=lzo,autodefrag,space_cache</small><br />
<br />
Теперь отмонтируем наш раздел<br />
umount /mnt<br />
'''Перезагружаемся в нашу систему.Если всё сделано правильно, то всё загрузится и заработает!''' <br />
<br />
== '''Переходы по снапшотам''' ==<br />
Можно осуществлять в рабочей системе. Все изменения вступят в силу после перезагрузки. Переход на снапшот в данной схеме будет осуществляться через команду mv. <br />
Также можно делать снапшоты @ и @home, следите только за пространством жесткого диска и именами подразделов!<br />
<br />
Перейдем на снапшот в качестве корневого каталога. Все дальнейшие действия происходят в рабочей системе<br />
su -<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Переименуем наш кореневой подтом @ в @_old:<br />
mv /mnt/@ /mnt/@_old<br />
А снапшот @_snapshot переименуем в кореневой подтом @:<br />
mv /mnt/@_snapshot /mnt/@<br />
Отмонтируем<br />
umount /mnt<br />
Все изменения вступят в силу после перезагрузки!!!! До этого работа продолжиться в созданном @_old!!!!<br />
Удалить лишние подтома можно командой<br />
btrfs subvolume delete /mnt/@_old<br />
Перезагружаемся и смотрим cat /etc/fstab. Если все верно, то получим вывод без отдельного раздела /home.<br />
Примечание: Команда btrfs subvolume set-default нарушит макет установленный по умолчанию, применение ее после проделанной инструкции не рекомендуется!<br />
Btrfs моментальные снимки подобъемов сами по себе, и самодостаточны, могут работать, как самостоятельная система, удаление старого @ подтома возможно, если у нас есть замена.<br />
<br />
== '''Последние шаги''' ==<br />
После того, как все настроено можно провести дефрагментацию и перебалансировку системы<br />
Смонтируем /dev/sdа2 в /mnt:<br />
mount /dev/sdа2 /mnt <br />
Сделаем дефрагментацию:<br />
btrfs fi defrag -r /mnt<br />
Перебалансировка системы<br />
btrfs balance start /mnt<br />
<br />
== '''Макет системы''' ==<br />
subvolid=5<br />
|<br />
| ──── @<br />
| |<br />
| |── /usr<br />
| |<br />
| |── /bin<br />
| |<br />
| |── /home (пустой каталог)<br />
| |── …<br />
|<br />
|<br />
|── @home<br />
|── @_snapshot<br />
|<br />
└── @...<br />
<br />
Благодарность за помощь в редакции данной статьи Михаилу Новоселову!<br />
<br />
<br />
Внешние ссылки<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Main_Page Вики btrfs]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs%285%29#MOUNT_OPTIONS Опции монтирования]<br />
<br />
[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 Балансировка btrfs]<br />
<br />
<br />
<br />
[[Категория:Документация]]<br />
[[Категория:Руководства]]</div>Filicorn