redimensiona / reduz o sistema de arquivos raiz com o grub2 (ex .: antes de ser montado)

2

Contexto:

  • alguns servidores remotos 7 32bit debian
  • acessível apenas via SSH
  • mais da metade dos discos estão vazios
  • 1 partição de disco inteira por servidor
  • pequena janela de manutenção, não pode ficar inativa por muito tempo
  • sistemas de arquivos ext4
  • OBSERVAÇÃO: Estou desenvolvendo minha solução usando uma VM do VirtualBox, mas os servidores são bare metal direto.

Meta: atualizar o sistema operacional para o Debian 9+, de forma não-destrutiva, pois o ideal é que a máquina permaneça ativa até a reinicialização do novo sistema operacional.

Então, para cada servidor, eu planejo (outras sugestões bem-vindas) para fazer o seguinte:

  1. Reduza os atuais 7 rootfs deb com resize2fs para um pouco menos que 1/2 do tamanho da partição
  2. Encolher a partição para limpar 1/2 do disco
  3. Particione o espaço recém-liberado (/, / home, swap) e Instale o LVM2
    (crie VG, LV, etc.) e Debian 9

Meu problema é que resize2fs só pode encolher ext4 fs se desmontado. Portanto, a idéia é usar a imagem initrd ou initramfs para chamar resize2fs no unmounted / dev / sda1 durante a seqüência de bootloading do GRUB2.

Eu construí minha própria imagem initrd contendo um binário resize2fs estático e um shell script que o chama (e faz outras validações etc.), mas parece que eu acertei um obstáculo tentando escrever a entrada correta no grub.cfg arquivo para fazê-lo montar minha imagem initrd e executar meu script de redimensionamento no unmounted / dev / sda1.

Então, minha pergunta é:

O menu do grub.cfg eu preciso escrever para carregar minha imagem initrd personalizada contendo meu script /bin/resize.sh e depois executá-lo (o /bin/resize.sh)?

    
por Martin Vincent 22.01.2018 / 03:34

0 respostas