Kernel Panic - không đồng bộ hóa: VFS: Không thể gắn kết fs gốc trên khối không xác định (0,0)


97

Khi cố gắng nâng cấp từ 10.10 lên 11.04, tất cả dường như hoạt động tốt cho đến khi khởi động lại. Thông báo lỗi này là những gì xuất hiện:

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

Làm thế nào để chúng tôi sửa điều đó?


1
Những rắc rối của bạn có thể không liên quan gì đến hệ thống chính của bạn, mà là với phương tiện cài đặt (thẻ nhớ USB) của bạn ...
Frank Nocke 4/12/2015

Tôi không thể đăng câu trả lời vì tôi không có đủ đại diện, nhưng khi gặp vấn đề này, tôi đã giải quyết nó bằng cách khởi động vào thanh USB trực tiếp, gắn các phân vùng chính và EFI , cho phép kết nối mạng và chạy sudo apt-get install linux-image-genericđể nâng cấp lên bản mới nhất nhân.
Owen

Câu trả lời:


83

Bạn đang thiếu initramfs cho kernel đó. Chọn một kernel khác từ menu GRUB bên dưới Tùy chọn nâng cao cho Ubuntu và chạy sudo update-initramfs -u -k versionđể tạo initrd cho version(thay thế versionbằng chuỗi phiên bản kernel như 4.15.0-36-generic) sau đó sudo update-grub.


2
Điều gì xảy ra nếu kernel hoảng loạn đang được hiển thị khi chọn tùy chọn kernel duy nhất tồn tại cho HĐH đó (trong kịch bản đa khởi động), làm thế nào để đi khởi chạy update-initramfs?
knocte

3
@ Dew, bình luận kém ...
psusi

2
@knocte, Xem câu trả lời của Tomeu Roig.
psusi

1
Có vẻ như câu trả lời kém nhưng đó là sự thật!
user3215

2
Tôi không thể nhập Ubuntu Systemhoặc Recovery Mode, làm thế nào tôi có thể thực thi lệnh đó để kiểm tra xem nó có hoạt động không?
Casper

53

Bắt đầu với một livecd, mở một thiết bị đầu cuối 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 

và bây giờ bạn có thể thực hiện update-initramfsvà cập nhật-grub mà không có lỗi.

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

Nếu bạn không biết phiên bản của mình. Sử dụng:

dpkg --list | grep linux-image

Và chỉ cần cập nhật Grub.

update-grub2

Khởi động lại hệ thống của bạn.


1
Tôi đã thêm sudo mount --bind /dev/pts /mnt/dev/ptssudo mount --bind /sys /mnt/systrong bản chỉnh sửa của mình; không có điều này, update-grub2phàn nàn.
Hbf

4
Làm thế nào tôi có thể tìm ra chính xác version ?
knocte

1
Không có điểm gắn kết nào tồn tại ngoài điểm đầu tiên / dev / sdax nếu bạn đang sử dụng EFI.
Paul Gregoire

@knocte hãy thử ls /mnt/bootvà tìm phiên bản kernel mới nhất. Hoặc nếu bạn muốn thực hiện đúng cách, hãy đọc menuentry 'Ubuntu'từ/mnt/boot/grub/grub.cfg
Ciro Santilli 改造 心 心

Đã hoạt động trên Ubuntu 14.04! Các initrdđã mất tích từ /boot. Câu hỏi là: làm thế nào có thể tập tin biến mất? Tôi không làm gì có vẻ nguy hiểm.
Ciro Santilli 心 心 事件

22

Trong tình huống của tôi, vấn đề là /bootở mức 100% công suất, do đó, 2 bản cập nhật kernel cuối cùng đã không hoàn thành thành công, do đó, khi khởi động lại khi GRUB2 chọn Kernel mới nhất, nó đã thất bại.

Tôi đã giải quyết vấn đề bằng cách khởi động vào kernel cũ nhất được cài đặt và loại bỏ một số hạt nhân không sử dụng bằng aptitude. Bằng cách sử dụng aptitude , sau khi gỡ cài đặt đã xảy ra, dpkg tự động cố gắng định cấu hình các gói bị hỏng và lần này đã thành công.


3
Đây là giải pháp gần nhất với tôi; chỉ cần chạy dpkg --configure -alà đủ để kích hoạt hook update-initramfs và sửa kernel bị hỏng.
xứng

Bạn có nghĩa là bạn đã có một /bootphân vùng riêng biệt phải không?
Ciro Santilli 心 心 事件

1
Đó là một máy chủ được thiết lập trước khi tôi đến và nó được cấu hình với / boot trên phân vùng riêng của nó và các bản nâng cấp không được giám sát
lambeattaz

3
Bạn có thể sử dụng sudo apt-get autoremoveđể loại bỏ các hạt nhân cũ trong trường hợp bạn hết dung lượng /boot.
Florian Brucker

Tôi đã khởi động vào một kernel cũ hơn, thực hiện sudo apt-get autoremovelại, khởi động lại (kernel cũ hơn), sau đó thực hiện sudo apt-get dist-upgradevà điều này đã hoạt động. Đây là trên một máy thử nghiệm nhỏ mà tôi có. Vấn đề tương tự, 100%/boot
jmlumpkin

19

Trong trường hợp điều này xảy ra sau khi cập nhật kernel bị hủy bỏ (ví dụ như sự cố hệ thống trong khi aptitude safe-upgrade),

  1. khởi động với kernel cũ hơn và
  2. chạy dpkg --configure -a.

Điều này sẽ hoàn thành nâng cấp, bao gồm cấu hình các cài đặt khởi động như psusi giải thích .


1

Các thông báo khởi động kernel cho bạn biết bạn có thể sử dụng đĩa nào

Ví dụ: nếu trong thử nghiệm thiết lập máy ảo Linux 4.17 của tôi, tôi thay thế chính xác root=/dev/vdabằng root=/dev/vdbthông báo cuối cùng là:

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

Tuy nhiên , một vài dòng trên, nó hiển thị các thông báo loại:

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

về cơ bản cho tôi biết rằng vdbkhông tìm thấy, nhưng có một /dev/vdacái có thể đọc được do virtio_blktrình điều khiển ( CONFIG_VIRTIO_BLK=y).


0

Ngoài hướng dẫn của Tomeu, trước khi chroot tôi cần phải:

sudo mount --bind /dev /mnt/dev

Ngoài ra, sau chroot:

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

( Có cái này từ đây. )


1
Tomeu đã đề cập đến gắn kết /devtrên /mnt/dev.
Lekensteyn


0

Tôi gặp vấn đề này do phân vùng / boot của tôi đã đầy nên các cập nhật kernel của tôi không thành công. Tôi đã cố gắng khắc phục điều này bằng cách khởi động từ một kernel cũ trong menu GRUB.

Khi quản lý để khởi động, tôi bắt đầu thanh lọc các nhân cũ, nhưng tôi đã gặp phải một số vấn đề phụ thuộc nên trước tiên tôi phải gỡ cài đặt gói máy chủ linux

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

Sau đó tôi khởi động lại và mọi thứ đều hoạt động tốt!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.