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

150

Running sudo apt-get -f installdijo eso The link /vmlinuz.old is a damaged linky:

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?

TevinYoungz
fuente
2
Tengo el mismo problema cuando lo uso apt-get autoremove, pero como dice Eliah Kagan en su respuesta, grub parece funcionar bien en el reinicio.
Mark Mikofski

Respuestas:

189

Según la respuesta de womble a Damaged / vmlinuz y /initrd.img enlaces simbólicos después de la desinstalación del Kernel (en la falla del servidor ), 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 ), aparentemente es / fue a veces necesario ejecutar manualmente la configuración del cargador de arranque.

Si usted qué necesita decirle a GRUB para comprobar si los núcleos existentes y actualizar su configuración, correr sudo update-grublo haría. Y no hay daño en ejecutar eso. Pero no debería ser necesario en este caso.

Eliah Kagan
fuente
ok los corrí tú
TevinYoungz
3
@TevinYoungz Eso está bien. sudo update-grubNo debería hacer ningún daño.
Eliah Kagan
55
La palabra "a veces" es un eufemismo.
Simon Richter
99
Piense que este par de errores y la resolución podrían recibir un premio por los errores de diseño más estúpidos: tener un comando grub que se nombra en update-grublugar de grub-updateser lógico y no especificar la solución (comando) que funciona en el 99.99% de los casos.
sorin
@sorin Me pregunto si hay algún informe de error para eso en alguna parte.
Mateusz Konieczny
31

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

Cuando apt instala una nueva versión del kernel, mueve / vmlinuz y /initrd.img a /vmlinuz.old y /initrd.img.old (que luego todavía apuntan al kernel actualmente activo. Nuevamente, observe la extensión .old, que es diferente de la historia vinculada en "Enlaces dañados después de la desinstalación del núcleo") 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 núcleo previamente activo (reinició después de esa instalación, antes de ejecutar autoremove, ¿verdad?), Lo que invalida los enlaces.

Cuando se realiza la eliminación del núcleo en sí, el movimiento automático en sí invoca 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 hace:

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

Nada de que preocuparse :-)

Saludos.

Anakin
fuente
2
¿Qué pasa si no reiniciaste después de la última actualización dist? ¿Y que? Nunca reinicio. Eso es para los novatos.
Evan Carroll
2
No hay forma de obtener el nuevo kernel en la memoria a menos que reinicie.
simpleuser
También es aconsejable tener en cuenta si tiene /vmlinuz&& /initrd.imgvinculado al área del kernel (generalmente / boot) antes de reiniciar. Como notas de respuesta, el "enlace dañado" de los archivos ".old" no es motivo de preocupación. Votado ^
bshea
12

$ sudo update-grub

Y si desea eliminar / purgar paquetes antiguos, también puede hacerlo

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

pa75
fuente
Si solo tienes imágenes 3.X, borras todo, ¿estoy en lo cierto?
Harkály Gergő
Técnicamente, su primer comando responde a la pregunta. No hay razón para agregar más sobre el mantenimiento de paquetes.
bshea