कर्नेल पैनिक - सिंकिंग नहीं: VFS: अज्ञात-ब्लॉक (0,0) पर रूट fs माउंट करने में असमर्थ


97

10.10 से 11.04 तक अपग्रेड करने की कोशिश करने पर सभी को फिर से शुरू होने तक अच्छा लग रहा था। यह त्रुटि संदेश है जो आता है:

Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

हम इसे कैसे ठीक करते हैं?


1
अपनी परेशानियों सकता है आपका मुख्य प्रणाली के साथ कुछ नहीं होने, बल्कि अपने को स्थापित मीडिया (यूएसबी स्टिक) के साथ ... ➪ यहाँ देखें: askubuntu.com/a/632636/479118
फ्रैंक Nocke

मैं एक उत्तर पोस्ट नहीं कर सकता क्योंकि मेरे पास पर्याप्त प्रतिनिधि नहीं है, लेकिन जब मुझे यह समस्या मिली तो मैंने इसे लाइव यूएसबी स्टिक में बूट करके, मुख्य और ईएफआई विभाजन बढ़ते हुए , नेटवर्किंग को सक्षम किया , और sudo apt-get install linux-image-genericनवीनतम को अपग्रेड करने के लिए चलाया। गिरी।
ओवेन

जवाबों:


82

आप उस कर्नेल के लिए initramfs को याद कर रहे हैं। Ubuntu के लिए उन्नत विकल्पों के तहत GRUB मेनू से एक और कर्नेल चुनें और sudo update-initramfs -u -k versionउसके लिए initrd उत्पन्न करने के लिए चलाएँ version( versionजैसे कर्नेल संस्करण स्ट्रिंग के साथ बदलें 4.15.0-36-generic) sudo update-grub


2
क्या होगा यदि उस OS (एक बहु-बूट परिदृश्य में) के लिए मौजूद अनन्य कर्नेल विकल्प का चयन करते समय कर्नेल आतंक दिखाया जा रहा है, तो अपडेट-इनट्राम्राम्स लॉन्च करने के लिए कोई कैसे जाता है?
knocte

3
@ कुछ घटिया टिप्पणी ...
psusi

2
@knocte, देखिए टोमू रोग का जवाब।
Psusi

1
यह गरीब जवाब की तरह लग रहा है, लेकिन यह सच है!
user3215

2
मैं दर्ज नहीं कर सकता Ubuntu Systemया Recovery Mode, मैं यह कैसे निष्पादित कर सकता हूं कि यह जांचने के लिए कि यह काम करता है?
कैस्पर

53

लाइव एलसीडी से शुरू करें, आ टर्मिनल खोलें

sudo fdisk -l
sudo mount /dev/sdax /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt 

और अब आप update-initramfsत्रुटियों के बिना बना सकते हैं और अपडेट कर सकते हैं।

update-initramfs -u -k 2.6.38-8-generic (or your version)

यदि आप अपना संस्करण नहीं जानते हैं। उपयोग:

dpkg --list | grep linux-image

और बस ग्रब को अपडेट करें।

update-grub2

अपने सिस्टम को रिबूट करें।


1
मैंने अपने संपादन में sudo mount --bind /dev/pts /mnt/dev/ptsऔर जोड़ा है sudo mount --bind /sys /mnt/sys; इसके बिना, update-grub2शिकायत की।
Hbf

4
मैं सही कैसे पता लगा सकता हूं version?
knocte

1
यदि आप EFI का उपयोग कर रहे हैं तो कोई भी माउंट पॉइंट पहले / dev / sdax से परे मौजूद नहीं है।
पॉल ग्रीगोइरे

@knocte कोशिश करें ls /mnt/bootऔर नवीनतम कर्नेल संस्करण देखें। या यदि आप इसे ठीक से करना चाहते हैं, तो menuentry 'Ubuntu'से पढ़ें/mnt/boot/grub/grub.cfg
Ciro Santilli 改造

Ubuntu 14.04 पर काम किया! initrdसे लापता था /boot। सवाल यह है: यह कैसे संभव है कि फ़ाइल बस गायब हो गई? मैंने ऐसा कुछ नहीं किया जो खतरनाक लगे।
सीरो संटिली 新疆 改造 iro 六四 事件 '

22

मेरी स्थिति में समस्या /boot100% क्षमता पर थी, इसलिए पिछले 2 कर्नेल अपडेट सफलतापूर्वक पूरा नहीं हुए थे, इसलिए जब GRUB2 ने नवीनतम कर्नेल का चयन किया, तो वह विफल हो गया।

मैंने सबसे पुराने कर्नेल में बूटिंग द्वारा समस्या को हल किया, और कुछ अप्रयुक्त कर्नेल को एप्टीट्यूड का उपयोग करके हटा दिया। अप्राप्य का उपयोग करके , अनइंस्टॉल होने के बाद, dpkg ने स्वचालित रूप से टूटे हुए संकुल को कॉन्फ़िगर करने का प्रयास किया, और इस बार सफल रहा।


3
यह मेरे समाधान के सबसे करीब था; बस dpkg --configure -aअपडेट-इनट्राम्राम्स हुक को ट्रिगर करने के लिए पर्याप्त था, और टूटी हुई कर्नेल को ठीक करें।
सममितीय

आप मतलब है कि आप एक अलग /bootविभाजन था कि यह है?
सिरो सेंटिल्ली 新疆 i iro i 事件 '

1
यह मेरे आगमन से पहले स्थापित किया गया एक सर्वर था, और यह स्वयं विभाजन और अप्राप्य-अपग्रेड पर बूट / बूट के साथ कॉन्फ़िगर किया गया था
मई

3
यदि आप sudo apt-get autoremoveअपने अंतरिक्ष से बाहर जाने की स्थिति में पुरानी गुठली निकालने के लिए उपयोग कर सकते हैं /boot
फ्लोरियन ब्रूकर

मैंने एक पुराने कर्नेल में बूट किया, एक किया sudo apt-get autoremove, फिर से रिबूट किया (पुराना कर्नेल), फिर एक किया sudo apt-get dist-upgrade, और यह काम किया। यह मेरे पास एक छोटी परीक्षण मशीन पर था। एक ही मुद्दा हालांकि, 100%/boot
jmlumpkin

18

मामले में यह एक असामान्य कर्नेल अपडेट के बाद हुआ (उदाहरण के लिए सिस्टम क्रैश aptitude safe-upgrade),

  1. पुराने कर्नेल के साथ बूट करें और
  2. दौड़ो dpkg --configure -a

यह बूट सेटिंग्स को कॉन्फ़िगर करने सहित नवीनीकरण को पूरा करेगा, जैसा कि psusi बताता है


1

कर्नेल बूट संदेश आपको बताते हैं कि आप किस डिस्क का उपयोग कर सकते हैं

उदाहरण के लिए, यदि मेरे परीक्षण में लिनक्स 4.17 वर्चुअल मशीन सेटअप है तो मैं अंतिम संदेश के root=/dev/vdaसाथ सही को प्रतिस्थापित करता हूं root=/dev/vdb:

---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)-

हालाँकि , ऊपर कुछ पंक्तियाँ, यह प्रकार के संदेश दिखाती है:

VFS: Cannot open root device "vdb" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
fe00          524288 vda
 driver: virtio_blk

जो मूल रूप से मुझे सीधे बताता है कि vdbनहीं मिला था, लेकिन यह है कि ड्राइवर के /dev/vdaकारण पढ़ा जा सकता है virtio_blk( CONFIG_VIRTIO_BLK=y)।


0

टोमू के निर्देशों के अलावा, चेरोट से पहले मुझे इसकी आवश्यकता थी:

sudo mount --bind /dev /mnt/dev

इसके अतिरिक्त, चुरोट के बाद:

cp -r /usr/lib/i386-linux-gnu/pango /usr/lib/

( यहाँ से यह मिला )


1
टोमू ने पहले ही बढ़ते /devहुए का उल्लेख किया /mnt/dev
लेकेनस्टाइन


0

मेरे / boot विभाजन के कारण मुझे यह समस्या हुई थी इसलिए मेरे कर्नेल अपडेट विफल हो गए थे। मैंने GRUB मेनू में एक पुराने कर्नेल से बूट करके इसे ठीक करने में कामयाबी हासिल की।

जब मैं बूट करने में कामयाब हो गया तो मैंने पुराने कर्नेल को शुद्ध करना शुरू कर दिया, लेकिन मैंने कुछ निर्भरता मुद्दों को प्राप्त करने का प्रबंधन किया था इसलिए पहले मुझे लिनक्स-सर्वर पैकेज की स्थापना रद्द करनी पड़ी

apt-get remove linux-server
apt-get update
apt-get -f install
apt-get upgrade

फिर मैंने रिबूट किया और सब कुछ ठीक काम कर रहा था!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.