Skip to content
Blog Install RedHat RHEL 4 AS to the USB Hard Drive

Install RedHat RHEL 4 AS to the USB Hard Drive

Install RedHat RHEL 4 AS to the USB Hard Drive

1. Install RedHat RHEL 4 AS to the USB Hard Drive

Boot RHEL4 Installation CD, enter “expert”. Partition your USB Hard drive manually. In my case, I created 1GB /dev/sda1 mounted as /boot and /dev/sda5 mounted as / (root), I also have /dev/sda7 SWAP partition.

After installation, boot from the RHEL4 Installation CD again, type “linux rescue”, don’t let the installer mount the USB hard drive partitions.

2. Mount partitions

# mount /dev/sda5 /mnt/source
# mount /dev/sda1 /mnt/source/boot
# chroot /mnt/source

3. Restore initrd image

# cp /boot/initrd-2.6.9-5.EL.img /tmp/initrd.gz
# cd /tmp
# gunzip initrd.gz

# mkdir /tmp/a
# cd /tmp/a
# cpio -i < /tmp/initrd
(Output: 2078 blocks)

4. Edit init script to load USB drivers

# vi /tmp/a/init


#!/bin/nash
mount -t proc /proc /proc setquiet echo Mounted /proc filesystem echo Mounting sysfs mount -t sysfs none /sys echo Creating /dev mount -o mode=0755 -t tmpfs none /dev mknod /dev/console c 5 1 mknod /dev/null c 1 3 mknod /dev/zero c 1 5 mkdir /dev/pts mkdir /dev/shm echo Starting udev /sbin/udevstart echo -n “/sbin/hotplug” > /proc/sys/kernel/hotplug
echo “Loading scsi_mod.ko module”
insmod /lib/scsi_mod.ko
echo “Loading sd_mod.ko module”
insmod /lib/sd_mod.ko
echo “Loading libata.ko module”
insmod /lib/libata.ko
echo “Loading ata_piix.ko module”
insmod /lib/ata_piix.ko
echo “Loading jbd.ko module”
insmod /lib/jbd.ko
echo “Loading ext3.ko module”
insmod /lib/ext3.ko
######################################
echo “*** Loading usb-storage ***”
insmod /lib/usb-storage.ko
echo “*** Loading usb-uhci ***”
insmod /lib/ehci-hcd.ko
echo “*** Sleeping 5 seconds ***”
/bin/sleep 5

/sbin/udevstart
echo Creating root device
mkrootdev /dev/root

echo “*** Reread partition table ***”
/sbin/sfdisk -R /dev/sda

umount /sys
echo Mounting root filesystem
mount -o defaults –ro -t ext3 /dev/root /sysroot
mount -t tmpfs –bind /dev /sysroot/dev
echo Switching to new root
switchroot /sysroot
umount /initrd/dev

5. Copy USB drivers

# cd /lib/modules/2.6.9-5.EL/kernel/drivers
# cp usb/host/ehci-hcd.ko /tmp/a/lib
# cp usb/storage/usb-storage.ko /tmp/a/lib
# cp scsi/scsi_mod.ko /tmp/a/lib
# cp scsi/sd_mod.ko /tmp/a/lib

6. Copy executables and dependent libraries

# ldd /bin/sleep
# ldd /sbin/sfdisk
# cp /lib/tls/libm.so.6 /lib/tls/librt.so.1 /lib/tls/libc.so.6 /lib/tls/libpthread.so.0 /tmp/a/lib/tls
# cp /lib/ld-linux.so.2 /tmp/a/lib/
# cp /bin/sleep /sbin/sfdisk /tmp/a/bin/

7. Re-Make the init image

# cd /tmp/a
# find . | cpio -c -o | gzip -9 > /boot/usbinitrd.img

(output: 6077 blocks)

8. Edit grub.conf to boot from the new usbinitrd.img

# vi /boot/grub/grub.conf

Reboot your system, Modify your BIOS to make USB Drive boot first, Enjoy!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.