Wie starte ich den Bootloader neu?

150

Running sudo apt-get -f installsagte das The link /vmlinuz.old is a damaged linkund:

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

Hier ist die vollständige Ausgabe:

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

Wie starte ich den Bootloader neu?

TevinYoungz
quelle
2
Ich bekomme das gleiche Problem, wenn ich es benutze apt-get autoremove, aber wie der Eliah Kagan in seiner Antwort sagt, scheint Grub beim Neustart gut zu funktionieren.
Mark Mikofski

Antworten:

189

Laut der Antwort von womble auf die symbolischen Links Damaged / vmlinuz und /initrd.img nach der Kernel-Deinstallation (bei Server-Fehler ) müssen Sie in dieser Situation nichts unternehmen, wenn Ihr Bootloader GRUB / GRUB2 ist - genau wie hier.

Bei einigen anderen Bootloadern (mindestens LILO ) war es anscheinend manchmal erforderlich, die Konfiguration des Bootloaders manuell auszuführen.

Wenn Sie habe GRUB sagen müssen für bestehende Kernel zu überprüfen und ihre Konfiguration aktualisieren, Laufen sudo update-grubwürde dies tun. Und es schadet nicht, das zu betreiben. Aber das sollte in diesem Fall nicht nötig sein.

Eliah Kagan
quelle
ok, ich lief ihnen du
TevinYoungz
3
@TevinYoungz Das ist in Ordnung. sudo update-grubsollte nicht schaden.
Eliah Kagan
5
Das Wort "manchmal" ist eine Untertreibung.
Simon Richter
9
In der Meinung , dass dieses Paar Fehler und die Auflösung , einen Preis für den dümmste Design - Fehler erhalten könnte: einen Befehl gräbt mit dem Namen update-grubanstelle von grub-updatedenen ist logisch und andernfalls das Update (Befehl) angeben , die in 99,99% der Fälle funktionieren.
Sorin
@sorin Ich frage mich, was es irgendwo einen Fehlerbericht dafür gibt.
Mateusz Konieczny
31

Der Fehler ist im Falle einer Made etwas merkwürdig.

Wenn apt eine neue Kernel-Version installiert, verschiebt es / vmlinuz und /initrd.img nach /vmlinuz.old und /initrd.img.old (die dann immer noch auf den aktuell aktiven Kernel verweisen). Dies unterscheidet sich von der Geschichte in "Beschädigte Links nach der Kernel-Deinstallation" und erstellt zwei neue Dateien / vmlinuz /initrd.img.

Wenn Sie ausführen apt-get autoremove(die Nachrichten wurden nicht von generiert apt-get -f install), wird der zuvor aktive Kernel entfernt (Sie haben nach der Installation einen Neustart durchgeführt, bevor Sie autoremove ausgeführt haben, oder?), Wodurch die Links ungültig werden.

Wenn das Entfernen des Kernels selbst abgeschlossen ist, ruft das automatische Entfernen selbst update-grub auf:

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

Daher:

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

Also macht autoremove:

  1. alten Kernel entfernen
  2. Führe update-grub aus
  3. update-grub entfernt .old-Dateien, die mit entfernten Dateien verknüpft sind.

Nichts, über das man sich sorgen sollte :-)

Grüße.

Anakin
quelle
2
Was ist, wenn Sie nach dem letzten dist-upgrade nicht neu gestartet haben? Dann was? Ich starte nie neu. Das ist für Neulinge.
Evan Carroll
2
Es gibt keine Möglichkeit, den neuen Kernel in den Speicher zu laden, es sei denn, Sie führen einen Neustart durch.
Simpleuser
Beachten Sie auch, ob Sie vor dem Neustart /vmlinuz&& /initrd.imgmit dem Kernelbereich (normalerweise / boot) verknüpft haben . Als Antwortnotizen - die ".old" -Dateien "beschädigt Link" ist nichts zu befürchten. Abgestimmt ^
bshea
12

$ sudo update-grub

Und wenn Sie alte Pakete löschen / löschen möchten, können Sie dies auch tun

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

pa75
quelle
Wenn Sie nur 3.X-Bilder haben, löschen Sie alles. Stimmt das?
Harkály Gergő
Technisch beantwortet Ihr erster Befehl die Frage. Kein Grund, mehr über die Wartung von Paketen hinzuzufügen.
bshea