web-dev-qa-db-fra.com

Comment relancer le chargeur de démarrage?

Lancer Sudo apt-get -f install dit que The link /vmlinuz.old is a damaged link et:

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

Voici la sortie complète:

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:~$

Comment puis-je réexécuter le chargeur de démarrage?

149
TevinYoungz

Selon réponse de Womble à liens symboliques endommagés/vmlinuz et /initrd.img après la désinstallation du noya (sur défaillance du serveur ), vous n'avez pas faire quoi que ce soit dans cette situation lorsque votre chargeur de démarrage est GRUB/GRUB2, ce qui est le cas ici.

Pour certains autres chargeurs de démarrage (au moins LILO ), il est apparemment nécessaire parfois de lancer manuellement la configuration du chargeur de démarrage.

Si vous aviez besoin de dire à GRUB de vérifier la présence de noyaux existants et de mettre à jour sa configuration, exécuter Sudo update-grub le ferait. Et il n'y a pas de mal à courir ça. Mais cela ne devrait pas être nécessaire dans ce cas.

189
Eliah Kagan

L'erreur est un peu étrange dans le cas de grub.

Quand apt installe une nouvelle version du noyau, il déplace/vmlinuz et /initrd.img vers /vmlinuz.old et /initrd.img.old (qui pointent toujours sur le noyau actuellement actif. Notez à nouveau l'extension .old, qui est différent de l'histoire liée dans "Liens endommagés après la désinstallation du noyau") et crée deux nouveaux fichiers/vmlinuz /initrd.img.

Lorsque vous exécutez apt-get autoremove (les messages n'ont pas été générés par apt-get -f install), le noyau précédemment actif est supprimé (vous avez redémarré après cette installation, avant d'exécuter autoremove, n'est-ce pas?), Ce qui rend les liens non valides.

Lorsque la suppression du noyau elle-même est terminée, l'autoretvention même appelle update-grub:

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

Par conséquent:

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

Donc, autoremove fait:

  1. enlever l'ancien noyau
  2. lancer update-grub
  3. update-grub supprime les fichiers .old liés aux fichiers supprimés.

Rien à craindre :-)

Cordialement.

31
Anakin

$ Sudo update-grub

Et si vous voulez supprimer/purger les anciens paquets, vous pouvez aussi le faire

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

12
pa75