Kernel Panic - ไม่ซิงค์: VFS: ไม่สามารถเมานต์ fs บนบล็อกที่ไม่รู้จัก (0,0)


97

เมื่อพยายามอัพเกรดจาก 10.10 เป็น 11.04 ดูเหมือนว่าจะไปได้ดีจนกระทั่งรีสตาร์ท ข้อความแสดงข้อผิดพลาดนี้คือสิ่งที่เกิดขึ้น:

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

เราจะแก้ไขได้อย่างไร


1
ปัญหาของคุณอาจไม่มีส่วนเกี่ยวข้องกับระบบหลักของคุณ แต่ใช้สื่อการติดตั้ง (USB stick) ... ➪ดูที่นี่: askubuntu.com/a/632636/479118
Frank Nocke

ฉันไม่สามารถโพสต์คำตอบเพราะผมไม่ได้มีตัวแทนพอ แต่เมื่อฉันได้ปัญหานี้ฉันจะแก้ไขได้โดยการบูตที่จะติด USB สดติดตั้งหลักและ EFI พาร์ทิชัน , การเปิดใช้งานระบบเครือข่ายและการทำงานsudo apt-get install linux-image-genericในการอัพเกรดล่าสุด เมล็ด
โอเว่น

คำตอบ:


82

คุณไม่มี initramfs สำหรับเคอร์เนลนั้น เลือกเคอร์เนลอื่นจากเมนูด้วงภายใต้ตัวเลือกขั้นสูงสำหรับอูบุนตูและเรียกใช้sudo update-initramfs -u -k versionในการสร้าง initrd สำหรับversion(แทนที่versionด้วยสตริงรุ่นเคอร์เนลเช่น4.15.0-36-generic) sudo update-grubแล้ว


2
จะเกิดอะไรขึ้นถ้าเคอร์เนลตกใจถูกแสดงเมื่อเลือกตัวเลือกเคอร์เนลเฉพาะที่มีอยู่สำหรับ OS นั้น (ในสถานการณ์แบบมัลติบูต) หนึ่งไปสู่การเปิดใช้ update-initramfs อย่างไร
knocte

3
@Dew, ความคิดเห็นไม่ดี ...
psusi

2
@knocte ดูคำตอบของ Tomeu Roig
psusi

1
ดูเหมือนคำตอบที่ไม่ดี แต่มันเป็นความจริง!
user3215

2
ฉันไม่สามารถป้อนUbuntu SystemหรือRecovery Modeฉันจะใช้คำสั่งนั้นเพื่อทดสอบว่ามันทำงานได้อย่างไร
Casper

53

เริ่มต้นด้วย livecd เปิดเทอร์มินัล aa

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

และเพียงแค่อัพเดต Grub

update-grub2

รีบูตระบบของคุณ


1
ฉันได้เพิ่มsudo mount --bind /dev/pts /mnt/dev/ptsและsudo mount --bind /sys /mnt/sysในการแก้ไขของฉัน; ไม่มีสิ่งนี้update-grub2บ่น
Hbf

4
ฉันจะหาคำตอบที่แน่นอนได้ versionอย่างไร
knocte

1
ไม่มีจุดเมานท์อยู่เกินหนึ่ง / dev / sdax แรกหากคุณใช้ EFI
Paul Gregoire

@knocte ลองls /mnt/bootและค้นหาเคอร์เนลเวอร์ชันล่าสุด หรือถ้าคุณต้องการที่จะทำอย่างถูกต้องอ่านmenuentry 'Ubuntu'จาก/mnt/boot/grub/grub.cfg
Ciro Santilli 新疆改造中心法轮功六四事件

ทำงานบน Ubuntu 14.04! หายไปจากinitrd /bootคำถามคือ: เป็นไปได้อย่างไรว่าไฟล์จะหายไป? ฉันไม่ได้ทำอะไรที่ดูเหมือนเป็นอันตราย
Ciro Santilli 新疆改造中心法轮功六四事件

22

ในสถานการณ์ของฉันปัญหานั้น/bootอยู่ที่ความจุ 100% ดังนั้นการอัพเดตเคอร์เนล 2 ครั้งล่าสุดจึงไม่เสร็จสมบูรณ์ดังนั้นเมื่อรีบูตเครื่องเมื่อGRUB2เลือกเคอร์เนลล่าสุดมันล้มเหลว

ฉันแก้ไขปัญหาด้วยการบูทเข้าสู่เคอร์เนลที่เก่าแก่ที่สุดที่ติดตั้งไว้และลบเมล็ดที่ไม่ได้ใช้โดยใช้ความสามารถ โดยใช้ความถนัดหลังจากถอนการติดตั้งเกิดขึ้นdpkgพยายามกำหนดค่าแพคเกจที่เสียหายโดยอัตโนมัติและในครั้งนี้ก็ประสบความสำเร็จ


3
นี่เป็นวิธีที่ใกล้เคียงกับโซลูชันของฉันมากที่สุด เพิ่งทำงานdpkg --configure -aก็เพียงพอที่จะเรียกใช้ฮุก update-initramfs และแก้ไขเคอร์เนลที่เสียหาย
สมมาตร

คุณหมายความว่าคุณมี/bootพาร์ทิชันแยกต่างหากหรือไม่
Ciro Santilli 新疆改造中心法轮功六四事件

1
มันเป็นเซิร์ฟเวอร์ที่ตั้งค่าก่อนที่ฉันจะมาถึงและมันถูกกำหนดค่าด้วย / boot ในพาร์ติชันของตัวเองและการอัพเกรดแบบอัตโนมัติ
Sheepeatingtaz

3
คุณสามารถใช้sudo apt-get autoremoveเพื่อลบเมล็ดเก่าได้ในกรณีที่พื้นที่ในของ/bootคุณหมด
Florian Brucker

ฉันบูทเข้าไปในเคอร์เนลที่เก่ากว่าทำ a sudo apt-get autoremove, รีบูตอีกครั้ง (เคอร์เนลเก่า) จากนั้นก็ทำsudo apt-get dist-upgradeและสิ่งนี้ใช้ได้ นี่เป็นเครื่องทดสอบขนาดเล็กที่ฉันมี แม้ว่าปัญหาเดียวกัน, 100%/boot
jmlumpkin

19

ในกรณีนี้เกิดขึ้นหลังจากการอัพเดตเคอร์เนลที่ถูกยกเลิก (เช่นระบบล่มขณะaptitude safe-upgrade)

  1. บูตด้วยเคอร์เนลที่เก่ากว่าและ
  2. dpkg --configure -aวิ่ง

นี้จะเสร็จสิ้นการปรับรุ่นรวมทั้งการกำหนดค่าการตั้งค่าการบูตpsusi อธิบาย


1

ข้อความบูตเคอร์เนลบอกให้คุณทราบว่าดิสก์ใดที่คุณสามารถใช้ได้

ตัวอย่างเช่นหากในการทดสอบการตั้งค่าเครื่องเสมือนของฉันLinux 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

ฉันพบปัญหานี้เนื่องจากพาร์ติชัน / boot ของฉันเต็มดังนั้นการอัพเดตเคอร์เนลของฉันจึงล้มเหลว ฉันจัดการเพื่อแก้ไขปัญหานี้โดยการบูตจากเคอร์เนลเก่าในเมนูด้วง

เมื่อจัดการเพื่อบูตฉันเริ่มล้างเมล็ดเก่า แต่ฉันจัดการเพื่อรับปัญหาการพึ่งพาดังนั้นก่อนอื่นฉันต้องถอนการติดตั้งแพคเกจเซิร์ฟเวอร์ลินุกซ์

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

จากนั้นฉันรีบูตและทุกอย่างทำงานได้ดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.