Come rieseguire il boot loader?


150

Running ha sudo apt-get -f installdetto che The link /vmlinuz.old is a damaged linke:

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

Ecco l'output completo:

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

Come rieseguire il boot loader?


2
Ottengo lo stesso problema quando lo uso apt-get autoremove, ma come dice Eliah Kagan nella sua risposta grub sembra funzionare bene al riavvio.
Mark Mikofski il

Risposte:


189

Secondo la risposta di Womble ai collegamenti simbolici danneggiati / vmlinuz e /initrd.img dopo la disinstallazione del kernel (su Server Fault ), non è necessario fare nulla in questa situazione quando il proprio caricatore di avvio è GRUB / GRUB2, che è qui.

Per alcuni altri bootloader (almeno LILO ), a volte è / era apparentemente necessario eseguire manualmente la configurazione del boot loader.

Se fosse necessario dire a GRUB di controllare i kernel esistenti e aggiornarne la configurazione, l'esecuzione sudo update-grublo farebbe. E non c'è nulla di male nel gestirlo. Ma non dovrebbe essere necessario in questo caso.


ok li ho gestiti tu
TevinYoungz

3
@TevinYoungz Va bene. sudo update-grubnon dovrebbe fare alcun male.
Eliah Kagan,

5
La parola "a volte" è un eufemismo.
Simon Richter,

9
Pensa che questa coppia di errori e la risoluzione potrebbero ricevere un premio per gli errori di progettazione più stupidi: avere un comando grub al update-grubposto del grub-updatequale è logico e non è possibile specificare la correzione (comando) che funziona nel 99,99% dei casi.
sorin,

@sorin Mi chiedo qualunque cosa ci sia da segnalare da qualche parte.
Mateusz Konieczny,

31

L'errore è un po 'strano in caso di grub.

Quando apt installa una nuova versione del kernel, sposta / vmlinuz e /initrd.img in /vmlinuz.old e /initrd.img.old (che quindi puntano ancora al kernel attualmente attivo. Ancora una volta, notate l'estensione .old, che è diverso dalla storia collegata in "Collegamenti danneggiati dopo la disinstallazione del kernel") e crea due nuovi file / vmlinuz /initrd.img.

Quando esegui apt-get autoremove(i messaggi non sono stati generati da apt-get -f install) rimuove quel kernel precedentemente attivo (hai riavviato dopo quell'installazione, prima di eseguire autoremove, giusto?), Il che rende i collegamenti non validi.

Al termine della rimozione del kernel stesso, lo stesso autoremove 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

Quindi:

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

Quindi, autoremove fa:

  1. rimuove il vecchio kernel
  2. eseguire update-grub
  3. update-grub rimuove i file .old collegati ai file rimossi.

Nulla di cui preoccuparsi :-)

Saluti.


2
E se non avessi riavviato dopo l'ultimo dist-upgrade? E allora? Non riavvio mai. Questo è per i principianti.
Evan Carroll,

2
Non è possibile salvare in memoria il nuovo kernel se non si riavvia.
simpleuser

Nota anche se hai /vmlinuz&& /initrd.imgcollegato all'area del kernel (di solito / boot) prima di riavviare. Come note di risposta - il "link danneggiato" dei file ".old" non è nulla di cui preoccuparsi. Votato ^
bshea il

12

$ sudo update-grub

E se vuoi eliminare / eliminare i vecchi pacchetti puoi farlo anche

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


Se hai solo immagini 3.X, elimini tutto, ho ragione?
Harkály Gergő,

Tecnicamente, il tuo primo comando risponde alla domanda. Nessun motivo per aggiungere altro sulla manutenzione dei pkg.
bshea,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.