Instale OpenSUSE en un subvolumen BTRFS

Instale OpenSUSE en un subvolumen BTRFS

Estoy intentando instalar diferentes distribuciones de Linux dentro de un único sistema de archivos BTRFS, usando un subvolumen para cada una, para evitar desperdiciar espacio libre usando diferentes particiones.
Estoy usando una computadora portátil con UEFI y quería usar el siguiente esquema de partición:

sda1: arranque EFI, montado en /boot/efi en todos los sistemas
sda2: intercambio
sda3: volumen BTRFS

sda3 entonces sería "particionado" en los siguientes subvolúmenes:
/data: subvolumen para datos
/snapshots: subvolumen para instantáneas
/os/DISTID: subvolumen para distribución DIST (uno para distribución)

Cada distribución instalaría su GRUB2 y yo cargaría el GRUB que necesito en UEFI, para que cada distribución no necesite estar al tanto de las demás.

Pude instalar Arch y Funtoo, pero no pude configurar OpenSUSE para que se instale en el subvolumen /os/suse.
Intenté lo siguiente:

  • establezca este último como subvolumen predeterminado (como se indica tambiénaquí) y le dijo a OpenSUSE que no formateara la partición; la instalación pareció exitosa, pero no pudo iniciarse
  • montó el subvolumen en /mnt en el sistema en vivo de instalación y le dijo a OpenSUSE que ignorara el hecho; la instalación falló cuando intentó volver a montar la partición para la instalación real
  • instalé OpenSUSE en una máquina virtual que se asemeja al entorno de una computadora portátil, luego copié todo el sistema al subvolumen e hice los ajustes necesarios a grub y su configuración (los que tuve que hacer con Arch o Funtoo); Se cargó grub, pero el sistema iniciado entró en pánico en el kernel.

Los ajustes a GRUB sobre los que escribí implican lo siguiente:

  • chroot en el subvolumen (usando arch-chroot oel procedimiento para la instalación de gentoo/funtoo)
  • instale grub en /boot/efi, la partición del sistema EFI (pero mantenga los datos de GRUB en /boot)
  • ejecutar grub-mkconfig -o /boot/grug/grub.cfgpara actualizar el gestor de arranque

¿Alguien tiene alguna idea? ¿Me he perdido algo?

Respuesta1

Según mi experiencia, el manejo de subvolúmenes personalizados (por ejemplo, distintos de la notación snapper/@) por parte del instalador de OpenSUSE Leap 42.2/42.3 no funciona. Peor aún, algunas herramientas, como la instalación del gestor de arranque, tienen problemas. Por ejemplo, en mi caso, el núcleo de grub apuntaba a /boot/grub..., pero debería ser solo /grub... al actualizar desde chroot. Puede comprobar la configuración actual con esta herramienta:https://github.com/arvidjaar/bootinfoscript

De todos modos, aquí hay una forma que utilizo para configurar después de la instalación o para realizar copias de seguridad de arranque.

Evite crear la docena de subvolúmenes mediante el instalador, simplemente instálelo, por ejemplo, en la raíz de la partición/subvolumen predeterminado (si funcionó).

Después de la instalación, inicie el sistema de rescate y

  1. Mueva los directorios del sistema instalado al subvolumen deseado, de modo que tenga el árbol habitual del sistema de archivos de Linux debajo de ese subvolumen. Arregle también la carpeta de inicio, si es necesario.
  2. Arregle el /etc/fstab, agregando las opciones adecuadas subvol=/myrootsubvol
  3. Monte la partición con el subvolumen (futuro /), monte el arranque y monte el arranque/efi.
  4. Ahora cree un segundo directorio fuera del subvolumen montado. Enlace y monte todo en ese directorio.

    mount -o bind "/mnt/partition_root/sysroot_subvol" "/mnt/temp_sys_prep" 
    mount -o bind "/mnt/partition_root/sysroot_subvol/boot" "/mnt/temp_sys_prep/boot" 
    mount -o bind "/mnt/partition_root/sysroot_subvol/boot/efi" "/mnt/temp_sys_prep/boot/efi" 
    mount -o bind /proc "/mnt/temp_sys_prep/proc"
    mount -o bind /sys "/mnt/temp_sys_prep/sys"
    mount -o bind /dev "/mnt/temp_sys_prep/dev"    
    
  5. Ahora utilice el enfoque chroot habitual para /mnt/temp_sys_prep.en el chrootpuedes usar

    • grub2-install --no-nvram --recheck --efi-directory=/boot/efi /dev/disk/by-id/scsi-SATA...,
    • grub2-mkconfig -o /boot/grub2/grub.cfg,
    • mkinitrd

    No estoy seguro del orden correcto; mkinitrd probablemente también llame a grub.

  6. Salga del chroot y desmóntelo en orden inverso. Verifique con la herramienta nuevamente, si el núcleo de grub2 apunta a la ruta correcta ahora

información relacionada