I am trying to set up a dualboot with Android and Ubuntu. The boot loader is GRUB. GRUB is installed in the android partition.

When GRUB starts, the Android menu works, and Android correctly runs.

When I select the Ubuntu boot, it gives the error Error 15: File not found.

If I change the root (hd0,2) to another value that points to the swap, then it raises the error of "unable to mount the partition". So I have reasons to belive that the root parameter is right.

My doubt is the following:

The Ubuntu vmlinuz-* initrd.img-* files are on the Ubuntu partition, on the path /boot/. Since Grub is in the Android partition, should I put those files in the Android partition too?

So, I do not understand how actually GRUB should reach the image file, since, as far as I know, at this point, there are no mounted partitions.


This is my menu.lst:


title Android-x86 4.4-r2
    kernel /android-4.4-r2/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/android-4.4-r2
    initrd /android-4.4-r2/initrd.img

title       Ubuntu 14.04 Hd0,2
root (hd0,2)
kernel      /boot/vmlinuz-3.16.0-30-generic root=UUID=69c67260-525d-4f53-b924-e6489dc22942 ro quiet splash 
initrd      /boot/initrd.img-3.16.0-30-generic
| improve this question | | | | |

It's easiest for you if you install them to Ubuntu's partition to /boot. GRUB will work and boot Ubuntu for you even if you install them to Android partition but you'll lose little bit on Ubuntu's scripts. Another solution is to keep kernel and initrd in Android's /boot and symlink Android's /boot to Ubuntu's /boot. Both work.

In general, kernel and initrd can be on any GRUB accessible partition. GRUB reads them to memory, you pass root=UUID=xxxxxxxxx cmdline to kernel to let the kernel know where's the root and kernel takes it from there. GRUB can read vast majority of filesystems but some may need adjustment in form of module preloads. LVM or full disk encryption (LUKS) spring to mind. Arch Wiki as very good article on GRUB configuration (like most other things GNU/Linux).


Saw your edit. Seems you're running GRUB Legacy instead of GRUB2. In that case, wiki page is this.

EDIT 2: Clarified second suggested solution where to actually keep the kernel/initrd.

| improve this answer | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.