154 votes

Comment réexécuter boot loader ?

La course à pied sudo apt-get -f install a déclaré que The link /vmlinuz.old is a damaged link et :

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

Voici le résultat complet :

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 réexécuter le boot loader ?

31voto

Anakin Points 434

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 vers le noyau actuellement actif). Encore une fois, remarquez l'extension .old, qui est différente de l'histoire liée à "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 ), il supprime le noyau précédemment actif (vous avez redémarré après l'installation, avant d'exécuter autoremove, n'est-ce pas ?), ce qui rend les liens invalides.

Lorsque la suppression du noyau est terminée, l'autoremove invoque update-Grub :

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

D'où :

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

C'est donc le cas d'autoremove :

  1. supprimer l'ancien noyau
  2. exécuter update-Grub
  3. update-Grub supprime les fichiers .old liés aux fichiers supprimés.

Il n'y a pas lieu de s'inquiéter :-)

Voir aussi.

12voto

pa75 Points 121

$ sudo update-grub

Et si vous souhaitez supprimer / purger d'anciens paquets, vous pouvez également le faire

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X