Não é possível localizar o dispositivo root após a atualização mais recente do kernel

4

Estou executando o Ubuntu 13.04. Ontem tentei instalar atualizações, mas houve um erro, e sugeri executar apt-get -f install que fiz.

Agora, quando tento inicializar, recebo um erro "Desisti de esperar pelo dispositivo raiz". O texto é quase idêntico ao texto mostrado em this e this < pergunta. No entanto, o "built-in shell" simplesmente não funciona! Nada que eu digito aparece na tela ou faz qualquer coisa.

Carregando os trabalhos anteriores do kernel (embora existam alguns problemas gráficos), mas, até onde eu sei, ele deve estar inicializando exatamente o mesmo material. O novo kernel é 3.8.0-31-genérico e o anterior é 3.8.0-25 genérico.

Eu tentei adicionar um rootdelay ao grub como sugerido, mas ele espera mais e mostra a mesma tela. Aqui está todo o meu arquivo /boot/grub/menu.lst , comentários removidos:

default     0
timeout     3

title       Ubuntu 13.04, kernel 3.8.0-31-generic
uuid        c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel      /boot/vmlinuz-3.8.0-31-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro quiet splash 
initrd      /boot/initrd.img-3.8.0-31-generic
quiet

title       Ubuntu 13.04, kernel 3.8.0-31-generic (recovery mode)
uuid        c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel      /boot/vmlinuz-3.8.0-31-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro  single
initrd      /boot/initrd.img-3.8.0-31-generic

title       Ubuntu 13.04, kernel 3.8.0-25-generic
uuid        c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel      /boot/vmlinuz-3.8.0-25-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro quiet splash 
initrd      /boot/initrd.img-3.8.0-25-generic
quiet

title       Ubuntu 13.04, kernel 3.8.0-25-generic (recovery mode)
uuid        c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel      /boot/vmlinuz-3.8.0-25-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro  single
initrd      /boot/initrd.img-3.8.0-25-generic

title       Ubuntu 13.04, kernel 3.8.0-23-generic
uuid        c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel      /boot/vmlinuz-3.8.0-23-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro quiet splash 
initrd      /boot/initrd.img-3.8.0-23-generic
quiet

title       Ubuntu 13.04, kernel 3.8.0-23-generic (recovery mode)
uuid        c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel      /boot/vmlinuz-3.8.0-23-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro  single
initrd      /boot/initrd.img-3.8.0-23-generic

title       Ubuntu 13.04, memtest86+
uuid        c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel      /boot/memtest86+.bin
quiet

title       --------------------------------
root

title       Windows Vista
rootnoverify    (hd0,2)
savedefault
makeactive
chainloader +1

Com o rootdelay, a linha na seção superior era:

kernel      /boot/vmlinuz-3.8.0-31-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac rootdelay=120 ro quiet splash 

Como você pode ver, o UUID é o mesmo para todos os kernels. Por que estou tendo esse problema e o que posso fazer para corrigir isso?

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                  Version                 Architecture            Description
+++-=====================================-=======================-=======================-===============================================================================
un  linux-image-2.6                       <none>                                          (no description available)
rc  linux-image-2.6.28-11-generic         2.6.28-11.42            i386                    Linux kernel image for version 2.6.28 on x86/x86_64
rc  linux-image-2.6.31-22-generic         2.6.31-22.65            i386                    Linux kernel image for version 2.6.31 on x86/x86_64
rc  linux-image-2.6.32-25-generic         2.6.32-25.44            i386                    Linux kernel image for version 2.6.32 on x86/x86_64
rc  linux-image-2.6.35-22-generic         2.6.35-22.35            i386                    Linux kernel image for version 2.6.35 on x86/x86_64
rc  linux-image-2.6.35-23-generic         2.6.35-23.41            i386                    Linux kernel image for version 2.6.35 on x86/x86_64
rc  linux-image-2.6.35-24-generic         2.6.35-24.42            i386                    Linux kernel image for version 2.6.35 on x86/x86_64
rc  linux-image-2.6.35-25-generic         2.6.35-25.44            i386                    Linux kernel image for version 2.6.35 on x86/x86_64
rc  linux-image-2.6.35-27-generic         2.6.35-27.48            i386                    Linux kernel image for version 2.6.35 on x86/x86_64
rc  linux-image-2.6.35-28-generic         2.6.35-28.50            i386                    Linux kernel image for version 2.6.35 on x86/x86_64
rc  linux-image-2.6.38-10-generic         2.6.38-10.46            i386                    Linux kernel image for version 2.6.38 on x86/x86_64
rc  linux-image-2.6.38-11-generic         2.6.38-11.50            i386                    Linux kernel image for version 2.6.38 on x86/x86_64
rc  linux-image-2.6.38-12-generic         2.6.38-12.51            i386                    Linux kernel image for version 2.6.38 on x86/x86_64
rc  linux-image-2.6.38-8-generic          2.6.38-8.42             i386                    Linux kernel image for version 2.6.38 on x86/x86_64
un  linux-image-3.0                       <none>                                          (no description available)
rc  linux-image-3.0.0-13-generic          3.0.0-13.22             i386                    Linux kernel image for version 3.0.0 on x86/x86_64
rc  linux-image-3.0.0-14-generic          3.0.0-14.23             i386                    Linux kernel image for version 3.0.0 on x86/x86_64
rc  linux-image-3.0.0-15-generic          3.0.0-15.26             i386                    Linux kernel image for version 3.0.0 on x86/x86_64
rc  linux-image-3.0.0-16-generic          3.0.0-16.29             i386                    Linux kernel image for version 3.0.0 on x86/x86_64
rc  linux-image-3.0.0-17-generic          3.0.0-17.30             i386                    Linux kernel image for version 3.0.0 on x86/x86_64
rc  linux-image-3.2.0-24-generic          3.2.0-24.39             i386                    Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rc  linux-image-3.2.0-25-generic          3.2.0-25.40             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-26-generic          3.2.0-26.41             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-27-generic          3.2.0-27.43             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-29-generic          3.2.0-29.46             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-30-generic          3.2.0-30.48             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-31-generic          3.2.0-31.50             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-32-generic          3.2.0-32.51             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-33-generic          3.2.0-33.52             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-34-generic          3.2.0-34.53             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-35-generic          3.2.0-35.55             i386                    Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.5.0-21-generic          3.5.0-21.32             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-3.5.0-22-generic          3.5.0-22.34             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-3.5.0-23-generic          3.5.0-23.35             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-3.5.0-25-generic          3.5.0-25.39             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-3.5.0-26-generic          3.5.0-26.42             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-3.5.0-27-generic          3.5.0-27.46             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-3.8.0-19-generic          3.8.0-19.30             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc  linux-image-3.8.0-21-generic          3.8.0-21.32             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc  linux-image-3.8.0-22-generic          3.8.0-22.33             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii  linux-image-3.8.0-23-generic          3.8.0-23.34             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii  linux-image-3.8.0-25-generic          3.8.0-25.37             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii  linux-image-3.8.0-31-generic          3.8.0-31.46             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii  linux-image-3.8.0-32-generic          3.8.0-32.47             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc  linux-image-extra-3.5.0-21-generic    3.5.0-21.32             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-extra-3.5.0-22-generic    3.5.0-22.34             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-extra-3.5.0-23-generic    3.5.0-23.35             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-extra-3.5.0-25-generic    3.5.0-25.39             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-extra-3.5.0-26-generic    3.5.0-26.42             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-extra-3.5.0-27-generic    3.5.0-27.46             i386                    Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc  linux-image-extra-3.8.0-19-generic    3.8.0-19.30             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc  linux-image-extra-3.8.0-21-generic    3.8.0-21.32             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc  linux-image-extra-3.8.0-22-generic    3.8.0-22.33             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii  linux-image-extra-3.8.0-23-generic    3.8.0-23.34             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii  linux-image-extra-3.8.0-25-generic    3.8.0-25.37             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii  linux-image-extra-3.8.0-32-generic    3.8.0-32.47             i386                    Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii  linux-image-generic                   3.8.0.32.50             i386                    Generic Linux kernel image
    
por DisgruntledGoat 19.10.2013 / 17:28

1 resposta

6

Ok, antes de mais nada, há toneladas de scruff na sua lista de kernel, purificá-los:

sudo apt-get purge linux-image-2.6.* linux-image-3.0.* linux-image-3.2.*

Os problemas parecem ter causas diferentes, de software a hardware, mas alguns deles não se aplicam a você, pois você pode inicializar outros kernels. Então, o que fazer?

Enquanto você usa outros kernels, remova e reinstale o novo kernel:

 sudo apt-get clean
 sudo apt-get purge linux-image-3.8.0-31-generic linux-image-3.8.0-32-generic
 sudo apt-get install linux-image-generic

A primeira linha removerá os pacotes do kernel no cache local e garantirá que você tenha espaço livre suficiente para instalar novos kernels.

Agora, se você vir este bloco:

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/a0c70102-b5d8-4b82-a14c-225330e1c4d4 does not exist. Dropping to a shell!


BusyBox v1.13.3 (Ubuntu 1:1.13.3-1ubuntu11) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs) _ 

Então aqui as "soluções" comuns com suas causas:

  1. Você tentou corrigir o problema usando rootdelay= , mas infelizmente isso não funciona no seu caso, já que o problema pode estar em outro lugar.

    /boot/vmlinuz-3.8.0-31-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac rootdelay=120 ro quiet splash
  2. Se você estiver usando um RAID (duvidoso desde a inicialização de outros kernels) isso pode causar problemas. Movimentar a partição para um sistema de arquivos não-raid deve fazer o truque. Ou verificar se /etc/initramfs-tools/modules tem os módulos corretos em seguida executando sudo update-initramfs -u .
  3. Enquanto você usa o shell interno de (initramfs) , você pode digitar exit e deve inicializar também. Mais uma vez, os problemas estão em outro lugar.
  4. Sistemas de arquivos ruins podem causar isso. A execução de fsck de um sistema ativo deve ajudar.
  5. Se você remover quiet splash , poderá obter ainda mais detalhes sobre o que exatamente falha. Se você tiver esse problema, remova o quiet splash do seu script grub, o que realmente ajudaria.
  6. Você pode ter simplesmente esquecido de instalar o linux-image-extra-X.YY.Z-PP em sua versão do kernel, ou a instalação está incompleta por algum motivo ( rc na saída de dpkg -l | grep linux-image ). O mais feroz é que /boot/initrd.img-X.YY.Z-PP será construído em ambos casos, mas para o seu hardware os módulos extras em linux-image-extra podem ser absolutamente necessários. Nesse caso, você terá que interpretar "Não é possível localizar o dispositivo raiz" como "Não foi possível encontrar drivers ou módulos extras necessários".

Estas são algumas dicas que colecionei aqui e ali, se você tiver o mesmo problema, por favor use a dica 5 e dê uma saída completa das mensagens do kernel.

    
por Braiam 21.10.2013 / 23:18