1

How to multiboot 2 Android-X86 distro?

I tried to make a dual boot with Bliss OS and PrimeOS.

I installed Bliss OS to its dedicated partition on my hard drive.
It was perfectly booting and working.
Then, I installed PrimeOS.
It was perfectly booting, but it changed the GRUB config and made it only possible to boot Prime.

I reinstalled Bliss OS, same thing.

I edited the GRUB config files, as mentioned here: https://unix.stackexchange.com/questions/492587/add-prime-os-android-x86-x64-to-grub-menu/519867?noredirect=1#comment1090351_519867

It seems only one of the occurrence of an Android-X86 ISO is able to boot in a given system.
How to fix the config file to boot several of them?

0

The way android_x86 treats EFI GRUB config is buggy or misunderstood. No matter what android_installation you choose from grub it will just boot the first found android system on the hard drive (and it seems that device.map that causes the pain).

Anyhow here is a workaround that I did to get stuff working:

I wiped 1 of my laptops for that (MacBook Pro 8,1 320GB hard drive)

  • Installed Linux (Kubuntu) choosing the whole hard drive as one part + efi

    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 298.1G  0 disk 
    ├─sda1   8:1    0   512M  0 part /boot/efi
    └─sda2   8:2    0 297.6G  0 part /
    
  • Installed PrimeOS choosing sda2 (DO NOT FORMAT), ignore EFI installation (optional)

  • Booted into Linux again and renamed primeOS installation folder

    sudo mv /android /primeOS
    
  • Installed Bliss OS the same way as PrimeOS + choose /system to be rw

  • Booted into Linux again, renamed Bliss OS installation folder

    sudo mv /blissos_x86.xx.xx /blissOS
    
  • While still on Linux added both Android installations to GRUB by adding the following lines to /etc/grube.d/40_custom

    submenu 'Android' {                                                                                                                                              
        menuentry 'primeOS' --class android  --class android-x86_64 --class gnu-linux --class os {                                                                     
            set root='hd0,gpt2'                                                                                                                                        
            linux /primeOS/kernel root=/dev/ram0 SERIAL=random logo.showlogo=1 androidboot.selinux=permissive quiet DATA= USB_DATA_PARTITION=1
            initrd /primeOS/initrd.img
        }
        menuentry 'blissOS' --class android  --class android-x86_64 --class gnu-linux --class os {
            set root='hd0,gpt2'
            linux /blissOS/kernel root=/dev/ram0 SERIAL=random logo.showlogo=1 androidboot.selinux=permissive quiet DATA= USB_DATA_PARTITION=1
            initrd /blissOS/initrd.img
        }
    }
    
  • Updated GRUB on Linux sudo update-grub, and made sure the tail of /boot/grub/grub.conf contains the Android entries

  • Rebooted and chose one of the Android installations and I meet an error telling me hd0,gpt2 not found bizarre o.O , after a bit of googling it says that it happens when running grub-install before generating or coping device.map to /boot/grub!
    To fix that I had to go back to /etc/grub.d/40_custom and change hd0 to hd1 in my case

NOTE for small hard drives like mine it's better to use one partition (ext4) shared between Linux and Androids, from all systems you enjoy the full free space.

| 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.