Não foi possível encontrar o dispositivo root ''

5
ERROR: device '' not found. Skipping fsck.
ERROR: Unable to find root device ''.
You are being dropped to recovery shell 

Estou tentando instalar o Arch Linux há algum tempo e continuo correndo com esse erro. Eu realmente não tenho ideia do que fazer.

Um pouco de fundo: Meu computador originalmente tinha uma inicialização dupla com o Fedora e o Windows 10 (ambos de 64 bits), sendo o Windows instalado primeiro. Eu decidi substituir o Fedora pelo Arch. Existem partições separadas para root, /boot/efi e /home , e eu só substituí root. Montei as partições, deletei tudo, exceto /home (e /boot , que eu mantive erroneamente). Eu corri pacstrap -i /mnt base , instalei o sistema e reiniciei. Ele inicializou bem, mas usou o bootloader do Fedora, com a animação de carregamento do Fedora e tudo mais. Houve alguns problemas com o sistema, incluindo alguns serviços que não foram iniciados, e eu suspeitava que o bootloader do Fedora era o culpado. Eu inicializei de volta na instalação do Arch USB, deletei tudo, desta vez incluindo /boot (mas não /boot/efi , eu não montei isso). Eu reinstalei novamente, e o grub não reconheceu a imagem da vmlinuz. Então decidi inicializar de volta no USB, chroot na nova partição do Arch e instalar o rEFInd, meu gerenciador de inicialização favorito. Depois de instalar o rEFInd com pacman -S refind-efi e refind-install rEFInd foi instalado e reinicializei nele. O Windows irá iniciar, mas quando tento iniciar o Arch, recebo esse erro.

Eu executei mkinitcpio -p linux várias vezes. /etc/fstab parece completamente normal.

Veja o que tentei:

link

Bloco movido antes da autodetecção, sem efeito

link

Brinquei com refind.conf e refind_linux.conf, nada que eu fiz funcionou

link

Verifique duas vezes se o initramfs-linux.img está no diretório correto

Eu vi problemas semelhantes, mas nenhuma das correções funcionou para mim. Alguma idéia de como eu posso começar a usar o arco?

EDIT: Eu descobri que estou usando uma coisa LVM. Então sim. Minhas partições home, root e swap são pequenas coisinhas do LVM (não sei como chamá-las) em / dev / sda8. Eu não sei se isso afeta alguma coisa

    
por TheInitializer 17.10.2016 / 03:23

3 respostas

0

Acabei de excluir a partição inteira e reinstalei. LVM estava estragando tudo o tempo todo. Funciona perfeitamente agora.

    
por 29.10.2016 / 18:11
3

O problema parece ser que o rEFInd não está criando automaticamente o arquivo refind_linux.conf no diretório /boot .

A partir da etapa 4 dos "Detalhes técnicos de suporte do EFI Stub Loader" da documentação do rEFInd :

rEFInd looks for a file called refind_linux.conf in the same directory as the kernel file. It consists of a series of lines, each of which consists of a label followed by a series of kernel options. The first line sets default options, and subsequent lines set options that are accessible from the main menu tag's submenu screen. If you installed rEFInd with the refind-install script, that script created a sample refind_linux.conf file, customized for your computer, in /boot. This file will work without changes on many installations, but you may need to tweak it for some.

Não sei por que motivo não está a criar este ficheiro, mas é altamente provável que possa resolver os problemas que tem ao criá-lo.

Criando o arquivo refind_linux.conf

O wiki do Arch Linux tem uma entrada excelente sobre como fazer isso, mas essencialmente você o coloca no mesmo diretório que seu kernel (geralmente em /boot , seja criando-o automaticamente ou manualmente). A primeira linha não comentada do arquivo será o parâmetro padrão para inicializar o kernel.

Eu criei meu arquivo usando o comando mkrlconf , e o arquivo resultante em /boot/refind_linux.conf parecia isso:

"Boot with standard options"  "archisobaseddir=arch archisolabel=ARCH_201610"
"Boot to single user mode"    "archisobaseddir=arch archisolabel=ARCH_201610 single"
"Boot with minimal options"   "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

Estamos chegando a algum lugar, mas isso não funcionou ainda. Porque eu criei a partir do USB ao vivo, as duas primeiras entradas não estão corretas como se referem a ISO no USB. No entanto, a entrada final está correta, e isso ocorre porque, assim como o erro recebido, ele define o dispositivo raiz de '' para o UUID do disco / .

Então, para defini-la como a opção de inicialização principal, basta excluir as outras linhas e alterar o rótulo.

"Boot with standard options"  "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

Salve o arquivo e reinicie o sistema, ele deve funcionar corretamente agora!

Notas de rodapé

  1. Este é, obviamente, um longo caminho a percorrer para criar o arquivo. Você não precisa usar o mkrlconf para gerá-lo, você pode criá-lo manualmente. É mais que ele preenche automaticamente o disco UUID (que eu não quero ter que copiar e digitar manualmente).

  2. A etapa 5 dos detalhes técnicos do Stub Loader (vinculados acima) descreve como, se nenhum arquivo refind_linux.conf estiver presente, o rEFInd procurará uma entrada do kernel em /etc/fstab . Com uma configuração de volume estranha, é improvável que isso funcione.

por 30.10.2016 / 08:07
0

Chroot sua partição e tente o script FIFO "Install / Configure bootloader" parte link

Se isso não ajudar. Eu fiz backup da minha partição /home (como a Elronnd sugeriu) e tentei uma nova instalação com os scripts FIFO / LILO.

Boa sorte!

    
por 23.10.2016 / 14:58