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.
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)
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 exatamenteversion ?
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.
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),
inicialize com um kernel mais antigo e
correr dpkg --configure -a.
Isso concluirá a atualização, incluindo as configurações de inicialização, conforme explica o psusi .
---[ 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).
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
sudo apt-get install linux-image-generic
a atualização para a versão mais recente. núcleo.Respostas:
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 version
para gerar o initrd forversion
(substituaversion
pela string de versão do kernel como4.15.0-36-generic
) entãosudo update-grub
.fonte
Ubuntu System
ouRecovery Mode
como posso executar esse comando para testar se funciona?Comece com um livecd, abra um terminal aa
e agora você pode criar
update-initramfs
e atualizar o grub sem erros.Se você não conhece sua versão. Usar:
E basta atualizar o Grub.
Reinicie seu sistema.
fonte
sudo mount --bind /dev/pts /mnt/dev/pts
esudo mount --bind /sys /mnt/sys
na minha edição; sem isso,update-grub2
reclamou.version
?ls /mnt/boot
procurar a versão mais recente do kernel. Ou, se você quiser fazê-lo corretamente, leia o artigomenuentry 'Ubuntu'
de/mnt/boot/grub/grub.cfg
initrd
estava faltando/boot
. A questão é: como é possível que o arquivo simplesmente tenha desaparecido? Não fiz nada que parecesse perigoso.Na minha situação, o problema era que
/boot
estava 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.
fonte
dpkg --configure -a
foi suficiente para acionar o gancho update-initramfs e corrigir o kernel quebrado./boot
partição separada, é isso?sudo apt-get autoremove
para remover kernels antigos, caso esteja ficando sem espaço/boot
.sudo apt-get autoremove
, reiniciei novamente (kernel antigo), depois fiz umsudo apt-get dist-upgrade
, e isso funcionou. Esta foi em uma pequena máquina de teste que eu tenho. Mesmo problema, 100%/boot
Caso isso tenha acontecido após uma atualização abortada do kernel (por exemplo, falha do sistema enquanto
aptitude safe-upgrade
),dpkg --configure -a
.Isso concluirá a atualização, incluindo as configurações de inicialização, conforme explica o psusi .
fonte
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/vda
comroot=/dev/vdb
a última mensagem é:No entanto , algumas linhas acima, mostra mensagens do tipo:
o que basicamente me diz diretamente que
vdb
não foi encontrado, mas que existe um/dev/vda
que pode ser lido devido aovirtio_blk
driver (CONFIG_VIRTIO_BLK=y
).fonte
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. )
fonte
/dev
em/mnt/dev
.Você também pode inicializar o servidor no modo de recuperação e reinstalar apenas o grub
http://info.w3calculator.com/free-code/linux/recover-from-corrupted-boot-image/
fonte
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
Então eu reiniciei e tudo estava funcionando bem!
fonte