Instale o OpenSUSE em um subvolume BTRFS

2

Estou tentando instalar diferentes distribuições de Linux dentro de um único sistema de arquivos BTRFS, usando um subvolume para cada um, a fim de evitar o desperdício de espaço livre usando diferentes partições. Estou usando um laptop com 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 instantâneos
/ os / DISTID: subvolume para distro DIST (um para distro)

Cada distro instalaria seu GRUB2 e eu carregaria o GRUB que eu preciso no UEFI, para que cada distro não precise estar ciente dos outros.

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

  • define o último como subvolume padrão (como declarado também aqui ) e disse ao OpenSUSE para não formatar a partição; a instalação pareceu ser bem-sucedida, mas não conseguiu inicializar
  • montou o subvolume para / mnt no sistema live da 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
  • instalou o OpenSUSE em uma máquina virtual parecida com o ambiente laptop, depois copiou todo o sistema para o subvolume e fez os ajustes necessários para o grub e suas configurações (as que eu tinha que fazer com o Arch ou Funtoo); o grub foi carregado, mas o sistema inicializado entrou em pânico no kernel

Os ajustes no GRUB que escrevi implicam o seguinte:

  • chroot no subvolume (usando arch-chroot ou o procedimento para instalação do gentoo / funtoo )
  • instale o grub em /boot/efi , a partição do sistema EFI (mas mantenha os dados do GRUB em /boot )
  • execute grub-mkconfig -o /boot/grug/grub.cfg para atualizar o gerenciador de inicialização

Alguém tem alguma ideia? Eu senti falta de alguma coisa?

    
por Michele Cereda 03.11.2016 / 00:04

1 resposta

2

Da minha experiência, o manuseio de subvolumes personalizados (por exemplo, além do snapper / @ -notation) pelo instalador do OpenSUSE Leap 42.2 / 42.3 não funciona. Pior ainda, algumas ferramentas, como a instalação do gerenciador de inicialização, têm problemas com isso. Por exemplo, no meu caso, o grub core estava apontando para / boot / grub ..., mas deveria ser apenas / grub .. ao atualizar a partir do chroot. Você pode verificar as configurações atuais com esta ferramenta: link

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

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

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

  1. Mova os diretórios do sistema instalados para o subvolume desejado, de modo que você tenha a árvore usual do sistema de arquivos Linux abaixo desse subvolume. Corrija a pasta inicial também, se necessário.
  2. Corrija o / etc / fstab, adicionando as opções subvol = / myrootsubvol adequadas
  3. Monte a partição com o subvolume (future /), mount boot e mount boot / efi
  4. Agora crie o segundo diretório fora do subvolume montado. Faça bind-mount 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 usual de chroot para /mnt/temp_sys_prep . No chroot você 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; O mkinitrd provavelmente também chama o grub.

  6. Saia do chroot e desmonte na ordem inversa. Verifique com a ferramenta novamente, se o núcleo do grub2 apontar para o caminho correto agora
por 20.10.2017 / 10:07