Falha na montagem do UUID = xxx em /sysroot: Nenhum dispositivo desse tipo - Ocorre após a instalação do kernel do Linux

Falha na montagem do UUID = xxx em /sysroot: Nenhum dispositivo desse tipo - Ocorre após a instalação do kernel do Linux

Depois de tentar instalar um kernel compilado e reinicializar, estou recebendo o erro:

montagem: montagem UUID = 59c56381-e5ec-4a8b-8c2e-f9c6a66d524c em /sysroot falhou: esse dispositivo não existe

Por que isso está acontecendo? Como posso corrigir isso para inicializar corretamente?

Sobre o sistema

  • Alpine Linux 3.12_alpha20200319 (borda) - Alpine Linux Virtual
  • Kernel 5.4.31-0-virt
  • Executando dentro do VirtualBox

Etapas de construção do kernel

wget https://mirrors.edge.kernel/pub/linux/kernel/v5.x/linux-5.4.30.tar.xz
tar -xf linux-5.4.30.tar.xz
cp /boot/config-virt /home/name/build/.config
make -C /home/name/linux-5.4.30 O=/home/name/build listnewconfig
make -j4 -C /home/name/linux-5.4.30 O=/home/name/build
cd /home/name/build
make modules_install

Não tenho certeza sobre as seguintes etapas:

cp System.map /boot/System.map-virt
cp arch/x86_64/boot/bzImage /boot/vmlinuz-virt
cp .config /boot/config-virt

Não corro make installporque passa arch/x86/boot/bzImage. Por causa disso, acho que está instalando 32 e 64 bits. Então, estou tentando instalar manualmente.

Meu arquivo extlinux.conf:

DEFAULT menu.c32
PROMPT 0
MENU TITLE Alpine/Linux Boot Menu
MENU HIDDEN
MENU AUTOBOOT Alpine will be booted automatically in # seconds
TIMEOUT 30
LABEL virt
  MENU LABEL linux virt
  LINUX vmlinuz-virt
  INITRD initramfs-virt
  APPEND root=UUID=59c56381-e5ec-4a8b-8c2e-f9c6a66d524c moudles=sd-mod,usb-storage,ext4 quiet rootfstype=ext4

MENU SEPARATOR

Tentativas de consertar

(Todos os itens abaixo ainda resultam no mesmo erro)

  • Executando mkinitfsno /diretório antes da reinicialização
  • Correndoextlinux --install /boot
  • Executando make installno diretório build e alterando a linha extlinux.conf LINUX vmlinuz-virtparaLINUX vmlinuz
  • Tentei mudar os controladores de armazenamento VirtualBox para AHCI, virtio-scsi e PIIX4.

Pode ser útil:

Verifiquei o UUID especificado no erro e no extlinux.conf. Ele identifica /dev/sda3. No entanto, quando entro no shell de recuperação de emergência após uma falha na inicialização e verifico o diretório /dev, ele não está presente. Não faço ideia do porquê.

lsmod não mostra nenhum módulo carregado. Presumo que isso não deveria estar acontecendo.

Se eu continuar a inicialização digitando, exitrecebo o kernel panicCaptura de tela do pânico do kernel

arquivos

.config -https://github.com/alpinelinux/aports/blob/master/main/linux-lts/config-virt.x86_64

extlinux.conf -https://pastebin.com/QMkePsqS

mkinitfs.conf -https://pastebin.com/rksn7GcN

Responder1

Como mencionado na postagem,

lsmod não mostra nenhum módulo carregado. Presumo que isso não deveria estar acontecendo

o problema era porque os módulos não estavam sendo carregados no kernel. A versão atual do kernel em execução era 5.4.31-0-virt e a versão que estava sendo construída era 5.4.30. Os módulos sendo instalados estavam sendo colocados no /lib/modules/5.4.30diretório. Isso fez com que o disco RAM inicial (initramfs) fosse compilado sem os módulos corretos para o kernel e, portanto, não fosse carregado na inicialização.

Para corrigir isso, após instalar os módulos do kernel ao construir o initramfs, o seguinte comando deve ser usado:

mkinitfs -o /boot/initramfs-virt 5.4.30

Este comando inclui os módulos instalados para o kernel 5.4.30 no initramfs em vez de usar a uname -rversão padrão (neste caso 5.4.31-0-virt). O kernel é então capaz de carregar os módulos -> ler os discos -> inicializar a partir do disco necessário.

informação relacionada