Jak ponownie uruchomić moduł ładujący?

150

Running sudo apt-get -f installpowiedział, że The link /vmlinuz.old is a damaged linki:

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

Oto pełna wydajność:

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

Jak ponownie uruchomić moduł ładujący?

TevinYoungz
źródło
2
Mam ten sam problem, kiedy używam apt-get autoremove, ale jak mówi Eliah Kagan w swojej odpowiedzi, grub wydaje się działać dobrze przy ponownym uruchomieniu.
Mark Mikofski,

Odpowiedzi:

189

Zgodnie z odpowiedzią na Womble do Uszkodzone / vmlinuz i /initrd.img dowiązania symboliczne po Kernel odinstalować (na Server Fault ), nie musisz nic robić w tej sytuacji, gdy program rozruchowy GRUB jest / Grub2-który jest tutaj.

W przypadku niektórych innych programów ładujących (przynajmniej LILO ) najwyraźniej czasami konieczne było ręczne uruchomienie konfiguracji programu ładującego.

Jeśli nie trzeba powiedzieć GRUB w celu sprawdzenia istniejących jąder i aktualizować swoją konfigurację, bieganie sudo update-grubto zrobić. I nie ma nic złego w tym. Ale w tym przypadku nie powinno to być konieczne.

Eliah Kagan
źródło
ok prowadziłem je ty
TevinYoungz
3
@TevinYoungz W porządku. sudo update-grubnie powinien wyrządzać żadnej szkody.
Eliah Kagan,
5
Słowo „czasami” jest mało powiedziane.
Simon Richter
9
Pomyśl, że ta para błędów i rozdzielczość może otrzymać nagrodę za najbardziej głupie błędy projektowe: posiadanie nazwanego polecenia grub, update-grubzamiast grub-updatektórego jest logiczne, i nieokreślenie poprawki (polecenia), która działa w 99,99% przypadków.
sorin
@sorin Zastanawiam się, czy gdzieś tam jest zgłoszenie błędu.
Mateusz Konieczny
31

Błąd jest nieco dziwny w przypadku gruba.

Kiedy apt instaluje nową wersję jądra, przenosi / vmlinuz i /initrd.img do /vmlinuz.old i /initrd.img.old (które następnie nadal wskazują na aktualnie aktywne jądro. Ponownie zwróć uwagę na rozszerzenie .old, który różni się od historii podanej w „Uszkodzonych linkach po odinstalowaniu jądra”) i tworzy dwa nowe pliki / vmlinuz /initrd.img.

Kiedy uruchomisz apt-get autoremove(komunikaty nie były generowane przez apt-get -f install), usuwa to wcześniej aktywne jądro (zrestartowałeś się po tej instalacji, przed uruchomieniem autorove, prawda?), Co powoduje, że linki są nieprawidłowe.

Po usunięciu samego jądra autorove sam wywołuje update-grub:

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

W związku z tym:

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

Tak więc autorove robi:

  1. usuń stare jądro
  2. uruchom update-grub
  3. update-grub usuwa pliki .old, które są połączone z usuniętymi plikami.

Nie ma się o co martwić :-)

Pozdrowienia.

Anakin
źródło
2
Co jeśli nie uruchomiłeś się ponownie po ostatniej aktualizacji dist? Co wtedy Nigdy się nie restartuję. To jest dla newbs.
Evan Carroll,
2
Nie ma sposobu na zapisanie nowego jądra do pamięci, chyba że uruchomisz się ponownie.
simpleuser
Warto również zwrócić uwagę, jeśli przed uruchomieniem komputera masz /vmlinuz&& /initrd.imgpołączone z obszarem jądra (zwykle / boot). Jak zauważa odpowiedź - „uszkodzony link” plików „.old” nie ma się czym martwić.
Głosowano
12

$ sudo update-grub

A jeśli chcesz usunąć / wyczyścić stare pakiety, możesz to zrobić

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

pa75
źródło
Jeśli masz tylko obrazy 3.X, wszystko usuwasz, mam rację?
Harkály Gergő
Technicznie, twoje pierwsze polecenie odpowiada na pytanie. Nie ma powodu, aby dodawać więcej na temat konserwacji pkg.
bshea