Установка Alt Linux на Btrfs: различия между версиями

Материал из ALT Linux Wiki
м (Sb переименовал страницу Установка AltLinux на Btrfs в Установка Alt Linux на Btrfs: fix typo)
 
(не показано 18 промежуточных версий 3 участников)
Строка 3: Строка 3:
=Обязательно к прочтению=
=Обязательно к прочтению=


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




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


==Зачем он нужен, этот ваш BTRFS?==
==Зачем он нужен, этот ваш BTRFS?==
Строка 14: Строка 14:
==Перед установкой==
==Перед установкой==


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


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


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


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


==После установки==
==После установки==


Приступаем к настройке структуры подтомов. Для работы нам необходим пользователь с доступом к sudo.
Приступаем к настройке структуры подтомов (все дальнейшие действия производятся от суперпользователя).
 
Для начала создадим в корне папку, в которой мы будем в дальнейшем хранить рабочие подтома и их снапшоты.
 
''sudo mkdir /subvol''


Для начала создадим в корне папку, где в дальнейшем будем хранить рабочие подтома и их снапшоты.
''# mkdir /subvols''
Btrfs использует подтома внутри файловой системы. Для вывода подтомов воспользуемся командой:
Btrfs использует подтома внутри файловой системы. Для вывода подтомов воспользуемся командой:
''# btrfs subvolume list /''
'/' показывает btrfs-prog, в каком разделе файловой системы искать подтома. Пока у нас существует только корневой подтом.


''sudo btrfs subvolume list /'' # '/' показывает btrfs-prog в каком разделе файловой  системы смотреть подтома  Пока что у нас существует только корневой подтом.
Приступим к созданию подтома для корня системы. Поскольку установщик Alt Linux не поддерживает установку на подтома btrfs, установка производилась сразу в корневой раздел системы - то есть, в подтом с subvolume id = 5. Сделаем его снапшот:
 
  ''# btrfs subvolume snap / /@ ''
 
В файловом менеджере снапшот корневой системы будет выглядеть обычной папкой, так что "@" используется в этой инструкции исключительно для удобства идентификации, в остальном никаких ограничений не существует.
Приступим к созданию подтома для корня системы. Поскольку установщик AltLinux не поддерживает установку на подтома btrfs, установка у нас производилась сразу в корневой раздел системы, то есть в подтом с subvolume id = 5. Сделаем его снапшот:
 
  '' sudo btrfs subvolume snap / /@ '' # Этой командой мы создает снапшот корневой системы. В Файловом менеджере подтом будет выглядеть обычной папкой, поэтому "@" используется в этой инструкции исключительно для удобства идентификации, в остальном никаких ограничений не существует.


Теперь создадим подтом для домашних папок:
Теперь создадим подтом для домашних папок:
 
''# btrfs subvolume create /@home''
''sudo btrfs subvolume create /@home''
На этом этапе нам необходимо скопировать папки с пользователями из папки /home в папку /@home. Убедитесь в корректном выставлении прав.
 
''# cp -pr /home/$USER /@home''
На этом этапе нам необходимо скопировать папки с пользователями из папки /home в папку /@home. Убедитесь, что необходимые права выставлены.
Если на этом этапе запросить список подтомов, выглядеть он будет примерно следующим образом:
 
  ''# btrfs subvolume list /''
Если на этом этапе запросить список подтомов, то выглядеть он будет примерно следующим образом:
  ''sudo btrfs subvolume list /''
  ''ID 257 gen 600 top level 5 path @''
  ''ID 257 gen 600 top level 5 path @''
  ''ID 258 gen 35 top level 5 path @home''
  ''ID 258 gen 35 top level 5 path @home''
Для дальнейшей настройки потребуются ID подтомов.


Для дальнейшей настройки нам потребуются ID подтомов.
Вставим в /@/etc/fstab строки для настройки монтирования корневого подтома, в котором будут храниться снапшоты, к папке subvols, а подтома @home - к папке /home:
''UUID=XXXX /subvols btrfs noatime,subvolid=5,nofail 1 1'' # где XXXX - уникальный UUID вашего раздела с файловой системой btrfs.
''UUID=XXXX /home btrfs noatime,subvol=@home,nofail 1 1''
UUID у обоих одинаковый, поскольку том один, а вот опции subvol/subvolid различаются. При использовании subvol необходимо прописывать маршрут к подтому (в нашем случае @home лежит в корневом томе), если же использовать subvolid, достаточно просто указать ID из 'btrfs subvolume list' - в примере это 258.


Корректируем fstab для настройки монтирования корневого подтома (в котором у нас будут храниться наши снапшоты) к папке subvols, и монтирование подтома @home к папке /home. Для этого вставляем в /etc/fstab следующиу строки:
В принципе, с помощью fstab можно настроить монтирование и корневого диска, однако при этом придется прописывать опции для Grub, поэтому предлагаю для корня использовать средства btrfs-prog. Собственно, делается это так:
''UUID=XXXX /subvols btrfs noatime,subvolid=5,nofail 1 1'' #где XXXX- уникальный UUID вашего раздела с файловой системой btrfs.
  ''# btrfs subvolume set-default 257 /'' # где 257 в нашем примере - ID подтома @. Этой командой мы указываем, что подтомом по умолчанию для папки / будет @.
''UUID=XXXX /home btrfs noatime,subvol=@home,nofail 1 1'' #UUID у обоих дисков будет одинаковый, поскольку том один, а вот опция subvol/subvolid - разная. Если используется subvol, то необходимо прописывать адрес к подтому (в нашем случае @home лежит в корневом томе), если subvolid, то достаточно просто ID из ''btrfs subvolume list'', в примере это 258.
 
В принципе, с помощью fstab можно настроить монтирование и корневого диска, однако при этом придется прописывать опции для Grub, поэтому я предлагаю для корня использовать средства btrfs-prog. Собственно, делается это так:
  ''sudo btrfs subvolume set-default 257 /'' # где 257 ID подтома @, в нашем примере это 257. Этой командой мы указываем, что подтомом по умолчанию для папки / будет @
После перезагрузки компьютера у нас получится следующая структура:
После перезагрузки компьютера у нас получится следующая структура:
В корневом подтоме btrfs (subvolid 5) у нас созданы два подтома @ и @home, которые примонтированы как корневая папка операционной системы и папка пользователей соответственно, доступ в подтом 5 осуществляется через папку subvols в корне операционной системы.  
* В корневом подтоме btrfs (subvolid 5) у нас созданы два подтома @ и @home, которые примонтированы как корневая папка операционной системы и папка пользователей соответственно.
Если у вас все так и получилось, то теперь можно удалить файлы операционной системы из папки /subvols (кроме двух подтомов, естественно), и установка AltLinux на btrfs закончена.
* Доступ в подтом 5 осуществляется через папку subvols в корне операционной системы.  
Если у вас все так и получилось, можно удалить файлы операционной системы из папки /subvols (кроме двух подтомов, естественно) - и установка Alt Linux на btrfs закончена.


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


==Создание снапшотов==
==Создание снапшотов==
Приступим к тому, ради чего все и делалось: созданию мгновенных снапшотов. Файловая система btrfs работает по технологии Copy-on-Write, благодаря чему создания снапшота - невероятно простое дело и занимает несколько секунд:
Приступим к тому, ради чего все затевалось: созданию мгновенных снапшотов.
 
''sudo btrfs subvolume snap /subvols/@ /subvols/@$(date +%d%m)'', где "/subvols/@" путь в файловой системе до нашего подтома, а "/subvols/@$(date +%d%m)" - путь и название нашего снапшота ("$(date +%d%m)"- день и месяц создания снапшота.


В случае успеха команда даст нам следующий ответ:
Файловая система btrfs работает по технологии Copy-on-Write, благодаря чему создание снапшота - невероятно простое дело и занимает несколько секунд:
''# btrfs subvolume snap /subvols/@ /subvols/@$(date +%d%m)''
Где "/subvols/@" - путь в файловой системе до нашего подтома, а "/subvols/@$(date +%d%m)" - путь и название снапшота по дате его создания.


В случае успеха команда даст следующий ответ:
  '' Create a snapshot of '/subvols/@' in '/subvols/@2111' ''
  '' Create a snapshot of '/subvols/@' in '/subvols/@2111' ''
Повторяем операцию для домашней папки
Повторяем операцию для домашней папки
  ''sudo btrfs subvolume snap /subvols/@home /subvols/@home$(date +%d%m)
  ''# btrfs subvolume snap /subvols/@home /subvols/@home$(date +%d%m) ''
  Create a snapshot of '/subvols/@home' in '/subvols/@home2111' ''
  '' Create a snapshot of '/subvols/@home' in '/subvols/@home2111' ''


Проверяем:
Проверяем:
 
  ''# btrfs subvolume list /''
  ''sudo btrfs subvolume list /''
  ''ID 257 gen 688 top level 5 path @''
  ''ID 257 gen 688 top level 5 path @''
  ''ID 258 gen 689 top level 5 path @home''
  ''ID 258 gen 689 top level 5 path @home''
  ''ID 265 gen 678 top level 5 path @2111''
  ''ID 265 gen 678 top level 5 path @2111''
  ''ID 266 gen 682 top level 5 path @home211''
  ''ID 266 gen 682 top level 5 path @home211''
Создание снапшотов закончено.
Создание снапшотов закончено.


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


Переход по снапшотам: для отката корневой системы в предыдущее состояние достаточно набрать команду  
Для отката корневой системы в предыдущее состояние достаточно набрать команду  
  ''sudo btrfs subvolume set-default 265 /''#265 - ID снапшота корня.
  ''# btrfs subvolume set-default 265 /'' # 265 - ID снапшота корня.


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


   
   


[[Category:FileSystems]]
[[Category:FileSystems]]

Текущая версия от 17:09, 26 июля 2021

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


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

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


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

Зачем он нужен, этот ваш BTRFS?

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

Перед установкой

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

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

Подготовка жестких дисков

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

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

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

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

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

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

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

Установка

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


Legacy

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

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


UEFI

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

В дальнейшем устанавливаем как обычно.

После установки

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

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

# mkdir /subvols

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

# btrfs subvolume list /

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

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

# btrfs subvolume snap / /@ 

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

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

# btrfs subvolume create /@home

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

# cp -pr /home/$USER /@home

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проверяем:

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

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

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

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

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

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