¿Cómo vuelvo a ejecutar el gestor de arranque?

148

Ejecutando sudo apt-get -f install dijo que The link /vmlinuz.old is a damaged link y:

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

Aquí está la salida 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:~$

¿Cómo vuelvo a ejecutar el gestor de arranque?

    
pregunta TevinYoungz 02.09.2014 - 02:44

3 respuestas

187

De acuerdo con la respuesta de womble a Damaged / vmlinuz y /initrd.img enlaces simbólicos después de la desinstalación de Kernel (en Server Fault ), no tiene que hacer nada en esta situación cuando su gestor de arranque es GRUB / GRUB2, que es aquí.

Para algunos otros cargadores de arranque (al menos LILO ), al parecer / a veces era necesario hacerlo manualmente ejecutar la configuración del cargador de arranque.

Si lo hizo necesita decirle a GRUB que verifique los kernels existentes y actualice su configuración, ejecutar sudo update-grub lo haría. Y no hay daño en ejecutar eso. Pero no debería ser necesario en este caso.

    
respondido por el Eliah Kagan 02.09.2014 - 02:49
31

El error es un poco extraño en el caso de grub.

Cuando apt instala una nueva versión de kernel, mueve / vmlinuz y /initrd.img a /vmlinuz.old y /initrd.img.old (que aún apuntan al kernel activo. De nuevo, observe el. antigua extensión, que es diferente de la historia vinculada en "Enlaces dañados después de la desinstalación del kernel") y crea dos nuevos archivos / vmlinuz /initrd.img.

Cuando ejecuta apt-get autoremove (los mensajes no fueron generados por apt-get -f install ), elimina ese kernel previamente activo (reinició después de esa instalación, antes de ejecutar autoremove, ¿verdad?), lo que hace que los enlaces no sean válidos.

Cuando se elimina el kernel, el autoremovimiento invoca a update-grub:

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

Por lo tanto:

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

Entonces, autoremove lo hace:

  1. eliminar núcleo viejo
  2. ejecuta update-grub
  3. update-grub elimina archivos .old que se vinculan a archivos eliminados.

Nada de qué preocuparse: -)

Saludos.

    
respondido por el Anakin 19.08.2015 - 14:08
11

$ sudo update-grub

Y si quiere eliminar / purgar paquetes viejos, también puede hacer

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

    
respondido por el pa75 14.06.2016 - 16:38

Lea otras preguntas en las etiquetas