View Full Version : HDD install on USB drive

09-09-2005, 01:30 AM

currently the installer refuses to install on an USB HDD drive. it should be possible though - this is just a suggestion.


09-09-2005, 01:54 PM
Yes, it is possible. But a little bit tricky.

09-10-2005, 01:33 AM
any info would be appreciated :)

the installer refuses to install to /dev/uba1 (the USB drive is seen as such when booting from CD; Funny: one HDD installation I have sees it as /dev/sda1; another HDD installation see it as /dev/uba1)

so the only option I see is to plunge into the install scripts...


09-16-2005, 01:01 AM
I have similar post in this thread, http://www.knoppix.net/forum/viewtopic.php?t=20539

Be warned, Knoppix is designed to be a LiveCD in principle. The use and installation to any media are at your own risks.

I haven't tried the installation of Knoppix-4.0 DVD version, but installing Knoppix to a USB is indeed possible, but tricky.

I have installed successfully Knoppix3.9 to a USB HDD, major steps are:

1. Prepare a custom kernel without the ub support
2. Install Knoppix into USB HDD, GRUB will fail at this point because of the nasty ub support
3. Reboot an existing Linux system (or other LiveCD without ub), chroot into the Knoppix-partition in your USB HDD and install the custom kernel from (1).
4. Make few changes to the mkinitrd.conf and modules in the /etc/mkinitrd directory
5. Create a initrd for this kernel so that the kernel is capable to find the necessary modules during boot process.
6. Install GRUB into the MBR of your USB HDD

I know Knoppix-4.0 already get rid of the ub, so it may be more straightforward.

If you are still interested in the steps as described above, I may write in more details.

If you don't want to go thru these tedious steps, then the easiest way is to download and install the latest version of Kanotix (bleeding edge variant of Knoppix).
I assume you can install Knoppix to the USB HDD and just having problems with the installer. As you are familiar with the mknod stuff, this may be easier for you. Follow the steps that are applicable to you.

In step 1, you need to build a custom kernel without the ub. Make sure:

CONFIG_BLK_DEV_UB=n (this entirely eliminate ub support in kernel)
CONFIG_SCSI=m (default is y, but you need the presence of scsi_mod module to build initrd)
CONFIG_BLK_DEV_SD=m (default is y, but you need the presence of sd_mod module to build initrd)

In step 4,
4.1 make the following changes to /etc/mkinitrd/mkinitrd.conf

MKIMAGE = 'mkext2fs -f %s %s > /dev/null'

This allows a 5 seconds delay because the init script in initrd have to recognize your USB device before init can mount it (as your root filesystem is resided in USB HDD). Otherwise, init will attempt to mount the root filesystem without recognizing it and lead to kernel panic.

The -f flag is to force mkext2fs to build a initrd in ext2 filesystem instead of cramfs. This gives you an advantage that the resulting initrd image could be gzip uncompressed, mounted and allow you to make changes later, when necessary.

4.2 add the followings to /etc/mkinitrd/modules


These are the necessary kernel modules for your initrd.

In step 5, the mkinitrd script in Knoppix-3.9 does not work properly. To build the initrd, while you are still as root, you should:

mkinitrd -k -o d00m3d.img your-kernel-version

Without the -k flag, mkinitrd seems have created the initrd (d00m3d.img) but it is deleted automatically for unknown reasons! So, use the -k flag to keep the temporary working directory in /tmp.

The d00m3d.img is actually a gzip compressed image and you should move it to /boot. To continue:

cd /tmp/mkinitrd.xxx/initrd
mv d00m3d.img /boot/initrd.img-xxxxxx

In step 6, you may install GRUB to the MBR of your USB HDD manually. Assume you have the following HDD layout during Linux installation:

/dev/sda is your USB HDD
/dev/sda1 is your root partition /

Your /dev/sda should be recognized as (hd1) by GRUB.


1. Become root
2. Run grub
Probing devices to guess BIOS drives. This may take a long time.

3. In grub shell, run the following commands:
>root (hd1,0)
>setup (hd1)

Here, (hd1,0) correspond to your /dev/sda1 which is your / (more precisely, /boot, i.e. the place where your kernel image and initrd are located).
(hd1) is the MBR of your /dev/sda (USB HDD)

That's it. However, you need to edit your /boot/grub/menu.lst as well.

If you setup your BIOS to boot your USB HDD, grub will recognize your USB HDD
as the first hard disk to boot, i.e. hd0, not hd1. In this case, your have to write the menu.lst as:

title Knoppix on USB HDD.....
root (hd0,0)
kernel vmlinuz-xxxxx .....
initrd initrd.img-xxxxx


Good luck!

10-08-2005, 05:01 PM
I installed knoppix on a harddrive. I then took it out of the laptop and put it in a usb enclosure. I need a way to boot to it from cd because I do not have boot usb option in my motherboard. I suspect i will have to do a rescue and reconfigure grub/lilo also. any ideas on doing this?

10-08-2005, 10:48 PM
You may also try this way to boot Knoppix 4.02 from a USB drive: http://www.knoppix.net/forum/viewtopic.php?p=93758#93758
This thread also describes how to run knoppix from the hdd without creating a new partition for knoppix and without touching the mbr or the boot sector of your disk/partition. This is a very clean way and much faster way to run Knoppix than from the cd/dvd/usb. Please give me some feedback and let me if it works for you.
Best Regards, Gilles