Kernel Panic - sem sincronização: VFS: Não é possível montar o root fs no bloco desconhecido (0,0)

97

Ao tentar atualizar da 10.10 para a 11.04, tudo parecia correr bem até o reinício. Esta mensagem de erro é o que aparece:

Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Como consertamos isso?

Jeffrywith1e
fonte
1
Seus problemas podem não ter nada a ver com o sistema principal, mas com a mídia de instalação (pen drive) ... ➪ veja aqui: askubuntu.com/a/632636/479118
Frank
Não consigo postar uma resposta, pois não tenho representante suficiente, mas quando obtive esse problema, resolvi-o inicializando em um pendrive USB ativo, montando as partições principal e EFI , ativando a rede e executando sudo apt-get install linux-image-generica atualização para a versão mais recente. núcleo.
Owen

Respostas:

83

Está faltando o initramfs para esse kernel. Escolha outro kernel no menu GRUB em Opções avançadas para Ubuntu e execute sudo update-initramfs -u -k versionpara gerar o initrd for version(substitua versionpela string de versão do kernel como 4.15.0-36-generic) então sudo update-grub.

psusi
fonte
2
e se o pânico do kernel estiver sendo mostrado ao selecionar a opção exclusiva do kernel existente para esse sistema operacional (em um cenário de inicialização múltipla), como é possível iniciar o update-initramfs?
knocte
3
@Dew, pobre comentário ...
psusi
2
@knocte, veja a resposta de Tomeu Roig.
Psusi
1
Parece uma resposta ruim, mas é a verdade!
User3215 /
2
Não consigo entrar Ubuntu Systemou Recovery Modecomo posso executar esse comando para testar se funciona?
Casper19
53

Comece com um livecd, abra um terminal aa

sudo fdisk -l
sudo mount /dev/sdax /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt 

e agora você pode criar update-initramfse atualizar o grub sem erros.

update-initramfs -u -k 2.6.38-8-generic (or your version)

Se você não conhece sua versão. Usar:

dpkg --list | grep linux-image

E basta atualizar o Grub.

update-grub2

Reinicie seu sistema.

Tomeu Roig
fonte
1
Eu adicionei sudo mount --bind /dev/pts /mnt/dev/ptse sudo mount --bind /sys /mnt/sysna minha edição; sem isso, update-grub2reclamou.
Hbf
4
como posso descobrir exatamente version ?
knocte
1
Nenhum dos pontos de montagem existe além do primeiro / dev / sdax se você estiver usando EFI.
Paul Gregoire
@knocte tente ls /mnt/bootprocurar a versão mais recente do kernel. Ou, se você quiser fazê-lo corretamente, leia o artigo menuentry 'Ubuntu'de/mnt/boot/grub/grub.cfg
Ciro Santilli
Trabalhou no Ubuntu 14.04! O initrdestava faltando /boot. A questão é: como é possível que o arquivo simplesmente tenha desaparecido? Não fiz nada que parecesse perigoso.
Ciro Santilli #
22

Na minha situação, o problema era que /bootestava com 100% da capacidade; portanto, as duas últimas atualizações do kernel não foram concluídas com êxito; portanto, na reinicialização, quando o GRUB2 selecionou o Kernel mais recente, falhou.

Resolvi o problema inicializando no kernel mais antigo instalado e removendo alguns kernels não utilizados usando o aptitude. Usando o aptitude , após a desinstalação, o dpkg tentou automaticamente configurar os pacotes quebrados e, desta vez, foi bem-sucedido.

sheepeatingtaz
fonte
3
Este foi o mais próximo da minha solução; apenas rodar dpkg --configure -afoi suficiente para acionar o gancho update-initramfs e corrigir o kernel quebrado.
11503 Symmetric
Você quer dizer que você tinha uma /bootpartição separada, é isso?
Ciro Santilli escreveu:
1
Foi um servidor configurado antes da minha chegada, e foi configurado com / boot, por si própria partição e autônoma-upgrades
sheepeatingtaz
3
Você pode usar sudo apt-get autoremovepara remover kernels antigos, caso esteja ficando sem espaço /boot.
Florian Brucker 21/07
Inicializei em um kernel antigo, fiz um sudo apt-get autoremove, reiniciei novamente (kernel antigo), depois fiz um sudo apt-get dist-upgrade, e isso funcionou. Esta foi em uma pequena máquina de teste que eu tenho. Mesmo problema, 100%/boot
jmlumpkin
19

Caso isso tenha acontecido após uma atualização abortada do kernel (por exemplo, falha do sistema enquanto aptitude safe-upgrade),

  1. inicialize com um kernel mais antigo e
  2. correr dpkg --configure -a.

Isso concluirá a atualização, incluindo as configurações de inicialização, conforme explica o psusi .

Rafael
fonte
1

As mensagens de inicialização do kernel informam quais discos você pode usar

Por exemplo, se no meu teste de Linux 4.17 configuração de máquina virtual eu substituir o correto root=/dev/vdacom root=/dev/vdba última mensagem é:

---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)-

No entanto , algumas linhas acima, mostra mensagens do tipo:

VFS: Cannot open root device "vdb" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
fe00          524288 vda
 driver: virtio_blk

o que basicamente me diz diretamente que vdbnão foi encontrado, mas que existe um /dev/vdaque pode ser lido devido ao virtio_blkdriver ( CONFIG_VIRTIO_BLK=y).

Ciro Santilli adicionou uma nova foto
fonte
0

Além das instruções de Tomeu, antes do chroot eu precisava:

sudo mount --bind /dev /mnt/dev

Além disso, após o chroot:

cp -r /usr/lib/i386-linux-gnu/pango /usr/lib/

( Entendi isso daqui. )

Jason
fonte
1
Tomeu já mencionado montagem /devem /mnt/dev.
Lekensteyn
0

Eu tive esse problema devido à minha partição / boot estar cheia, portanto minhas atualizações do kernel falharam. Consegui consertar isso inicializando a partir de um kernel antigo no menu GRUB.

Quando consegui inicializar, comecei a limpar os kernels antigos, mas consegui obter alguns problemas de dependência, então primeiro tive que desinstalar o pacote linux-server

apt-get remove linux-server
apt-get update
apt-get -f install
apt-get upgrade

Então eu reiniciei e tudo estava funcionando bem!

Christopher Käck
fonte