Thanks to a tip from Bryan, portable Ubuntu is now working for me, though not quite in the same way I envisioned it in the beginning.
I assumed that, in the end, I’d boot a real Linux partition with a real Linux boot loader. However, this is not the case. It seems that my laptop, and apparently many others, favor booting only the USB drives that contain certain partition types. Fat16 is one of them.
Booting the long way ’round (not to be confused with the wrong way ’round)
So instead of actually installing Linux, I ended up making a copy of the Ubuntu Live CD into a 750MB Fat16 partition. Then I used SYSLINUX to make that partition bootable. Then I included some Kernel options to overlay an 8GB ext3 partition on top of it at boot time in order to allow for real changes to be made to the working file system. This gives a two layered approach where the initial boot is done from Fat16, and at some point, the files in the ext3 partition are dropped on top of it and, from that point, all changes are reflected on the ext3 partition only. Then I formatted the remainder of the drive as Fat32 in order to allow it to be used as a data partition for multiple operating systems. And viola!
This has a few disadvantages. First, a 5400 Bus Powered USB drive is already pretty slow. This whole shuffle from one to the other makes it even slower. On my aging laptop I’m looking at about 4 to 5 minutes from power up to usable desktop. However, once booted, performance is as expected.
Secondly, upgrading the kernel is no longer an easy operation. Or, rather, I don’t think it will be. I haven’t actually tried it. Since the initial kernel is held on the Fat16 partition and the working system is held in the overlaid ext3 partition, I’m thinking that upgrading the kernel using standard tools would only upgrade files that couldn’t be reached at boot time. I think that, instead, if I need a kernel upgrade, I’ll have to update the kernel in the Fat16 partition, then update the support files on it and the ext3 partition. Probably a very manual process. Or, possibly, I could just recreate my Fat16 partition with a newer Live CD. I’m not sure. Anyone done this before?
Post Installation
The good news is, it’s working! Everything else is standard Linux massage, with which I’m sorely out of practice.
My Wireless PCMCIA card (Linksys WCP54G) was not immediately available. I had to use ndiswrapper and find a Windows XP driver in order to make it work. Not awesome, but it works. It’s nice that this is even an option.
Despite many people telling me otherwise, Java and Debian/Ubuntu have never been an easy thing for me to manage. The JVM that comes with Ubuntu 7.10 is a 1.5 JVM. For a specific application, I need JVM 1.6 or higher. I’m still struggling on how to upgrade this. I seem to be at the latest version available in the default repositories, but that’s using gij. Maybe I need another Java packaging or possibly another repository? Any advice?
I’m also in need of a photograph manager — tagging, sorting, thumbnails, resizing, etc. I’m hoping for something that will actually update the metadata in the file and that will read Nikon RAW (D300 NEFs). This way I can easily resynchronize in Lightroom to pick up these changes. At least that’s why my fingers are crossed. I’m looking at Google’s Picasa2 as well as GPhoto. Any other recommendations?
All in all, despite the migration pains, slow booting, and the search for new applications to fill in some gaps, I’m pleased with the results. Thanks to those who threw in their $0.02.
Multiverse contained both 1.5 and 1.6 for me. If you're getting 1.5, you can probably also get 1.6. (Or at least, I was able to simply install them).
mreynolds@onosendai:~$ dpkg -S /usr/lib/jvm/java-6-sun
sun-java6-bin: /usr/lib/jvm/java-6-sun
mreynolds@onosendai:~$ apt-cache showpkg sun-java6-bin
Package: sun-java6-bin
Versions:
6-03-0ubuntu2 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_gutsy_multiverse_binary-i386_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_gutsy_multiverse_binary-i386_Packages
MD5: 026bcd0fe69901775823d7dfb9da4a5a
Reverse Depends:
turkey,sun-java6-bin
sun-java6-plugin,sun-java6-bin 6-03-0ubuntu2
sun-java6-jre,sun-java6-bin
sun-java6-jre,sun-java6-bin 6-03-0ubuntu2
Dependencies:
6-03-0ubuntu2 – sun-java6-jre (5 6-03-0ubuntu2) unixodbc (0 (null)) libc6 (0 (null)) debconf (18 0.5) debconf-2.0 (0 (null)) libstdc++5 (0 (null)) binfmt-support (0 (null)) libasound2 (0 (null)) libgcc1 (0 (null)) libx11-6 (0 (null)) libxext6 (0 (null)) libxi6 (0 (null)) libxp6 (0 (null)) libxtst6 (0 (null)) libnss-mdns (0 (null)) binfmt-support (3 1.1.2)
Provides:
6-03-0ubuntu2 –
Reverse Provides:
Thank you! That was the trick. Didn't know the package name.
I'll add Multiverse and try that tonight.
(sent via BlackBerry)
Nice to hear that you got it working.
Did you consider putting the bootloader and kernel in a separate FAT16 partition and just having the rest of the system on a normal ext3 partition? That way, you can mount the FAT16 partition at /boot and allow kernel upgrades to be done as normal.
Your approach makes me nervous because the filesystem contents are going to change dramatically at some point in the boot process. I guess it's not a major problem in practice — filesystems get mounted pretty early on during boot — but it's just another thing you have to be weary of when installing/configuring software.
I did consider it.
The problem is I only know very litte about syslinux and kernel building. I was afraid I wouldn't be able to get it right without following the instructions I had which did it this way. I didn't want to spend hours more trying to figure out that one bit.
(sent via BlackBerry)
Yep, it's miserably slow. I use it primarily for what many people use Knoppix for – as a rescue system for dead Windows partitions. If I actually had to use it as a primary system daily I might have trouble.
Java is a pain but I believe I've used these instructions before (on a desktop install):
http://ubuntuforums.org/showthread.php?t=76702
I'll try them out. Thank you!
I'll try them out. Thank you!