OK, I may have a solution for booting another distro with ASUS ExpressGate Cloud.
Originally Posted by Percius
But, as I haven't got any real ASUS box (at least not yet, I am planning to buy eee soon), I was testing the boot process only in VirtualBox (quite surprising that I could actually install ExpressGate from a Windows XP virtual machine - and it worked).
After experimenting with menu.lst located in C:\ExpressGate I realized that this particular version of Grub is somewhat crippled to say the least. And it's probably on purpose. It seems that it lacks any support of ext file system completely.
As soon as you try to change root to an ext partition it just gets stuck. However, it can start loading any kernel and initrd image present in the same (Windows) partition. That is until you try to set the root to a linux partition - in that case, you end up with kernel panic. In one word: this Grub is completely useless.
To "boot up our way from this mess" we need a better bootloader. So, I figured why not use Grub4dos. To make it clear, I wasn't trying to replace current Grub (maybe it could be done, but I'm not that capable hacker). I chose a simpler way.
This is what you should do:
1. Download Grub4dos from sourceforge (http://sourceforge.net/projects/grub4dos/)
2. Install your preferred linux distro (Ubuntu Natty in this example)
When you'll be setting up bootloader, and this is important, you should probably install it to the partition (e.g. /dev/sda3) not to MBR (we don't want to compromise Asus' way of booting) Also, we must not delete Windows partition, of course.
This is how the partition table could look like at the end:
(and Ubuntu's Grub2 goes to /dev/sda3)
/dev/sda1 [BOOT] NTFS - Windows loader
/dev/sda2 NTFS - Windows root (C:\)
/dev/sda3 ext4 - Ubuntu root (/)
3. Edit menu.lst and prepare Grub4dos
The original C:\ExpressGate\menu.lst looks like this:
Now, we'll just edit the first entry:
kernel /ExpressGate/vace ro no_win_installer=0 pci=nocrs i8042.reset quiet video=intelfb acpi_backlight=vendor acpi_display_output=vendor vaKBD=us VALANG=en_US fastreboot=no acpi_osi=Linux av_flag=1 rw_flag=1 debug_log=1 nwm=1
For this to work we'll need to copy grub.exe and grldr from grub4dos archive to C:\
and then we create second menu.lst file also in C:\ (it will be used for accessing our ext partition and loading Grub2)
It can look something like this:
From Grub4dos you could of course load Ubuntu kernel directly but this way you won't have to change anything manually after a kernel update (just let Grub2 take care of it).
title Ubuntu 11.04
4. Reboot the system and see what happens
OK, now I just wait for you to try it and confirm whether it works.
EDIT: Yes, it works just fine.
Unfortunately, owners of the older versions of ExpressGate cannot use this method because it is based on Splashtop and I've no idea how it boots... but maybe someone will figure it out eventually.