Конвертируем Ext4 в BTRFS в Debian 9

Main

Оценка: 98.43% - 7 Голосов

Общая

Показан вариант преобразования ext4 файловой системы в btrfs файловую систему раздела с флагом boot и загрузчиком GRUB в Debian 9.

Все команды выполняются по суперпользователем root

Имеется диск /dev/sda со следующими разделами:

/dev/sda1 Linux swap
/dev/sda2 / boot

Все преобразования будут касаться раздела /dev/sda2

Прежде чем приступать к преобразованиям раздела установим утилиты для работы с btrfs файловой системой:

apt update
apt install btrfs-tools

Далее нам понадобится Live CD системы Debian, который можно скачать тут.

Нам необходимо загрузить систему при помощи данного образа.

После загрузки открываем терминал и устанавливаем утилиты для работы с btrfs файловой системой:

sudo su
apt update
apt install btrfs-tools

После проверяем нужный нам раздел на ошибки:

fsck -f /dev/sda2

Далее начинаем преобразование раздела:

btrfs-convert /dev/sda2

Процесс конвертации может занять продолжительно время, зависимо от размера раздела.

После удачного преобразования необходимо смонтировать раздел:

mount /dev/sda2 /mnt
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
chroot /mnt

Теперь необходимо указать загрузчику новый раздел для загрузки. Для этого нам необходим UUID раздела, который мы можем узнать командой:

blkid /dev/sda2

Получаем вывод где нас интересует UUID запись:

/dev/sda2: UUID="332978ed-34e7-4e6b-862b-dc890eda8cef" UUID_SUB="eab0118a-6ba8-4aed-a05a-b62c659132e2" TYPE="btrfs" PARTUUID="3ef78635-02"

Далее нам необходимо отредактировать конфигурационный файл fstab внеся в него новый, полученный выше, UUID:

nano /etc/fstab

Нам нужно за-комментировать  старую запись о разделе и прописать новую с новыми опциями для монтирования.

UUID=332978ed-34e7-4e6b-862b-dc890eda8cef / btrfs defaults 0 1

Важно отметить опцию defaults иначе раздел может смотироваться как только для чтения.

Теперь поправим загрузчик GRUB.

nano /etc/grub.d/00_header

Ищем в нем строку и комментируем ее:

if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi

После обновляем загрузчик GRUB:

update-grub
grub-install /dev/sda

если все удачно то выходим и перезагружаемся без Live CD

exit
reboot

После конвертации в корне раздела появится папка ext2_saved, содержащий образ раздела до преобразования. Раздел необходим для отката преобразования.

Если вы не собираетесь откатываться то удалить его можно командой:

btrfs subvolume delete /ext2_saved

  • Просмотров: 10151
Комментарии   
-2 #1 Dim 14.06.2021 09:27
Подскажите, сколько свободного места на диске надо? получается для конвертирования надо как минимум в двое больше, т.е. около 50% диска, для сохранения ext2_saved?
Цитировать
0 #2 admin 14.06.2021 09:58
Цитирую Dim:
Подскажите, сколько свободного места на диске надо? получается для конвертирования надо как минимум в двое больше, т.е. около 50% диска, для сохранения ext2_saved?
Вряд ли вам кто-то ответит на этот вопрос, так как нигде об этом не сказано. Несомненно чем больше свободного места тем лучше, но судя по всему малое количество свободного места лишь продлевает процесс преобразования. Если процесс конвертации запущено то остается ждать окончания и проверять работоспособность процесса через iotop.
Цитировать
Добавить комментарий