79

Установка Debian на subvolume BTRFS

Всем привет, на связи Уханов. Сегодня поговорим об установке Debian Linux на subvolume BTRFS. ранее я уже я уже показывал как это делать на Arch Linux, но тут дела обстоят немного иначе.

Начало установки

Загружаемся с установочного носителя и выбираем пункт Expert install. Он находится в подменю Advanced options.

Процесс установки подробно описывать не буду, так как там ничего сложного нет. Продолжаем установку до пункта разметка дисков.

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

Выбираем ручное разбиение дисков. Так как у нас UEFI система, то создаём таблицу разделов GPT. Создаём первый раздел на 500 мб и выбираем в качестве файловой системы “системный раздел EFI”. Создаём раздел подкачки. На оставшемся месте создаём раздел и выбираем файловую систему BTRFS. Записываем изменения.

Создание Subvolume

Теперь нам надо перейти в новую консоль и поправить тома. Нажимаем CTRL+ALT+F2, нажимаем Enter. мы провалились в консоль 2.

Нам надо посмотреть что куда примонтировано.

mount

Отмонтируем примонтированные тома

umount /dev/sda1 umount /dev/sda3

Теперь монтируем основной раздел и проваливаемся в него

mount /dev/sda3 /mnt cd /mnt

Осмотримся

ls

Видим subvolume @rootfs. Это и есть наш корневой каталог. Создадим требуемые subvolume для остальных каталогов, которые хотим выделить из корня..

btrfs subvolume create @home btrfs subvolume create @var btrfs subvolume create @.snapshots

Теперь нам надо знать их subvolid. Посмотреть можно командой:

btrfs subvolume list .

Теперь монтируем корневой subolume в /target

mount -o rw,noatime,compress=lzo,space_cache,subvolid=256 /dev/sda3 /target

Создадим на нём точки монтирования остальных томов

mkdir -p /target/boot/efi mkdir -p /target/home mkdir -p /target/var mkdir -p /target/.snapshots

Монтируем всю эту музыку

mount /dev/sda1 /target/boot/efi

mount -o rw,noatime,compress=lzo,space_cache,subvolid=258 /dev/sda3 /target/home

mount -o rw,noatime,compress=lzo,space_cache,subvolid=259 /dev/sda3 /target/var

mount -o rw,noatime,compress=lzo,space_cache,subvolid=260 /dev/sda3 /target/.snapshots

Теперь идём править fstab, чтобы это всё коректно смонтировалось при загрузке

nano /target/etc/fstab

Находим строчку монтирования корневого раздела, переводим курсор туда и вырезаем строку комбинацией ctrl+k. Строчка пропала, а теперь вставляем её комбинацией ctrl+u столько раз, сколько subvolume надо монтировать. В моём случае 4.

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

Должно получиться как-то так:

Завершение установки

Нажимаем CTRL+ALT+F1 и продолжаем установку.

Устанавливаем и перезагружаемся. На этом всё.

Оригинал как всегда в моём блоге.

GNU/Linux

1.2K поста15.6K подписчика

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

8
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Тем не менее у Windows пользователей давно уже есть теневое копирование тома, динамические диски, Storage Spaces и ReFS.

Так что никто не в обиде.

показать ответы
0
Автор поста оценил этот комментарий
Да те же манжаро и федора. В Федоре по моему даже сжатие можно указать.
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Спасибо, попробую на досуге.

0
Автор поста оценил этот комментарий
Зачем нужно это общее пространство, и что оно собой представляет, вот в чём вопрос. Почитал по теме btrfs - физически общее пространство может располагаться на разных устройствах, и в таком случае subvolume btrfs - это замена обычным разделам. А если у вас одно устройство физическое, то можно делать обычные разделы, и не заморачиваться. Полагаю, что всё не так банально, и тема применения subvolume btrfs не раскрыта
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Привет! Пример как выглядит общее пространство видно на скриншоте. Исходя из примера видно, что если я разделю диск просто на разделы, то дисковое пространство будет распределяться неравномерно. Но я понял запрос и потороплюсь с написанием заметки про BTRFS (готова наполовину).

Иллюстрация к комментарию
показать ответы
0
DELETED
Автор поста оценил этот комментарий

Хм....хорошее решение, а для снимка нагруженной работающей системы, подойдёт ваше решение?

В целом я использую proxmox...

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Скажу так: всё надо пробовать. Тут как-бы надо прикидывать что происходит в системе на момент снимка. Например если говорить про Minecraft, то нужно сначала отключить автосохранение карты, потом толкнуть сохранение вручную и только потом делать снимок. Что-бы не получить нерабочую карту в снимке.

показать ответы
4
Автор поста оценил этот комментарий
В некоторых дистрибутивах есть такая возможность. Просто дебиан самый консервативный дистр.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Нет, ну там графический установщик тоже есть, но речи о subvolume там не идёт. А в каких дистрибутивах так можно сделать из коробки?

показать ответы
20
DELETED
Автор поста оценил этот комментарий

А зачем это вообще все? Какие плюшки ?

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Subvolume могут иметь разные параметры монтирования, но при этом в отличие от классических разделов, используют общее пространство. Можно делать снимки отдельных  subvolume и использовать снимки отдельно от оригинала или восстанавливать. Можно откатить систему в случае например неудачного обновления. Например я так делаю резервные копии своего сервера Minecraft перед обслуживанием.

показать ответы
11
Автор поста оценил этот комментарий
Мне кажется такую статью надо начинать с " а нахера это всё надо"
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Subvolume могут иметь разные параметры монтирования, но при этом в отличие от классических разделов, используют общее пространство. Можно делать снимки отдельных subvolume и использовать снимки отдельно от оригинала или восстанавливать. Можно откатить систему в случае например неудачного обновления. Например я так делаю резервные копии своего сервера Minecraft перед обслуживанием.

показать ответы
0
Автор поста оценил этот комментарий

Не знаю, как в Debian, а в Mint, например, просто, нужно перед установкой доставить пакеты zfs-initramfs, zfsutils-linux, zfs-zed, тогда в меню графического установщика появится соответствующая опция.

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Попробую, спасибо!

1
Автор поста оценил этот комментарий

Т.е. вы написали гайд по элементарным вещам установщика для тех кто этим пользуется? Ну ладно.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Этого в установщике нет. Потому и написал
показать ответы
2
DELETED
Автор поста оценил этот комментарий

С другой стороны можно кластеризацию использовать, клонирование ВМ.

Пока одна работает - на паре других что-то да проверяешь.

Proxmox кластер умеет даже сохранить процессы и мак адрес если настроишь отказоусточивость, процессы поднимутся, если одна из машин упала.

Я для этого даже купила СХД )

https://www.proxmox.com/en/

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Так-то да. Но это раздувание из мухи слона. Кластеризация Minecraft подумать страшно.

показать ответы
0
Автор поста оценил этот комментарий
Про дебиан врать не буду, но проксмокс вроде на его базе и ставится мышкой...
но да, дебиан не пробовал.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну Proxmox не совсем и операционная система всё-таки.

показать ответы
2
Автор поста оценил этот комментарий

Не рекомендую прописывать "subvolid". Делай все то же самое только без "subvolid"!  Из за этого "subvolid"  у тебя будут проблемы когда будешь восстанавливать в систему. К примеру у тебя на данный момент subvolid корня равен 456 а ты подсовываешь снапшет с "subvolid = 257... Это все решаемо, но, зачем вообще заморачиваться с ними если и без них все прекрасно работает!

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Я использую subvolid для того, чтобы видеть номер снимка и понимать с чем работаю. Хорошо, что доступны оба варианта и каждый делает как хочет. Тем не менее, важное замечание. Спасибо.

0
Автор поста оценил этот комментарий
Блин, зачем такие извращения? Чем zfs не зашёл?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Поставить Debian на ZFS проще?

показать ответы
0
Автор поста оценил этот комментарий

Во, топовый контент подвезли! Как раз читаю как установку на субволюмы разнести, чтоб хомяк на своём субволюме жил, остальная система - на своём.

Кстати вычитал что та же убунта это делает автоматом. Но надо проверить...

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Можно ещё создание снапшотов автоматизировать.

0
Автор поста оценил этот комментарий
Ват?! А что это?!))
Вы наверное имели в виду не десктопная, да)
Не, я без претензий.. бтр, так бтр.. просто удивился куче консольных команд для казалось бы...
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я к тому, что Proxmox из коробки много чего умеет.

1
Автор поста оценил этот комментарий

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


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


Я уже молчу про то, что на скриншоте fstab'a (который нагляднее смотрелся текстом вместе с выводом команды blkid для понимания где что), есть еще и корневой раздел, который не находтся на subvolume, судя по ходу описания статьи.


Т.е. нужно вынести часть директорий для относительно быстрого бэкапирования? Снимок большого раздела ФС сделано никогда нормально не выйдет, т.к. постоянно будет дельта данных, а за 1 тик процессора слепок ФС не сделаешь. Автор @mfc166, чем тебе обычный rsync  файлов не угодил для бэкапов?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

В статье, как по мне нехватает описания типа "я делаю это для того-то"

Я исходил из того, что человек знает что такое subvolume и зачем это надо.

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

Это не раздел внутри раздела. Subvolume ближе к каталогам. Сжатие почти не сказывается на производительности, по своему опыту сужу. Да и опции я привел для примера. Собственно можно и default+subvolid оставить.


корневой раздел, который не находтся на subvolume, судя по ходу описания статьи

Корень лежит в subvolume @rootfs. Поправил текст, чтобы этот момент был понятнее.

Автор @mfc166, чем тебе обычный rsync файлов не угодил для бэкапов?

Для бекапов его использую, но в моём применении снимки удобнее.

Спасибо  за критику.

2
DELETED
Автор поста оценил этот комментарий

Чуть позаковыристей, но на выходе понятная система из zfs https://openzfs.github.io/openzfs-docs/Getting Started/Debian/Debian Buster Root on ZFS.html

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Сохранил, заценю. Спасибо!

1
Автор поста оценил этот комментарий

Я не вижу применения. Монтирование с разными опциями. Для чего, для кого?

Думаю заняться кому-то нечем.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Например если где-то нужно использовать CoW, а где-то нет или вести контрольные суммы или тупо пользоваться снапшотами.

показать ответы