Instale o OpenSUSE em um subvolume BTRFS

Instale o OpenSUSE em um subvolume BTRFS

Estou tentando instalar diferentes distribuições Linux dentro de um único sistema de arquivos BTRFS, usando um subvolume para cada uma, para evitar o desperdício de espaço livre usando partições diferentes.
Estou usando um laptop executando UEFI e queria usar o seguinte esquema de particionamento:

sda1: inicialização EFI, montada em /boot/efi em todos os sistemas
sda2: swap
sda3: volume BTRFS

sda3 seria então "particionado" nos seguintes subvolumes:
/data: subvolume para dados
/snapshots: subvolume para snapshots
/os/DISTID: subvolume para distro DIST (um para distro)

Cada distro instalaria seu GRUB2, e eu carregaria o GRUB necessário no UEFI, para que cada distro não precisasse estar ciente das outras.

Consegui instalar o Arch e o Funtoo, mas não consegui configurar o OpenSUSE para instalar no subvolume /os/suse.
Eu tentei o seguinte:

  • defina o último como subvolume padrão (como indicado tambémaqui) e disse ao OpenSUSE para não formatar a partição; a instalação pareceu ter sido bem-sucedida, mas não foi possível inicializar
  • montou o subvolume em /mnt no sistema live de instalação e disse ao OpenSUSE para ignorar o fato; a instalação falhou quando tentou remontar a partição para a instalação real
  • instalei o OpenSUSE em uma máquina virtual parecida com o ambiente de laptop, depois copiei todo o sistema para o subvolume e fiz os ajustes necessários no grub e suas configurações (aqueles que tive que fazer com Arch ou Funtoo); O grub foi carregado, mas o sistema inicializado entrou em pânico no kernel

Os ajustes no GRUB sobre os quais escrevi implicam o seguinte:

  • chroot no subvolume (usando arch-chroot ouo procedimento para instalação do gentoo/funtoo)
  • instale o grub na /boot/efipartição do sistema EFI (mas mantenha os dados do GRUB /boot)
  • execute grub-mkconfig -o /boot/grug/grub.cfgpara atualizar o bootloader

Alguém tem alguma ideia? Perdi algo?

Responder1

Pela minha experiência, o tratamento de subvolumes personalizados (por exemplo, diferentes da notação snapper/@) pelo instalador do OpenSUSE Leap 42.2/42.3 não funciona. Pior ainda, algumas ferramentas, como a instalação do bootloader, apresentam problemas. Por exemplo, no meu caso, o núcleo do grub estava apontando para /boot/grub..., mas deveria ser apenas /grub.. ao atualizar do chroot. Você pode verificar as configurações atuais com esta ferramenta:https://github.com/arvidjaar/bootinfoscript

De qualquer forma, aqui está uma maneira que uso para configurar após a instalação ou para backups inicializáveis.

Evite criar a dúzia de subvolumes pelo instalador, basta instalar por exemplo na raiz da partição/subvolume padrão (se funcionou).

Após a instalação, inicie o sistema de resgate e

  1. Mova os diretórios do sistema instalado para o subvolume desejado, de forma que você tenha a árvore normal do sistema de arquivos Linux abaixo desse subvolume. Corrija a pasta pessoal também, se necessário.
  2. Corrija o /etc/fstab, adicionando as opções subvol=/myrootsubvol apropriadas
  3. Monte a partição com o subvolume (futuro /), monte boot e monte boot/efi
  4. Agora crie o segundo diretório fora do subvolume montado. Faça bind-mount de tudo nesse diretório.

    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. Agora use a abordagem chroot usual para arquivos /mnt/temp_sys_prep.No chrootvocê pode usar

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

    Não tenho certeza sobre a ordem correta; mkinitrd provavelmente também chama grub.

  6. Saia do chroot e desmonte na ordem inversa. Verifique com a ferramenta novamente, se o núcleo do grub2 aponta para o caminho correto agora

informação relacionada