Ubuntu "Stick" Blues - or USB for short
Once, my systems hard drives were unbootable. That was a problem, given my CD-ROM drives were not connected anymore. I thought of many solutions. Buying a Promise-IDE card to connect the CD-ROM-devices via PCI. Buying new SATA-DVD drives. Buying SATA-to-IDE connectors. But I decided not to buy anything, and boot a recovery OS from USB instead when needed. Sure, I could open the case, disconnect the IDE drives, connect the CD-ROM drives, boot a LiveCD from one and burn a CD on the other and revert all connections afterward. But after doing that once I decided it was 'too clumsy'.
My first try at booting from USB was with DSL. It booted without a glitch, at the first try, but didn't support my network card given it's 2.4 kernel. Later, as a Gentoo user, I became tired of compiling KDE and found out that Kubuntu is recommended for developing KDE. I decided I was going to use Kubuntu, especially given all the fuzz 'bout 9.10. "After all, it's supposed to be a modern distro leading us into the new decade, those of netbooks without CD-ROM!" I contemplated. Boy was I wrong.
Somebody was so nice to make UNetBootin. You just choose an OS and version from a list, and it makes a bootable USB drive for you. Or if the OS is not in the list, you give it an ISO file, and same result. I have to stress UNetBootin was designed to boot Ubuntu without CD-ROM, exactly what I wanted!
Well, it was not that easy. Kubuntu wouldn't boot. Not 9.10 RC. Not 9.04. Not Daily Build. Not when choosing it from the UNetBootin list, not when providing ISO's to UNetBootin. Not Kubuntu alternate. Not when manually running / editing the configuration of syslinux. Not when copying the kernel / initrd to the harddisk and manually using GRUB to boot. Not with Ubuntu 9.04. Not from SD over USB, not from my USB memory stick. And not in many combinations of these.
There were several manners how this failed. For example, because the Debian-installer wants you to have a CD-ROM-device. It won't let you continue otherwise! This can be circumvented by loop-mounting in busybox, and then using /dev/loop0 as a CD-ROM-device, just to make the freakin' Debian installer happy. What nonsense. Please note you can't loop mount to /mnt/0 because busybox doesn't want to accept that target, it only seems to accept a dir in the root directory.
After that, it failed after starting CUPS and tuning my hard disks. It just hung there.
That's why I decided to try something else. I provided a TinyCore ISO to UnetBootin and it booted without a glitch. Could you believe that? It ran X, and I was able to install things using a GUI and to browse using either Opera or Firefox. Quite pleasant actually, apart from the graphics being a bit ugly due to 'simplified' drivers (VESA in combination with TinyX I guess) and resolution.
Then I found a comparison of OpenSuse with Karmic, both using USB to boot. My OpenSuse try failed, because I didn't notice I was supposed to dd the ISO-image to a block device (/dev/sdi) and not to a partition (/dev/sdi1). This caused a major failure because Linux is not able to delete an ISO9660 file system. Believe me, because I and others tried. Luckily there is decent stuff beyond Linux such as VirtualBox and Windows XP, so this problem can be fixed after all, but not in Linux only.
With Mandriva Spring One / Free I didn't make the same mistake, and apart from being a bit ugly it worked OK. However, it didn't come with a CD-burning program, because I just decided maybe I should open my case after all to burn a Kubuntu CD-ROM (while booting from USB).
My 80 MB command-line only Gentoo 2008 netinstall also booted flawlessly from USB.
After that I found out about PendriveLinux, but it tells you to burn an Ubuntu CD-ROM, and after booting from that CD-ROM, go to the menu and choose 'make LiveUSB'. Thanks for the effort, but how annoying, I don't have a #%^*$ CD-ROM device!
So I looked further, and finally found out about the 'detect-cdrom/try-usb=true' kernel parameter, which you should add just to make sure the Debian-installer understands not every human being has a CD-ROM-drive. Great, to be sure I copied all syslinux-config files to the root of the filesystem of the USB-drive and ran syslinux on the FAT-partition. Then Kubuntu finally booted. Into the command line, that would be. So, I continued in the Gentoo way with X -config, and as sudo I tried to run with that config, but it wouldn't let me. After copying the file to /etc/X11/xorg.config it failed because it couldn't find /dev/fb0. Too sad. Even worse, the CLI didn't come with lynx or links, so I was not able to look for the error directly. So I fiddled with apt-get - wihtout success. Please note in 'user-unfriendly' distributions like the 50MB netinstall from Gentoo 'links' is provided by default.
So as usually (this happened to me in Fedora before) I continued by replacing the nv driver (in Fedora it was Nouveau) with VESA, and that's how I finally was able to boot Kubuntu from USB. "How is this supposed to be user friendly?" I asked myself.
Only two things would have to be changed to fix this: Add the try-usb flag by default (or why not just fix the Debian installers assumptions?) and a bulletproof X configuration, which has been proposed before. Maybe provide an ISO which you can just dd, in the way Mandriva and OpenSuse do. Until then, I will continue to have the Ubuntu memory-'Stick' Blues.
Disclaimer: Yes, I know, I should have submitted bugs, asked on IRC and everything. But I wasn't expecting to participate in a development process, because if I was, I would happily continue to use Gentoo. I was expecting to run something for which participating in a development process was not necessary in the first place!
|Subject||Topic Starter||Replies||Views||Last Post|
|Grub2 boot Live CD from hard disk||Dietrich||10||4,655||Oct 30, 2009 9:56 PM|
|That's odd.||DigitaLink||3||1,302||Oct 30, 2009 4:52 PM|
|Debian should work||huiac||6||1,401||Oct 30, 2009 2:24 PM|
|USB-related||vainrveenr||0||1,223||Oct 29, 2009 10:41 PM|
You cannot post until you login.