USB閃存存儲裝置(優盤)一般只有鑰匙扣大小,存儲容量多為32MB和64MB。由於具有輕巧精致、使用方便、便於攜帶等優點,特別是對比軟盤具有容量較大、安全可靠、讀取速度較快等特性,越來越多人使用這種裝置取代了軟驅與軟盤,在PC之間交換文件。目前新出的主板BIOS都支持USB軟盤和硬盤的啟動方式,這樣對於Windows 98的系統維護與安裝工作越來越方便。但是,廠家僅提供制作Windows 98啟動盤的制作工具,並不提供linux啟動盤的制作工具。在優盤上建立Linux啟動盤,對於系統維護人員具有更加實用的意義,你可以使用Linux 建立小巧的內核,建立網絡環境,快速地判斷和排除網絡故障與傳送文件。本文以Red Hat 8.0為例,使用朗科的雙啟動型優盤建立優盤的Linux啟動盤。
下載相關軟件:e3,bvi,Linux內核。
編譯內核
首先計算機的主板必須要支持USB硬盤的啟動方式,並且所使用的優盤是啟動型優盤。
我以Linux-2.4.20為例說明。編譯時一定要注意不要編譯不必要的模塊,如聲卡驅動等驅動模塊,使編譯的內核盡可能小一些。由於要支持優盤啟動,必須將SCSI設備、usbcore、usb-storage、Loopback device support、RAM disk support和initrd等編譯到內核中。
許多人會問,usb-storage模塊已經包括在內核了為什麼還要建立 initrd.img文件?這是由於優盤的初始化過程比執行/sbin/init慢,導致內核已經啟動完成了,優盤還沒有完成初始化工作,因此根文件系統沒有加載,這時執行/sbin/init命令肯定不成功。通過建立initrd.img文件,在啟動內核時加載initrd.img文件到內存中,等待3 秒使優盤完成初始化工作,再執行/sbin/init指令。具體操作步驟如下。
1.建立initrd.img文件
# mkdir -p /mnt/initrd # cd /tmp # mkinitrd /tmp/initrd.gz 2.4.20-usb
2.解壓initrd.img文件,修改啟動腳本linuxrc
# gunzip initrd.gz # mount -o loop /tmp/initrd /mnt/initrd # cp /sbin/busybox /mnt/initrd/bin # cd /mnt/initrd/bin # ln -s busybox sleep # vi /mnt/initrd/linuxrc
加入如下內容:
echo 'wait 3 seconds.....' /bin/sleep 3
3.重新生成initrd.img文件
由於缺省建立的initrd文件比較大(為4MB),為了加快優盤的啟動,必須減小它。具體操作如下:
# mkdir -p /mnt/initrdusb # cd /tmp # dd if =/dev/zero of= /tmp/initrdusb bs=1M count=1 # mke2fs -m 0 initrdusb # mount -o loop /tmp/initrdusb /mnt/initrdusb # cp -a /mnt/initrd/* /mnt/initrdusb # umount /mnt/initrd # umount /mnt/initrdusb # cd /tmp # gzip -9 initrdusb # cp initrdusb.gz /boot/initrd-2.4.20-usb.img