Panic Kernel - tidak disinkronkan: VFS: Tidak dapat me-mount root fs pada blok-unknown (0,0)

97

Setelah mencoba meningkatkan dari 10,10 ke 11,04 semua tampaknya berjalan dengan baik sampai restart. Pesan kesalahan ini adalah apa yang muncul:

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

Bagaimana kita memperbaikinya?

Jeffrywith1e
sumber
1
Masalah Anda mungkin tidak ada hubungannya dengan sistem utama Anda, melainkan dengan media instalasi Anda (stik USB) ... ➪ lihat di sini: askubuntu.com/a/632636/479118
Frank Nocke
Saya tidak dapat mengirim jawaban karena saya tidak punya cukup perwakilan, tetapi ketika saya mendapat masalah ini saya menyelesaikannya dengan mem-boot ke USB stick langsung, memasang partisi utama dan EFI , mengaktifkan jaringan , dan menjalankan sudo apt-get install linux-image-genericuntuk meningkatkan ke yang terbaru inti.
Owen

Jawaban:

83

Anda kehilangan initramfs untuk kernel itu. Pilih kernel lain dari menu GRUB di bawah Opsi lanjutan untuk Ubuntu dan jalankan sudo update-initramfs -u -k versionuntuk menghasilkan initrd untuk version(ganti versiondengan string versi kernel seperti 4.15.0-36-generic) lalu sudo update-grub.

psusi
sumber
2
bagaimana jika panik kernel ditampilkan ketika memilih opsi kernel unik yang ada untuk OS tersebut (dalam skenario multi-boot), bagaimana cara meluncurkan pembaruan-initramfs?
knocte
3
@Baru, komentar buruk ...
psusi
2
@knocte, Lihat jawaban Tomeu Roig.
psusi
1
Sepertinya jawaban yang buruk tapi itu benar!
user3215
2
Saya tidak bisa masuk Ubuntu Systematau Recovery Mode, bagaimana saya bisa menjalankan perintah itu untuk menguji apakah itu berfungsi?
Casper
53

Mulailah dengan livecd, buka terminal 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 

dan sekarang Anda dapat membuat update-initramfsdan memperbarui-grub tanpa kesalahan.

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

Jika Anda tidak tahu versi Anda. Menggunakan:

dpkg --list | grep linux-image

Dan cukup perbarui Grub.

update-grub2

Mulai ulang sistem Anda.

Tomeu Roig
sumber
1
Saya telah menambahkan sudo mount --bind /dev/pts /mnt/dev/ptsdan sudo mount --bind /sys /mnt/sysmengedit saya; tanpa ini, update-grub2keluh.
Hbf
4
bagaimana saya bisa tahu persis version ?
knocte
1
Tidak ada titik mount yang ada di luar yang pertama / dev / sdax jika Anda menggunakan EFI.
Paul Gregoire
@knocte mencoba ls /mnt/bootdan mencari versi kernel terbaru. Atau jika Anda ingin melakukannya dengan benar, baca menuentry 'Ubuntu'dari/mnt/boot/grub/grub.cfg
Ciro Santilli i 新疆 中心 法轮功 六四 事件
Bekerja di Ubuntu 14.04! Itu initrdhilang dari /boot. Pertanyaannya adalah: bagaimana mungkin file itu hilang begitu saja? Saya tidak melakukan apa pun yang tampak berbahaya.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
22

Dalam situasi saya, masalahnya adalah /bootpada kapasitas 100%, jadi 2 pembaruan kernel terakhir belum selesai dengan sukses, maka saat reboot ketika GRUB2 memilih Kernel terbaru, gagal.

Saya menyelesaikan masalah dengan mem-boot kernel tertua yang diinstal, dan menghapus beberapa kernel yang tidak digunakan menggunakan aptitude. Dengan menggunakan aptitude , setelah uninstall terjadi, dpkg secara otomatis mencoba mengonfigurasi paket yang rusak, dan kali ini berhasil.

sheepeatingtaz
sumber
3
Ini yang paling dekat dengan solusi saya; menjalankan saja dpkg --configure -asudah cukup untuk memicu kait pembaruan-initramfs, dan memperbaiki kernel yang rusak.
Simetris
Maksud Anda, Anda memiliki /bootpartisi terpisah ?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Itu adalah server yang diatur sebelum kedatangan saya, dan itu dikonfigurasikan dengan / boot pada partisi itu sendiri dan peningkatan tanpa pengawasan
sheepeatingtaz
3
Anda dapat menggunakan sudo apt-get autoremoveuntuk menghapus kernel lama jika Anda kehabisan ruang /boot.
Florian Brucker
Saya boot ke kernel yang lebih tua, melakukan sudo apt-get autoremove, reboot lagi (kernel yang lebih tua), lalu melakukan sudo apt-get dist-upgrade, dan ini berhasil. Ini pada mesin uji kecil yang saya miliki. Masalah yang sama, 100%/boot
jmlumpkin
19

Dalam hal ini terjadi setelah pembaruan kernel yang dibatalkan (mis. Sistem crash sementara aptitude safe-upgrade),

  1. boot dengan kernel yang lebih lama dan
  2. lari dpkg --configure -a.

Ini akan menyelesaikan upgrade, termasuk mengkonfigurasi pengaturan boot seperti yang dijelaskan psusi .

Raphael
sumber
1

Pesan-pesan boot kernel memberi tahu Anda disk mana yang dapat Anda gunakan

Misalnya, jika dalam pengujian saya Linux 4.17 pengaturan mesin virtual saya ganti yang benar root=/dev/vdadengan root=/dev/vdbpesan terakhir adalah:

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

Namun , beberapa baris di atas, itu menunjukkan pesan jenis:

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

yang pada dasarnya memberitahu saya langsung yang vdbtidak ditemukan, tetapi ada /dev/vdayang bisa dibaca karena virtio_blkdriver ( CONFIG_VIRTIO_BLK=y).

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
sumber
0

Selain instruksi Tomeu, sebelum chroot saya perlu:

sudo mount --bind /dev /mnt/dev

Selain itu, setelah chroot:

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

( Dapatkan ini dari sini. )

Jason
sumber
1
Tomeu sudah disebutkan pemasangan /devdi /mnt/dev.
Lekensteyn
0

Saya mendapatkan masalah ini karena partisi / boot saya penuh sehingga pembaruan kernel saya gagal. Saya berhasil memperbaikinya dengan mem-boot dari kernel lama di menu GRUB.

Ketika berhasil mem-boot, saya mulai membersihkan kernel lama, tetapi saya berhasil mendapatkan beberapa masalah ketergantungan, jadi pertama-tama saya harus menghapus paket linux-server

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

Kemudian saya reboot dan semuanya bekerja dengan baik!

Christopher Käck
sumber