Önyükleme yükleyicisini nasıl yeniden çalıştırırım?


150

Koşan şunu sudo apt-get -f installsöyledi The link /vmlinuz.old is a damaged linkve:

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

İşte tam çıktı:

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

Önyükleme yükleyicisini nasıl yeniden çalıştırırım?


2
apt-get autoremoveKullandığım zaman da aynı sorunu yaşıyorum , ancak Eliah Kagan'ın dediği gibi yanıt grubundaki yeniden başlatma konusunda iyi çalışıyor gibi görünüyor.
Mark Mikofski

Yanıtlar:


189

Göre Womble cevap için kaldırma Kernel sonra Hasarlı / vmlinuz ve /initrd.img sembolik bağlantıları (on Sunucu Hata boot yükleyici / GRUB2 -ki öyle, burada GRUB olduğunda), bu durumda bir şey yapmak zorunda değilsiniz.

Diğer bazı önyükleyiciler için (en azından LILO ), bazen önyükleyici yapılandırmasını manuel olarak çalıştırmak bazen gerekliydi.

Eğer varsa vermedi mevcut çekirdek için kontrol edin ve yapılandırmasını güncelleştirmek için GRUB anlatmak gerekir, koşu sudo update-gruböyle yapardı. Ve bunu çalıştırmanın bir zararı yok. Ancak bu durumda gerekli olmamalıdır.


tamam onları koştum
TevinYoungz

3
@TevinYoungz Bu iyi. sudo update-grubzarar vermemeli.
Eliah Kagan

5
"Bazen" kelimesi bir ifade değildir.
Simon Richter

9
Bu hata çiftinin ve çözümün en aptal tasarım hataları için bir ödül alabileceğini düşünüyorum: update-grubbunun yerine grub-updatemantıklı olan ve grubun% 99.99'unda çalışan düzeltmeyi (komutu) belirleyemeyen bir grub komutuna sahip olmak .
sorin,

@sorin Acaba bunun için herhangi bir yerde hata raporu var.
Mateusz Konieczny

31

Grub olması durumunda hata biraz garip.

Apt yeni bir çekirdek sürümü kurduğunda, / vmlinuz ve /initrd.img öğesini /vmlinuz.old ve /initrd.img.old öğesine taşır (Bu sırada halen etkin olan çekirdeğe işaret eder.) .Old uzantısına dikkat edin. "Çekirdek kaldırıldıktan sonra hasar görmüş bağlantılar" bölümündeki bağlantıdan farklı olan ve iki yeni dosya / vmlinuz /initrd.img oluşturur.

Çalıştırdığınızda apt-get autoremove(mesajlar oluşturulmadı apt-get -f install), daha önce aktif olan çekirdeği kaldırır (o yüklemeden sonra otomatik olarak çalıştırmadan önce yeniden başlattınız, değil mi?), Bu bağlantıları geçersiz kılar.

Çekirdeğin kaldırılması tamamlandığında, otomatik olarak yapılan güncelleme güncelleme grubunu çağırır:

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

Dolayısıyla:

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

Öyleyse, otomatik bağlantı şunları yapar:

  1. eski çekirdeği kaldır
  2. güncelleme grubunu çalıştır
  3. update-grub, kaldırılan dosyalara bağlı .old dosyalarını kaldırır.

Endişelenecek birşey yok :-)

Saygılarımızla.


2
Son güncelleme işleminden sonra yeniden başlatılmadıysa ne olacak? Sonra ne? Asla yeniden başlatılmam. Bu yeniler için.
Evan Carroll,

2
Yeni çekirdeği siz yeniden başlatmadıkça belleğe almanın bir yolu yoktur.
basit kullanıcı

Eğer varsa da akıllıca nota /vmlinuz&& /initrd.imgYeniden açmadan önce bölgeyi (genellikle / boot) çekirdek bağlantı kurdu. Cevap notları gibi - ".old" dosyalarının 'hasar görmüş bağlantısı' endişelenecek bir şey değildir. Oy verildi ^
bshea

12

$ sudo update-grub

Ve eğer eski paketleri silmek / temizlemek isterseniz de

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


Yalnızca 3.X görüntüleriniz varsa, her şeyi sildiniz, değil mi?
Harkály Gergő

Teknik olarak, ilk komutunuz soruyu cevaplıyor. Pkg bakımı hakkında daha fazla eklemek için hiçbir neden yok.
bshea
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.