Frage Wie starte ich den Bootloader neu?


Laufen sudo apt-get -f install sagte, dass The link /vmlinuz.old is a damaged link und:

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 führe ich den Bootloader erneut aus?


148
2017-09-02 02:44


Ursprung


Ich bekomme das gleiche Problem, wenn ich es benutze apt-get autoremove, aber wie der Eliah Kagan sagt seine Antwort grub scheint beim Neustart gut zu funktionieren. - Mark Mikofski


Antworten:


Gemäß Womble's Antwort zu Beschädigte / vmlinuz und /initrd.img symbolische Links nach der Kernel-Deinstallation (auf Serverfehler), Sie müssen in dieser Situation nichts tun, wenn Ihr Bootloader GRUB / GRUB2 ist - was es hier ist.

Für einige andere Bootloader (mindestens LILO), ist / war es offensichtlich manchmal notwendig, die Konfiguration des Bootloaders manuell auszuführen.

Wenn du hat getan müssen GRUB mitteilen, dass es nach vorhandenen Kernel suchen und seine Konfiguration aktualisieren soll sudo update-grub würde es tun. Und es ist nicht schaden, das zu tun. Aber es sollte in diesem Fall nicht notwendig sein.


187
2017-09-02 02:49



Ok, ich habe sie dir geraubt - TevinYoungz
@TevinYoungz Das ist in Ordnung. sudo update-grub sollte nicht schaden. - Eliah Kagan
Das Wort "manchmal" ist eine Untertreibung. - Simon Richter
In der Annahme, dass dieses Fehlerpaar und die Auflösung einen Preis für die dümmsten Designfehler erhalten könnten: einen Grub-Befehl, der benannt ist update-grub Anstatt von grub-update Das ist logisch und kann den Fix (Befehl), der in 99,99% der Fälle funktioniert, nicht angeben. - sorin
@sorin Ich frage mich, wofür es irgendwo einen Fehlerbericht gibt. - Mateusz Konieczny


Der Fehler ist im Falle von grub etwas seltsam.

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 gerade aktiven Kernel verweisen. Beachten Sie auch die Erweiterung .old, Das unterscheidet sich von der Geschichte, die in "Beschädigte Links nach Kernel-Deinstallation" verlinkt ist, und erstellt zwei neue Dateien / vmlinuz /initrd.img.

Wenn du rennst apt-get autoremove (Die Nachrichten wurden nicht von generiert apt-get -f install) Es entfernt den zuvor aktiven Kernel (Sie haben nach der Installation neu gestartet, bevor Sie autoremove ausgeführt haben, oder?), wodurch die Links ungültig werden.

Wenn das Entfernen des Kernels selbst beendet ist, ruft die Autoremove 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, Autoremove tut:

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

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

Grüße.


31
2017-08-19 14:08



Was, wenn Sie nach dem letzten dist-upgrade nicht neu gestartet haben? Dann was? Ich starte nie neu. Das ist für Neulinge. - Evan Carroll
Es gibt keine Möglichkeit, den neuen Kernel in den Speicher zu bekommen, wenn Sie nicht neu starten. - simpleuser
Auch weise zu beachten, wenn Sie haben /vmlinuz && /initrd.img mit dem Kernel-Bereich (normalerweise / boot) vor dem Neustart verbunden. Als Antwort Hinweise - die ".old" -Dateien "beschädigten Link" ist nichts, worüber man sich sorgen. Gewählt - bshea


$ sudo update-grub

Und wenn Sie alte Pakete löschen / löschen wollen, können Sie das auch tun

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


11
2018-06-14 16:38



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