Linux Kernel Panic — Not Syncing: VFS Unable to Mount Root
About Linux Kernel Panic
Fix Linux kernel panic 'not syncing: VFS: Unable to mount root fs' caused by missing initramfs, wrong root= parameter, or missing filesystem drivers. This guide covers everything you need to know about this topic, including common causes, step-by-step solutions, and answers to frequently asked questions.
Here are the key things to understand: Kernel panic 'VFS: Unable to mount root fs on unknown-block' means the kernel cannot find the root filesystem. The kernel loads, but cannot mount / to continue booting into userspace. initramfs (initial RAM filesystem) contains drivers needed to access the real root filesystem. Missing initramfs means no drivers for SATA, NVMe, RAID, or LVM needed to read the root partition. Wrong root= kernel parameter points to a non-existent or differently named partition. Understanding these fundamentals will help you diagnose and resolve this issue more effectively.
The most common reasons this occurs include: Missing or corrupted initramfs/initrd image. Kernel updated but initramfs not regenerated. Wrong root= parameter in GRUB config (UUID changed or partition reordered). Filesystem driver not compiled into kernel or initramfs (ext4, xfs, btrfs). LVM, RAID, or LUKS encryption drivers missing from initramfs. Identifying the root cause is the first step toward finding the right solution.
To resolve this, follow these recommended steps: Boot from Live USB and mount root: sudo mount /dev/sdXY /mnt. Chroot: mount --bind /dev /mnt/dev && mount --bind /proc /mnt/proc && mount --bind /sys /mnt/sys && chroot /mnt. Regenerate initramfs: update-initramfs -u (Debian/Ubuntu) or dracut -f (Fedora/RHEL). Verify root= in GRUB: cat /boot/grub/grub.cfg | grep root= — compare UUID with blkid. Update GRUB: update-grub to regenerate config with correct UUIDs. If these steps do not resolve the issue, consider consulting additional resources or a qualified professional.
This article is part of our Linux Error Codes collection on Error Codes Wiki. We provide comprehensive, up-to-date information to help you find solutions quickly.
Quick Answer
What is initramfs?
A temporary root filesystem loaded into RAM at boot containing drivers and tools needed to mount the real root filesystem.
Overview
Fix Linux kernel panic 'not syncing: VFS: Unable to mount root fs' caused by missing initramfs, wrong root= parameter, or missing filesystem drivers.
Key Details
- Kernel panic 'VFS: Unable to mount root fs on unknown-block' means the kernel cannot find the root filesystem
- The kernel loads, but cannot mount / to continue booting into userspace
- initramfs (initial RAM filesystem) contains drivers needed to access the real root filesystem
- Missing initramfs means no drivers for SATA, NVMe, RAID, or LVM needed to read the root partition
- Wrong root= kernel parameter points to a non-existent or differently named partition
Common Causes
- Missing or corrupted initramfs/initrd image
- Kernel updated but initramfs not regenerated
- Wrong root= parameter in GRUB config (UUID changed or partition reordered)
- Filesystem driver not compiled into kernel or initramfs (ext4, xfs, btrfs)
- LVM, RAID, or LUKS encryption drivers missing from initramfs
Steps
- 1Boot from Live USB and mount root: sudo mount /dev/sdXY /mnt
- 2Chroot: mount --bind /dev /mnt/dev && mount --bind /proc /mnt/proc && mount --bind /sys /mnt/sys && chroot /mnt
- 3Regenerate initramfs: update-initramfs -u (Debian/Ubuntu) or dracut -f (Fedora/RHEL)
- 4Verify root= in GRUB: cat /boot/grub/grub.cfg | grep root= — compare UUID with blkid
- 5Update GRUB: update-grub to regenerate config with correct UUIDs