Como executo o gerenciador de inicialização?


150

Running sudo apt-get -f installdisse isso The link /vmlinuz.old is a damaged linke:

you may need to re-run your boot loader[grub]

Aqui está a saída completa:

user@chrubuntu:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-3.13.0-32 linux-headers-3.13.0-32-generic
  linux-image-3.13.0-32-generic linux-image-extra-3.13.0-32-generic
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
user@chrubuntu:~$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-headers-3.13.0-32 linux-headers-3.13.0-32-generic
  linux-image-3.13.0-32-generic linux-image-extra-3.13.0-32-generic
0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.
After this operation, 270 MB disk space will be freed.
Do you want to continue? [Y/n] y
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en
en",
    LC_ALL = (unset),
    LC_TIME = "en",
    LC_MONETARY = "en",
    LC_ADDRESS = "en",
    LC_TELEPHONE = "en",
    LC_NAME = "en",
    LC_MEASUREMENT = "en",
    LC_IDENTIFICATION = "en",
    LC_NUMERIC = "en",
    LC_PAPER = "en",
    LANG = (unset)
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 232120 files and directories currently installed.)
Removing linux-headers-3.13.0-32-generic (3.13.0-32.57) ...
Removing linux-headers-3.13.0-32 (3.13.0-32.57) ...
Removing linux-image-extra-3.13.0-32-generic (3.13.0-32.57) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-32-generic /boot/vmlinuz-3.13.0-32-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-32-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-32-generic /boot/vmlinuz-3.13.0-32-generic
The link /initrd.img.old is a damaged link
Removing symbolic link initrd.img.old 
 you may need to re-run your boot loader[grub]
Removing linux-image-3.13.0-32-generic (3.13.0-32.57) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-32-generic /boot/vmlinuz-3.13.0-32-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-32-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-32-generic /boot/vmlinuz-3.13.0-32-generic
The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old 
 you may need to re-run your boot loader[grub]
user@chrubuntu:~$

Como faço para executar novamente o carregador de inicialização?


2
Recebo o mesmo problema quando uso apt-get autoremove, mas, como o Eliah Kagan diz em sua resposta, o grub parece funcionar bem na reinicialização.
Mark Mikofski

Respostas:


189

De acordo com a resposta do womble aos links simbólicos Damaged / vmlinuz e /initrd.img após a desinstalação do Kernel (na falha do servidor ), você não precisa fazer nada nesta situação quando o gerenciador de inicialização é o GRUB / GRUB2 - como está aqui.

Para alguns outros gerenciadores de inicialização (pelo menos LILO ), aparentemente / às vezes é necessário executar manualmente a configuração do gerenciador de inicialização.

Se você se precisa dizer GRUB para verificar kernels existentes e atualizar sua configuração, execução sudo update-grubiria fazê-lo. E não há mal em executar isso. Mas não deve ser necessário neste caso.


ok eu corri-los tu
TevinYoungz

3
@TevinYoungz Tudo bem. sudo update-grubnão deve causar nenhum mal.
Eliah Kagan 02/09

5
A palavra "às vezes" é um eufemismo.
Simon Richter

9
Acha que esse par de erros e a resolução poderiam receber um prêmio pelos erros mais estúpidos de design: ter um comando grub nomeado em update-grubvez de grub-updatelógico e não especificar a correção (comando) que funciona em 99,99% dos casos.
sorin

@sorin Gostaria de saber o que há relatório de erros para isso em algum lugar.
Mateusz Konieczny

31

O erro é um pouco estranho no caso de grub.

Quando o apt instala uma nova versão do kernel, ele move / vmlinuz e /initrd.img para /vmlinuz.old e /initrd.img.old (que ainda apontam para o kernel ativo no momento. Novamente, observe a extensão .old, que é diferente da história vinculada em "Links danificados após a desinstalação do kernel") e cria dois novos arquivos / vmlinuz /initrd.img.

Quando você executa apt-get autoremove(as mensagens não foram geradas por apt-get -f install), ele remove o kernel anteriormente ativo (você reinicia após a instalação, antes de executar a remoção automática, certo?), O que torna os links inválidos.

Quando a remoção do kernel é feita, o autoremove chama update-grub:

run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-32-generic /boot/vmlinuz-3.13.0-32-generic

Conseqüentemente:

The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old 
 you may need to re-run your boot loader[grub]

Portanto, o autoremove faz:

  1. remover o kernel antigo
  2. execute update-grub
  3. O update-grub remove os arquivos .old vinculados aos arquivos removidos.

Nada para se preocupar :-)

Saudações.


2
E se você não reiniciar após a última atualização dist? Então o que? Eu nunca reinicio. Isso é para newbs.
Evan Carroll

2
Não há como colocar o novo kernel na memória, a menos que você reinicie.
simpleuser

Também é importante observar se você tem /vmlinuz&& /initrd.imgvinculado à área do kernel (geralmente / boot) antes de reiniciar. Como notas de resposta - o 'link danificado' dos arquivos ".old" não é motivo de preocupação. Votado ^
bshea

12

$ sudo update-grub

E se você deseja excluir / remover pacotes antigos, também pode

$ dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge


Se você tiver apenas imagens 3.X, exclua tudo, estou certo?
Harkály Gergő 01/09/16

Tecnicamente, seu primeiro comando responde à pergunta. Não há razão para adicionar mais sobre a manutenção do pacote.
bshea
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.