Перемістіть установку Linux, використовуючи btrfs у підпункті за замовчуванням (subvolid = 0), в інший підтомник


15

Виконуючи установку в кореневу файлову систему btrfs, багато дистрибутивів Linux встановлюються в підпункт за замовчуванням. Якщо його не змінити, цей макет змусить створити будь-які знімки або підпункти всередині кореневої файлової системи, що може бути небажаним. Іншим можливим компонуванням було б, щоб підпункт за замовчуванням містив snapshotsкаталог і rootfsпідтомник, що є кореневою файловою системою. Як я можу змінити встановлення btrfs за замовчуванням distro для використання цього макета підтомника без завантаження з livecd?

Відповіді:


15

По-перше, ми створимо потрібний макет у підпункті за замовчуванням:

btrfs subvolume snapshot / /rootfs
mkdir /snapshots

Зауважте, що /rootfsце буде наша нова коренева файлова система, тому не вносите жодних змін у поточну після цього кроку.

Редагувати, /rootfs/etc/fstabщоб система використовувала новий підпункт rootfs як кореневу файлову систему. Для цього вам потрібно змінити його, щоб включити subvol=rootfsопцію.

монтуйте нову кореневу файлову систему десь, монтуйте відповідні файлові системи (dev, sys, proc, boot, якщо у вас є), chroot до неї та оновлення grub:

mount -o subvol=rootfs /dev/sdXX /media/temporary
cd /media/temporary
mount -o bind /dev  dev
mount -o bind /sys  sys
mount -o bind /proc proc
mount -o bind /boot boot
chroot .
update-grub
exit

Це воно. Перезавантажте систему, і ваша коренева файлова система повинна бути підпунктом rootfs. Якщо це вдалося, не повинно бути жодного каталогу / знімків. Тепер ви можете видалити вміст старої кореневої файлової системи з підтомника за замовчуванням.

Якщо ви хочете, ви можете зробити постійну точку монтажу для піддиапазону за замовчуванням:

mkdir /media/btrfs/root

тоді ви можете mount -o subvolid=0 /dev/sdXX /media/btrfs/rootстворювати свої знімки / підпункти.


1
Також зауважте, що замість монтажу, хронізації та оновлення grub, ви можете просто встановити підпункт за замовчуванням, який має бути rootfs btrfs subvolume set-default ID /. IDможна знайти за допомогою списку
підтомних файлів

Я додав subvol=/rootfs(зверніть увагу /) на те fstab, що, здається, є "правильним" способом, як описано у (btrfs wiki) [ btrfs.wiki.kernel.org/index.php/Mount_options] .
go2null

@ go2null Проблема використання subvol=/rootfsполягає в тому, що будь-яка програма, яка не знає про ваш макет (наприклад, інсталятори дистрибутива), змонтує замість цього підрозділ за замовчуванням. Якщо програма очікує, що файлова система буде схожа на файлову систему Linux, якщо вона вийде з ладу, або ще гірше - заповніть
підрозділ

Хм, подумав би, що проги, які возиться з файловими системами, принаймні перевірять fstabабо конфігурують завантажувач.
go2null
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.