Linux: Centos Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

สั่ง reboot แล้วเครื่องเงียบหายไป  พอไปดูที่ console พบข้อความแจ้ง Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

วิธีแก้ขั้นต้นก็ต้องหาทางบูทเครื่องให้ได้ก่อน โดยเลือก kernel เวอร์ชันเก่า ๆ ในระหว่างขั้นตอนการบูทเครื่อง

เมื่อลองค้นดูในอินเทอร์เน็ตก็มีหลายคนบอกว่าเป็นปัญหาที่ไฟล์ initramfs ใน /boot ที่มีปัญหาระหว่างการ upgrade kernel

วิธีแก้ที่ผมลองทำแล้วสำเร็จเลยคือสั่ง

# yum reinstall kernel

ตัวอย่างผลลัพธ์

Loaded plugins: fastestmirror, replace
Skipping the running kernel: kernel-3.10.0-514.26.2.el7.x86_64
Loading mirror speeds from cached hostfile
* base: mirror2.totbb.net
* epel: mirror2.totbb.net
* extras: mirror2.totbb.net
* ius: mirrors.tongji.edu.cn
* updates: mirror2.totbb.net
Resolving Dependencies
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-693.2.2.el7 will be installed
---> Package kernel.x86_64 0:3.10.0-693.5.2.el7 will be installed
---> Package kernel.x86_64 0:3.10.0-693.11.1.el7 will be installed
---> Package kernel.x86_64 0:3.10.0-693.11.6.el7 will be installed
---> Package kernel.x86_64 0:3.10.0-693.17.1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================
Reinstalling:
kernel x86_64 3.10.0-693.2.2.el7 updates 43 M
kernel x86_64 3.10.0-693.5.2.el7 updates 43 M
kernel x86_64 3.10.0-693.11.1.el7 updates 43 M
kernel x86_64 3.10.0-693.11.6.el7 updates 43 M
kernel x86_64 3.10.0-693.17.1.el7 updates 43 M

Transaction Summary
===========================================================================================================================
Reinstall 5 Packages

Total size: 215 M
Total download size: 172 M
Installed size: 297 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/4): kernel-3.10.0-693.5.2.el7.x86_64.rpm | 43 MB 00:00:01
(2/4): kernel-3.10.0-693.2.2.el7.x86_64.rpm | 43 MB 00:00:01
(3/4): kernel-3.10.0-693.11.1.el7.x86_64.rpm | 43 MB 00:00:01
(4/4): kernel-3.10.0-693.11.6.el7.x86_64.rpm | 43 MB 00:00:01
---------------------------------------------------------------------------------------------------------------------------
Total 63 MB/s | 172 MB 00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : kernel-3.10.0-693.2.2.el7.x86_64 1/5
Installing : kernel-3.10.0-693.11.6.el7.x86_64 2/5
Installing : kernel-3.10.0-693.11.1.el7.x86_64 3/5
Installing : kernel-3.10.0-693.17.1.el7.x86_64 4/5
Installing : kernel-3.10.0-693.5.2.el7.x86_64 5/5

Verifying : kernel-3.10.0-693.5.2.el7.x86_64 1/5
Verifying : kernel-3.10.0-693.17.1.el7.x86_64 2/5
Verifying : kernel-3.10.0-693.11.1.el7.x86_64 3/5
Verifying : kernel-3.10.0-693.11.6.el7.x86_64 4/5
Verifying : kernel-3.10.0-693.2.2.el7.x86_64 5/5

Installed:
kernel.x86_64 0:3.10.0-693.2.2.el7 kernel.x86_64 0:3.10.0-693.5.2.el7 kernel.x86_64 0:3.10.0-693.11.1.el7
kernel.x86_64 0:3.10.0-693.11.6.el7 kernel.x86_64 0:3.10.0-693.17.1.el7

Complete!

หายใจลึก ๆ แล้ว สั่ง reboot  ถ้าบูทสำเร็จก็ยินดีด้วย 🙂

แต่ถ้าไม่สำเร็จ ลองทำตามขั้นตอนต่อไปนี้

1.  Boot into a live same version of Centos. Choose the recovery options.
2. Go through all of the default prompts, then drop down to shell.
3. Type: chroot /mnt/sysimage
4. Type: cd /boot
5. Type: ls -l initramfs*
6. Look at the version numbers and determine the last version that was installed.  Eg. initramfs-2.6.32-358.el6.x86_64.img
7. Type: dracut -f /boot/initramfs-2.6.32-358.el6.x86_64.img 2.6.32-358.el6.x86_64

This will rebuild the initramfs.  On reboot your system should come back up.

Source: http://www.techpository.com/linux-centos-6redhat-kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on-unknown-block00/