Mueva una instalación de Linux usando btrfs en el subvolumen predeterminado (subvolid = 0) a otro subvolumen


15

Al realizar una instalación en un sistema de archivos raíz btrfs, muchas distribuciones de Linux se instalan en el subvolumen predeterminado. Si no se modifica, este diseño obligará a crear instantáneas o subvolúmenes dentro del sistema de archivos raíz, lo que puede ser indeseable. Otro diseño posible sería tener el subvolumen predeterminado que contenga un snapshotsdirectorio y un rootfssubvolumen, que es el sistema de archivos raíz. ¿Cómo puedo cambiar la instalación btrfs de distro-default para usar este diseño de subvolumen sin arrancar desde un livecd?

Respuestas:


15

En primer lugar, crearemos el diseño que queremos en el subvolumen predeterminado:

btrfs subvolume snapshot / /rootfs
mkdir /snapshots

Tenga en cuenta que /rootfsserá nuestro nuevo sistema de archivos raíz, así que no realice ningún cambio en el actual después de este paso.

Edite /rootfs/etc/fstabpara hacer que el sistema use el nuevo subvolumen rootfs como sistema de archivos raíz. Para eso, deberá modificarlo para incluir la subvol=rootfsopción.

monte nuestro nuevo sistema de archivos raíz en algún lugar, monte los sistemas de archivos relevantes (dev, sys, proc, arranque si lo tiene), realice un arranque y actualice 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

Eso es. Reinicie, y su sistema de archivos raíz debería ser el subvolumen rootfs. Si esto tuvo éxito, no debería haber ningún directorio / snapshots. Ahora puede eliminar el contenido del antiguo sistema de archivos raíz en el subvolumen predeterminado.

Si lo desea, puede hacer un punto de montaje permanente para el subvolumen predeterminado:

mkdir /media/btrfs/root

entonces puedes mount -o subvolid=0 /dev/sdXX /media/btrfs/rooty crea tus instantáneas / subvolúmenes.


1
Además, tenga en cuenta que en lugar de montar, modificar y actualizar grub, simplemente puede configurar el subvolumen predeterminado para que sea rootfs btrfs subvolume set-default ID /. IDse puede encontrar usando `btrfs subvolume list /
goncalopp

Agregué subvol=/rootfs(tenga en cuenta que /) fstabya que parece ser la forma 'adecuada' como se describe en (btrfs wiki) [ btrfs.wiki.kernel.org/index.php/Mount_options] .
go2null

@ go2null El problema del uso subvol=/rootfses que cualquier programa que no tenga conocimiento de su diseño (instaladores de distribución, por ejemplo) montará el subvolumen predeterminado en su lugar. Si el programa espera que el sistema de archivos se vea como un sistema de archivos de Linux, si falla, o peor, llene su subvolumen predeterminado con cosas que no desea allí
goncalopp

hmm, habría pensado que los programas que se meten con los sistemas de archivos al menos verificarían fstabo configurarían el gestor de arranque.
go2null
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.