USB引导盘制作

 
简介:目标:通过现有LINUX系统制作出USB引导盘,达到对系统起动更深一层理解的目的。准备:rpm包两个:grub和filesystem, 2G U盘 制作步骤: 1、清空U盘MBR引导代码:(本机USB设备认作sdb) dd if=/dev/zero of=/dev/sdb bs=102 ...
 

目标:通过现有LINUX系统制作出USB引导盘,达到对系统起动更深一层理解的目的。

准备:rpm包两个:grubfilesystem 2G U

制作步骤:

1、清空UMBR引导代码:(本机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-2.4.0-1.rpm

将本地系统起动必须的文件复制到U盘上:

cp /bin/* /mnt/bin/

cp /sbin/* /mnt/sbin/

cp -rf /lib/* /mnt/lib/

4、安装grubgrub可执行文件)

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/ #这个目录可以不拷,只是一些库用不了,但基本的已够了(800M左右)

cp -rf /boot/* /mnt/boot/

#/mnt/boot/目录下必须的文件: ./grub vmlinuz-2.6.23 config-2.6.18-53.el5

# 其他的可以保留

#修改/mnt/boot/grub目录下的相应文件内容:

/mnt/boot/grub/device.map

内容:(hd0) /dev/sdb

/mnt/boot/grub/grub.conf

内容: default=0

timeout=5

title USB Linux Server (2.6.23)

root (hd0,10)

#起动进入/bin/bash

kernel /boot/vmlinuz-2.6.23 ro root=/dev/sdb1 rhgb quiet init=/bin/bash

initrd /initrd.img #一会新建,名字先定义好

6、复制fstabmtabU盘相应位置,修改其内容

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盘系统下,安装grub

chroot /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_hcd

mkinitrd --with=usb_storage /mnt/boot/initrd.img `unam -r`

#注意顺序不能错

9sync #同步下数据

10umount /mnt

11、重启,用USB引导测试。

注:这个项目只是加深对系统启动进一步的了解,企业中并不一定用的上,因为不同的机器对U盘的识别不一样,在这台机器上是/dev/sda,可能另一台就是/dev/sdb,如果真出了问题,还是光盘更好一些。不过用类似的方法可以做一些自己的发布版……