Vraag Hoe start ik de bootloader opnieuw?


hardlopen sudo apt-get -f install zei dat The link /vmlinuz.old is a damaged link en:

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

Dit is de volledige output:

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

Hoe voer ik de bootloader opnieuw uit?


148
2017-09-02 02:44


oorsprong


Ik krijg hetzelfde probleem als ik gebruik apt-get autoremove, maar zoals de Eliah Kagan zegt in zijn antwoord grub lijkt goed te werken bij opnieuw opstarten. - Mark Mikofski


antwoorden:


Volgens het antwoord van womble naar Beschadigde / vmlinuz en /initrd.img symbolische koppelingen na het verwijderen van Kernel (op Serverfout), je hoeft niets te doen in deze situatie als je bootloader GRUB / GRUB2 is - wat het hier is.

Voor sommige andere bootladers (tenminste LILO), was / was het blijkbaar soms noodzakelijk om de configuratie van de bootloader handmatig uit te voeren.

als jij deed moet GRUB vertellen om te controleren op bestaande kernels en zijn configuratie updaten, draaien sudo update-grub zou dat doen. En dat kan geen kwaad. Maar het zou in dit geval niet nodig moeten zijn.


187
2017-09-02 02:49



ok, ik heb ze geleid - TevinYoungz
@TevinYoungz Dat is goed. sudo update-grub mag geen kwaad doen. - Eliah Kagan
Het woord "soms" is een understatement. - Simon Richter
In de veronderstelling dat dit paar fouten en de oplossing een prijs zou kunnen ontvangen voor de meest domme ontwerpfouten: het hebben van een GRUB-commando met de naam update-grub in plaats van grub-update wat logisch is en niet de fix (opdracht) specificeert die in 99,99% van de gevallen werkt. - sorin
@sorin Ik vraag me af wat daar een bugrapport over is. - Mateusz Konieczny


De fout is een beetje vreemd in het geval van grub.

Wanneer apt een nieuwe kernel-versie installeert, worden / vmlinuz en /initrd.img verplaatst naar /vmlinuz.old en /initrd.img.old (die dan nog steeds naar de actieve kernel verwijzen.) Zie ook de .old-extensie, wat anders is dan het verhaal dat is gelinkt in "Damaged links after kernel uninstall") en creëert twee nieuwe bestanden / vmlinuz /initrd.img.

Wanneer je rent apt-get autoremove (de berichten zijn niet gegenereerd door apt-get -f install) het verwijdert die eerder actieve kernel (je herstartte na die installatie, voor het uitvoeren van autoremove, toch?), waardoor de links ongeldig worden.

Wanneer het verwijderen van de kernel zelf is voltooid, roept autoremove zelf update-grub aan:

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

Vandaar:

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

Dus autoremove doet:

  1. verwijder de oude kernel
  2. voer update-grub uit
  3. update-grub verwijdert .old-bestanden die gekoppeld zijn aan verwijderde bestanden.

Niets om je druk over te maken :-)

Vriendelijke groeten.


31
2017-08-19 14:08



Wat als je niet herstart hebt na de laatste dist-upgrade? Dan wat? Ik start nooit opnieuw op. Dat is voor newbs. - Evan Carroll
Er is geen manier om de nieuwe kernel in het geheugen te krijgen tenzij je herstart. - simpleuser
Ook verstandig om op te merken als je hebt /vmlinuz && /initrd.img gekoppeld aan kernelgebied (meestal / boot) voordat je herstart. Als antwoordnotities - de "losse" bestanden 'beschadigde link' is niets om je zorgen over te maken. Gestemd ^ - bshea


$ sudo update-grub

En als u oude pakketten wilt verwijderen / opschonen, kunt u dat ook

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


11
2018-06-14 16:38



Als je alleen 3.X-afbeeldingen hebt, wis je alles, heb ik gelijk? - Harkály Gergő
Technisch beantwoordt je eerste commando de vraag. Geen reden om meer toe te voegen over pkg-onderhoud. - bshea