Déplacer une installation Linux à l'aide de btrfs sur le sous-volume par défaut (subvolid = 0) vers un autre sous-volume

15

Lors d'une installation sur un système de fichiers racine btrfs, de nombreuses distributions Linux s'installent sur le sous-volume par défaut. Si elle n'est pas modifiée, cette disposition forcera la création de tous les instantanés ou sous-volumes dans le système de fichiers racine, ce qui peut être indésirable. Une autre disposition possible serait que le sous-volume par défaut contienne un snapshotsrépertoire et un rootfssous - volume, qui est le système de fichiers racine. Comment puis-je changer l'installation de btrfs par défaut pour utiliser cette disposition de sous-volume sans démarrer à partir d'un livecd?

goncalopp
la source

Réponses:

15

Tout d'abord, nous allons créer la mise en page que nous voulons dans le sous-volume par défaut:

btrfs subvolume snapshot / /rootfs
mkdir /snapshots

Notez que ce /rootfssera notre nouveau système de fichiers racine, donc ne modifiez pas le système actuel après cette étape.

Modifiez /rootfs/etc/fstabpour que le système utilise le nouveau sous-volume rootfs comme système de fichiers racine. Pour cela, vous devrez le modifier pour inclure l' subvol=rootfsoption.

montez notre nouveau système de fichiers racine quelque part, montez les systèmes de fichiers appropriés (dev, sys, proc, boot si vous l'avez), chrootez-le et mettez à jour 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

C'est ça. Redémarrez et votre système de fichiers racine devrait être le sous-volume rootfs. Si cela réussit, il ne devrait pas y avoir de répertoire / snapshots. Vous pouvez maintenant supprimer le contenu de l'ancien système de fichiers racine dans le sous-volume par défaut.

Si vous le souhaitez, vous pouvez créer un point de montage permanent pour le sous-volume par défaut:

mkdir /media/btrfs/root

alors vous pouvez mount -o subvolid=0 /dev/sdXX /media/btrfs/rootet créer vos instantanés / sous-volumes.

goncalopp
la source
1
Notez également qu'au lieu de monter, chrooter et mettre à jour grub, vous pouvez simplement définir le sous-volume par défaut avec rootfs btrfs subvolume set-default ID /. IDpeut être trouvé en utilisant `btrfs subvolume list /
goncalopp
J'ai ajouté subvol=/rootfs(notez le /) fstabcar cela semble être la manière «correcte» décrite dans le (btrfs wiki) [ btrfs.wiki.kernel.org/index.php/Mount_options] .
go2null
@ go2null Le problème de l'utilisation subvol=/rootfsest que tout programme qui ne connaît pas votre disposition (les installateurs de distribution, par exemple) montera le sous-volume par défaut à la place. Si le programme s'attend à ce que le système de fichiers ressemble à un système de fichiers Linux, s'il échouera, ou pire - remplissez votre sous-volume par défaut de choses que vous ne voulez pas
goncalopp
hmm, aurait pensé que les progs qui dérangent les systèmes de fichiers vérifieraient au moins la fstabconfiguration du bootloader.
go2null