目標:通過現有LINUX系統製作出USB引導盤,達到對系統起動更深一層理解的目的.
準備:rpm包兩個:grub和
filesystem, 2G U盤
製作步驟:
1、清空U盤MBR引導代碼:(本機USB設備認作sdb)
dd if=/dev/zero of=/dev/sdb bs=1024 count=1
2、格式化成ext3格式
fdisk /dev/sdb #重新分區U盤並標記為可引導
partprobe /dev/sdb #使分區生效
mke2fs -j /dev/sdb1 #格式化成
ext3文件系統mount /dev/sdb1 /mnt #掛載到/mnt目錄下
3、構建系統安裝樹(文件系統)
rpm -ivh --force --nodeps --root=/mnt filesystem-
將本地系統起動的文件複製到U盤上:
cp /bin/* /mnt/bin/
cp /sbin/* /mnt/sbin/
cp -rf /lib/* /mnt/lib/
4、安裝grub(grub可執行文件)
rpm -ivh --force --nodeps --root=/mnt grub-0.97-13.rpm
5、 cp /usr/bin/* /mnt/usr/bin/
cp /usr/bin/* /mnt/usr/sbin/
#cp /usr/lib/* /mnt/usr/lib/ #這個目錄可以不拷,只是一些庫用不了,但基本的已夠了(
cp -rf /boot/* /mnt/boot/
#/mnt/boot/目錄下的文件: ./grub vmlinuz-
#
其他的可以保留#修改/mnt/boot/grub目錄下的相應文件內容:
/mnt/boot/grub/device.map
內容:(hd0) /dev/sdb
/mnt/boot/grub/grub.conf
內容: default=0
timeout=5
title USB Linux Server (
root (hd0,10)
#起動進入/bin/bash
kernel /boot/vmlinuz-
initrd /initrd.img #一會新建,名字先定義好
6、複製fstab和mtab
到U盤相應位置,修改其內容cp /etc/fstab /mnt/etc/fstab
內容:/dev/sdb1 / ext3 defaults 1 1
cp /etc/mtab /mnt/etc/mtab
內容:/dev/sdb1 / ext3 rw 0 0
7、切換到
U盤系統下,安裝grubchroot /mnt
mkdir /dev/sdb b 8 16
mkdir /dev/sdb1 b 8 17
grub-install /dev/sdb #grub安裝
exit
8、建立initrd.img
#在
EL5里只需usb_storage,在EL4里還要有sd-mod,scsi-mod,uhci_hcd,ehci_hcdmkinitrd --with=usb_storage /mnt/boot/initrd.img `unam -r`
#注意順序不能錯
9、sync #同步下數據
10、umount /mnt
11、重啟,用USB引導測試.
註:這個項目只是加深對系統啟動進一步的了解,企業中並不一定用的上,不同的機器對U盤的識別不一樣,在這台機器上是/dev/sda,可能另一台就是/dev/sdb
,如果真出了問題,還是光碟更好一些.不過用類似的方法可以做一些自己的發布版……
[火星人 ] USB引導盤製作已經有239次圍觀