I have a triple boot system (Win10, Ubuntu and Manjaro Linux) and after upgrading to Ubuntu 18.04 the grub bootloader from Manjaro (grub) was replaced by the one that Ubuntu uses (grub2). Windows 10 and Ubuntu started without a problem but Manjaro Linux ended the boot with a kernel panic. The complete error message was:
– -[end Kernel panic – not syncing: VPS: Unable to mount root fs on unknown-block (0,0)
The way to fix this is not that difficult, what you need to do is to replace some lines from the Ubuntu grub2 config file with some lines from the Manjaro Linux grub config file. To easiest way to make changes to your Ubuntu grub2 configuration file is with grub customizer. To install grub customizer on Ubuntu follow the steps below. If you already have grub customizer installed you can skip the steps below 😉
To install grub customizer open a terminal window (press Ctrl+Alt+T) and copy+paste the following lines:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
When installed close the terminal window and press Alt+F2 and type grub-customizer to start it. When the current configuration is loaded scroll down until you see the Manjaro Linux entries. To edit the menu entries click with your right mouse button on an entry end select Edit. In the Entry editor you see the (faulty) code used to boot Manjaro Linux. The entries used in the Manjaro Linux grub configuration file work so we are going to use those entries as an replacement for the the faulty ones in the grub2 configuration file. For this tutorial i will be replacing the code for the Manjaro Linux (Kernel 4.14.47-1-MANJARO x64) (on /dev/sdh7) entry. You can use these steps for every Manjaro Linux kernel you want to get working again, i used these steps to fix 3 out of 5 Manjaro Linux kernel panics.
Edit option for the menu entry.
The faulty code that needs to be replaced
To get to the working menu entry code you need to open the boot/grub folder on the partition where you’ve installed Manjaro Linux, then open the grub.cfg file using an terminal session. Click with your right mouse button somewhere in the folder and select Open in Terminal. Now copy+paste the following line in the terminal window:
sudo gedit grub.cfg
Opening manjaro /boot/grub folder in a terminal window
Opening Manjaro’s /boot/grub/grub.cgf file as root
Make it easy for yourself and press Alt+F2 and do a search for the kernel menu entry you want to replace. In my case i searched for: 4.14.47-1 and after hitting Enter the code related to the kernel i needed popped up. When comparing the grub2 menu entry and the grub menu entry you will see that they both use:
Now copy the all the lines starting from insmod part_msdos until the } character above the menu entry for the Manjaro Linux fallback mode and paste that code into the Entry editor from grub customizer. When done click on the OK button followed by clicking on the Save button so the changes will be applied to you grub2 configuration files.
Copying the working menu entry code
Paste the working menu entry code
Click OK to confirm the changes
Save and update the new grub2 configuration file
When done close grub customizer and open a terminal window (press Ctrl+Alt+T) and copy+paste the line below to update your grub2:
When done reboot your system, select the kernel entry you changed and your Manjaro Linux should boot again… It worked for me so i assume and hope it will work for you. Like i already mention i fixed 4 out of 5 (including this kernel panic) kernel panics using this tutorial. As long as you copy the right parts of code you can apply this for all the kernels you installed on Manjaro Linux.