Install RedHat RHEL 4 AS to the USB Hard Drive
1. Install RedHat RHEL 4 AS to the USB Hard Drive
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!
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.
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!
Comments