KERNEL PANIC VFS Unable to mount root fs on unknown-block(0,0)

Fixing KERNEL PANIC! VFS: Unable to mount fs on unknown-block(0,0)

I had this on an Ubuntu 24.04 LTS which had updated the kernel. The problem is that there is no initramfs for the kernel version you are trying to boot.

  • Boot on a USB-stick with a live image of Ubuntu, using the Try Ubuntu boot option
  • List the devices in the system:
    sudo fdisk -l
  • Your disk is probably something like /dev/sda1 or /dev/sda2. In my case it was /dev/sda2. Do:
    sudo mount /dev/sda2 /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
  • List the kernels installed:
    dpkg --list | grep linux-image
  • Generate initramfs for the latest version, in my case 6.17.0-14-generic:
    update-initramfs -u -k 6.17.0-14-generic
  • Update grub:
    update-grub
  • Shutdown, remove the live USB-stick and restart the computer.
MacBook Air model 2013 running Ubuntu and working builtin camera

Macbook Air builtin camera on Ubuntu 24.04 LTS

When Apple decided that it was time for my MacBook Air model 2013 to die, by not supplying anymore OS updates, I decided to install Ubuntu instead of throwing a piece of perfectly working hardware away. The only reason this hardware was “obsolete” is because Apple decided it to be. The same behaviour goes for Microsoft by the way and I think we need a debate about climate impact where people need to buy new hardware just because Apple and Microsoft decides so, but that is another discussion. The reason you are here because you probably want your builtin camera to work with Ubuntu on your MacBook Air 🙂

Anyway, this is how I got the builtin camera to work under Ubuntu 24.04 LTS (these are my notes on how I did it from collected searches on the Internet):

sudo apt install git curl xzcat cpio
git clone https://github.com/patjak/facetimehd-firmware.git
cd facetimehd-firmware
make
sudo make install
cd ..
git clone https://github.com/patjak/bcwc_pcie.git
cd bcwc_pcie
make
sudo make install

Someone had noted that at this point a reboot was needed. I didn’t need to do that. It just worked by doing:

sudo depmod
sudo modprobe facetimehd