मैं बूट लोडर को फिर से कैसे चलाऊं?


150

रनिंग sudo apt-get -f installने कहा कि The link /vmlinuz.old is a damaged linkऔर:

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

यहाँ पूर्ण उत्पादन है:

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

मैं बूट लोडर को फिर से कैसे चलाऊं?


2
जब मैं उपयोग करता हूं तो मुझे वही मुद्दा मिलता है apt-get autoremove, लेकिन जैसा कि एलिया कगन अपने जवाब में कहता है कि रिबूट पर काम ठीक लगता है।
मार्क मिकोस्की

जवाबों:


189

के अनुसार Womble का जवाब करने के लिए क्षतिग्रस्त / vmlinuz और /initrd.img प्रतीकात्मक स्थापना रद्द करें कर्नेल के बाद लिंक (पर सर्वर दोष ), आप जब अपने बूट लोडर / GRUB2-जो भी हो, यहां GRUB है इस स्थिति में कुछ भी करने की जरूरत नहीं है।

कुछ अन्य बूट लोडर (कम से कम LILO ) के लिए, यह बूट लोडर के कॉन्फ़िगरेशन को मैन्युअल रूप से चलाने के लिए कभी-कभी आवश्यक होता है।

आप तो था मौजूदा कर्नेल के लिए जाँच करें और इसके विन्यास को अद्यतन करने के GRUB बताने के लिए की जरूरत है, चल रहा है sudo update-grubतो करना होगा। और इसे चलाने में कोई बुराई नहीं है। लेकिन इस मामले में यह आवश्यक नहीं होना चाहिए।


ठीक है मैंने उन्हें
दौड़ाया

3
@TevinYoungz यह ठीक है। sudo update-grubकोई नुकसान नहीं करना चाहिए।
एलिया कगन

5
शब्द "कभी-कभी" एक समझ है।
साइमन रिक्टर

9
यह सोचने में कि त्रुटि और संकल्प की यह जोड़ी सबसे बेवकूफ डिजाइन गलतियों के लिए पुरस्कार प्राप्त कर सकती है: एक ग्रब कमांड जिसका नाम update-grubइसके बजाय grub-updateतार्किक है और यह ठीक करने के लिए असफल (कमांड) निर्दिष्ट करने में विफल है जो 99.99% मामलों में काम करता है।
सोरिन

@sorin मुझे आश्चर्य है कि जो कुछ भी है उसके लिए कहीं बग रिपोर्ट है।
माटुस्ज़ कोनीकेज़नी

31

ग्रब के मामले में त्रुटि थोड़ी अजीब है।

जब apt एक नया कर्नेल-संस्करण स्थापित करता है, तो यह / vmlinuz और /initrd.img से /vmlinuz.old और /initrd.img.old पर चला जाता है (जो तब भी वर्तमान में सक्रिय कर्नेल की ओर इशारा करते हैं। फिर से, .old एक्सटेंशन को नोटिस करें। जो "कर्नेल अनइंस्टॉल के बाद क्षतिग्रस्त लिंक") से जुड़ी कहानी से अलग है और दो नई फाइलें / vmlinuz /initrd.img बनाता है।

जब आप चलाते हैं apt-get autoremove(संदेश उत्पन्न नहीं होते थे apt-get -f install) तो यह उस पूर्व सक्रिय कर्नेल को हटा देता है (आप ऑटोरेमोव, राईट चलने से पहले, उस इंस्टाल के बाद रिबूट किया गया था), जो लिंक को अमान्य बनाता है।

जब कर्नेल को हटा दिया जाता है, तो ऑटोरेमोव स्वयं अपडेट-ग्रब को आमंत्रित करता है:

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]

तो, ऑटोरेमोव करता है:

  1. पुरानी गिरी को हटा दें
  2. अद्यतन-ग्रब चलाएँ
  3. अपडेट-ग्रब हटाए गए .old फाइलें जो हटाए गए फ़ाइलों से जुड़ी होती हैं।

किसी बारे में चिन्ता की जरूरत नहीं :-)

सादर।


2
क्या होगा अगर आपने पिछले डिस्ट-अपग्रेड के बाद रिबूट नहीं किया था? फिर क्या? मैंने कभी रिबूट नहीं किया। यह newbs के लिए है।
इवान कैरोल

2
जब तक आप रिबूट नहीं करते तब तक नए कर्नेल को मेमोरी में लाने का कोई तरीका नहीं है।
साधारण

यह भी ध्यान दें कि यदि आपने रिबूट करने से पहले कर्नेल क्षेत्र (आमतौर पर / बूट) से लिंक किया है तो आपके पास /vmlinuz&& है /initrd.img। उत्तर नोट के रूप में - ".old" फाइलें 'क्षतिग्रस्त लिंक' चिंता की कोई बात नहीं है। वोट दिया ^
bshea

12

$ sudo update-grub

और अगर आप पुराने पैकेज को हटाना / हटाना चाहते हैं तो आप भी कर सकते हैं

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


यदि आपके पास केवल 3.X चित्र हैं, तो आप सब कुछ हटा दें, क्या मैं सही हूं?
हरकेली गर्गो

तकनीकी रूप से, आपका पहला कमांड प्रश्न का उत्तर देता है। Pkg रखरखाव के बारे में अधिक जोड़ने का कोई कारण नहीं।
बर्षा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.