Atualizei recentemente meu sistema e após uma reinicialização recebo o seguinte:
ERROR: device ‘UUID=...’ not found. Skipping fsck.
mount: /new_root: can’t find UUID=...
You are now being dropped into an emergency shell.
Meu sistema de arquivos raiz está em uma matriz RAID e a execução blkid
no shell de emergência mostra que a matriz não está listada.
Eu tenho /dev/sda2
e /dev/sdb2
em RAID1 e normalmente ele é montado em /boot
. Eles têm um UUID="b45...
e são montados /dev/md1
com um UUID="436...
. Enquanto /dev/sda3
e /dev/sdb3
em RAID0 normalmente montado em /
. Eles têm um UUID="8dc...
e são montados /dev/md2
com um UUID="d0d...
. O erro na inicialização está procurando por d0d...
.
Inicializei no USB ativo e executei blkid
e o array estava lá. Então montei os arrays, proc
, sys
, dev
, e and boot
. Eu verifiquei /etc/mdadm.conf
e vi que todas as ARRAY
linhas estavam comentadas então executei:
# mdadm --detail --scan >> /mnt/etc/mdadm.conf
Verifiquei se os UUIDs correspondiam às duas partições que estou usando nas matrizes ( b45...
e 8dc...
). Eu então chroot
entrei.
Então verifiquei /etc/mkinitcpio.conf
e vi que mdadm_udev
estava faltando na HOOKS
configuração. Então eu li isso.
A partir daí, tentei cada um dos seguintes procedimentos seguidos de uma reinicialização:
# pacman -S linux
# mkinitcpio -p linux
# mkinitcpio -P
Para cada um, posso ver que ele constrói o mdadm_udev
gancho e me diz que:
Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays
Mas quando eu reinicio, recebo o mesmo erro e o uso blkid
no shell de emergência mostra que minhas matrizes RAID não estão listadas (mas as partições que as compõem estão lá e os UUIDs correspondem ao que está mdadm.conf
).
Também adicionei o parâmetro do kernel raid0.default_layout=2
com o mesmo resultado. Nunca esteve lá antes, mas o wiki parece indicar que preciso dele.
O pacote Linux está linux-5.12.6.arch1-1
e antes do ERRO na inicialização ele me diz que é:
Starting version 248.3-2-arch
O que estou perdendo que está fazendo com que o array não seja montado na inicialização?
Responder1
Ainda não tenho ideia do que causou o problema em primeiro lugar. Mas a solução era muito simples e me sinto idiota.
O problema era que eu tinha executado:
# mount /dev/md1 /mnt/boot
do USB ativo antes de chroot
iniciar e executar mkinitcpio
porque eu queria verificar as configurações no grub. Portanto, a initramfs
imagem que criei mdadm
estava em uma matriz RAID. O initramfs
que foi carregado não tinha ideia mdadm
e por isso não estava construindo o array.
A solução foi rodar mkinitcpio
SEM chroot
montar um array no /boot
.