Não é possível encontrar partições de dispositivo / sda raiz ausentes

3

Eu instalei o Archlinux e depois disso o GRUB. Entrei manualmente entradas de menu para minha instalação do Windows e do Arch.

O GRUB não tem problemas para inicializar e pode ser carregado com êxito no Windows. Não pode carregar no Arch embora. Linux vai me chutar em um shell de recuperação sem arquivos /deb/sda . O USB é detectado corretamente no entanto.

O que está causando isso e como corrigir? Devo copiar o log de erro inteiro? Não é tão longo, apenas me diz que não pode encontrar o dispositivo "e não é possível acessar tty.

    
por Jeroen Bollen 12.03.2014 / 21:37

2 respostas

0

Aparentemente, o fstab não foi salvo ou foi removido. Reconfigurar este arquivo resolveu todos os problemas.

    
por 13.03.2014 / 21:44
2

Meu palpite é que a entrada /boot/grub/grub.cfg do Arch nomeia o dispositivo incorretamente. Consulte artigo de nomenclatura de dispositivo de bloqueio persistente no Arch Wiki para obter detalhes de fundo realmente interessantes.

Meu servidor do Arch tem essa linha em grub.cfg :

linux   /boot/vmlinuz-linux-lts root=UUID=51167b47-d8b4-41e5-87d5-9c5a7bb6fbc1 ro  quiet

Parece que estou usando a nomenclatura "por-uuid". O arquivo /etc/fstab usa o "/ dev / sda?" nomes de estilo, mas ele é gerado automaticamente, e os comentários indicam que / dev / sda1 se refere ao mesmo UUID que em grub.cfg .

Para corrigir isso, eu diria que refazer as coisas do GRUB usando o Guia do Iniciante do Arch , exceto que você tem uma configuração de inicialização dupla. Talvez você possa gerar um arquivo grub.cfg em outro lugar e ver qual é o valor "root=":

grub-mkconfig -o /tmp/testgrub.cfg

Corri isso e ficou assim:

[root@splunge tmp]# grub-mkconfig -o /tmp/testgrub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux-lts
Found initramfs image: /boot/initramfs-linux-lts.img
Found fallback initramfs image: /boot/initramfs-linux-lts-fallback.img
Found linux image: /boot/vmlinuz-linux-lts
done

Em "menuentry 'Arch Linux'", encontrei esta linha em /tmp/testgrub.cfg :

linux   /boot/vmlinuz-linux-lts root=/dev/sda1 rw  quiet

Isso me diz que outro caminho a percorrer pode ser necessário, já que diz "/ dev / sda1" em vez do UUID acima. O que /etc/fstab diz logo acima da entrada "/ dev / sda1"? Se for um UUID, talvez você queira editar /boot/grub/grub.cfg para definir a partição raiz por UUID.

EDITAR Como você diz que /boot/vmlinuz-linux existe, eu diria para reinstalar o GRUB: pacman -S grub . Algo atrapalhou os scripts de shell que compõem grub-mkconfig , impedindo que eles criem um bom arquivo grub.cfg . Em seguida, tente o comando grub-mkconfig acima para ver se ele encontra um kernel em /boot . Em caso afirmativo, execute-o novamente e veja o que é o parâmetro "root=" na seção de menuentro "Arch Linux".

    
por 12.03.2014 / 21:52