O Grub não inicializa a partir do GPT RAID (desistiu de esperar pelo dispositivo root)

5

Estou tendo problemas para inicializar um sistema Debian 8 no qual migrei a partição raiz de um único disco rígido para um RAID1 (mdraid).

Em cada inicialização, recebo o seguinte erro do grub:

Gave up waiting for root device. Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/disk/by-uuid/2ab18cb4-a23d-4e5c-b37d-cbd3077b878c does not exist.
Dropping to a shell!
modprobe: module ehci-orion not found in modules.dep

(initramfs)

/ dev / md0 não é iniciado, por isso não é possível encontrar a partição raiz:

(initramfs) ls /dev/md*
ls: /dev/md*: No such file or directory
(initramfs)

No entanto, posso iniciar o ataque manualmente:

(initramfs) mdadm --assemble --scan
mdadm: /dev/md0 has been started with 2 drives.
(initramfs) ls /dev/md*
/dev/md0

O sistema só inicializará se eu criar manualmente o diretório / dev / disk / by-uuid e vinculá-lo md0 :

(initramfs) mkdir /dev/disk/by-uuid
(initramfs) ln -s /dev/md0 /dev/disk/by-uuid/2ab18cb4-a23d-4e5c-b37d-cbd3077b878c

Espero que alguém possa me ajudar a entender por que o grub não inicia o dispositivo md sozinho. Eu procurei na internet e tentei de tudo que pude encontrar, mas sem sorte. Estou realmente perdida agora.

Eu quero inicializar via BIOS-legacy , não UEFI .

Os dois únicos discos rígidos conectados (SSD!) são formatados com uma tabela de partições GPT e as seguintes partições (exatamente iguais):

1      1049kB  2097kB  1049kB                     bios_grub
2      2150MB  12,9GB  10,7GB  ext4               raid

( grub-pc precisa da primeira partição para inicializar a partir das unidades GPT )

O Raid1 (metadados v0.90) é formatado diretamente como ext4 .

Através de um chroot ao vivo, instalei grub-pc para / dev / sda e / dev / sdb , mudei meu fstab , correu update-grub e update-initramfs -u -k all .

blkid :

/dev/sda2: UUID="b59d3baf-346b-568d-03a2-8b26060640c5" TYPE="linux_raid_member" PARTUUID="0609ba5b-9065-41f8-80ed-6832e3236ec9"
/dev/sdb2: UUID="b59d3baf-346b-568d-03a2-8b26060640c5" TYPE="linux_raid_member" PARTUUID="24ee1040-02dd-4867-b4da-5be11d59bdcd"
/dev/md0: UUID="2ab18cb4-a23d-4e5c-b37d-cbd3077b878c" TYPE="ext4"
/dev/sda1: PARTUUID="df5161cf-b5b3-422c-9ed2-90a7750ac265"
/dev/sdb1: PARTUUID="7d20b55b-ba50-4187-b05e-ae1f18b21de3"

mdadm.conf contém (apenas!) o conteúdo de mdadm --detail --scan :

ARRAY /dev/md0 metadata=0.90 UUID=b59d3baf:346b568d:03a28b26:060640c5

Aqui está um trecho do meu /boot/grub/grub.cfg :

load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod part_gpt
insmod diskfilter
insmod mdraid09
insmod ext2
set root='mduuid/b59d3baf346b568d03a28b26060640c5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='mduuid/b59d3baf346b568d03a28b26060640c5'  2ab18cb4-a23d-4e5c-b37d-cbd3077b878c
else
  search --no-floppy --fs-uuid --set=root 2ab18cb4-a23d-4e5c-b37d-cbd3077b878c
fi
echo        'Linux 3.16.0-4-amd64 wird geladen …'
linux       /boot/vmlinuz-3.16.0-4-amd64 root=UUID=2ab18cb4-a23d-4e5c-b37d-cbd3077b878c ro  rootdelay=20
echo        'Initiale Ramdisk wird geladen …'
initrd      /boot/initrd.img-3.16.0-4-amd64
    
por Ansgar 10.01.2017 / 21:16

1 resposta

0

Na verdade, não é o grub que faz isso, mas o initramfs. No Debian, a implementação initramfs padrão é a que está dentro do initramfs-tools package . O que seu initramfs faz exatamente para montar o sistema de arquivos raiz pode depender de muitos fatores, incluindo coisas como quais pacotes são instalados (pacotes podem adicionar scripts de gancho para estender a funcionalidade initramfs ) no momento em que update-initramfs foi chamado pela última vez e como eles foram configurados.

Como o problema parece ser que seus dispositivos mdraid não estão sendo reconstruídos, suspeito que o pacote mdadm não tenha sido configurado corretamente. Tente corrigir isso primeiro:

sudo dpkg-reconfigure mdadm

Depois disso, o initramfs deve ser atualizado automaticamente.

Se isso não resolver o problema, e como parte de sua migração para o software RAID você criou um novo sistema de arquivos, pode ser que o fstab tenha o UUID do sistema de arquivos antigo, que agora não corresponde mais ao novo sistema de arquivo. Verifique isso:

grep $(blkid /dev/md0) /etc/fstab

Se isso não produzir saída, edite /etc/fstab para substituir o UUID especificado para o dispositivo raiz pela saída de blkid /dev/md0 e execute update-initramfs novamente.

    
por 30.07.2018 / 16:13