Plone技术论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 80|回复: 0

制作linux usb引导盘

[复制链接]
发表于 2018-9-5 20:47:23 | 显示全部楼层 |阅读模式
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!


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|Plone技术论坛 ( 湘ICP备07003419

GMT+8, 2018-12-17 15:14 , Processed in 0.153699 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表