To supplement storage space with the initial purchase of the Aspire One (8 GB SSD version), I bought a 16 GB Transcend TS16GBSDHC6 card that integrates nicely into the left card slot. The pre-installed Linux Linpus just wasn't what I needed since I use many networking tools at work and at home. I initially ran Ubuntu 8.041 with the /home partition on the 16 GB SDHC card. I discovered Eeebuntu while searching for information on how to boot and run Linux off a SDHC card. The goal was of multi-boot installations of Ubuntu, with one install specifically loaded with the tools I use at work. The Acer Aspire One BIOS does not 'see' the card, so you can't boot from it using the [F12] startup key (More on the SDHC boot up further in this article).

I had a similar situation with an old computer where I had an installation on a USB key but the BIOS couldn't boot from USB. Since there was already a linux installation on the internal hard drive, I pretty much did the same thing as you did for your SDHC card : copied the kernel and initrd to the internal hard disk, modified grub, etc.

However, I soon realised that this technique would cause problems if ever the kernel were updated through apt-get, since the new kernel would be put in the /boot of the USB key, and the kernel on the internal hard drive would stay untouched. Solution is simple enough, copy over the new kernel and initrd each time it gets updated. Although it would be nice if there was a way to automate this instead of having to do it each time.

Because in that case the kernel would either be on the flash or on the internal hard drive. If I needed only to plug the usb key into that single computer, then it would be fine. But I needed to use the USB key as a live on more than one computer.