硬件要求:8G或以上的u盘,服务器支持从u盘启动。


原理及难点:

centos6.2的dvd文件非常大,超过4G,fat32文件系统不支持4G以上文件;而用于引导linux的文件系统恰恰就是fat32格式。

将u盘分成两个区,一个用于启动linux,为fat32文件系统;一个用于存放安装文件,为ext2文件系统。

这一制作过程需要在linux环境下制作。没有linux环境的朋友只有先用虚拟机安装一个linux系统。这一过程会碰到的问题主要有:guest上网、安装vmware tool、host和guest文件共享、guest访问host中的u盘。还有在制作过程中可能会碰到某些命令找不到,这需要用yum安装一些包。如:mkfs.vfat目录需要yum install dosfstools,还有syslinux等。



过程:

1、检查当前磁盘情况(在虚拟中需先挂载U盘,点击虚拟机右下角u盘图标,connect)

fdisk -l

u盘通常为/dev/sdb


2、分区

fdisk /dev/sdb

d # delete existing partition - repeat as necessary

n # new partition

p # primary

1 # partition number

<enter> # take the default

+100m # add 100 MB

t # change the type

1 # partition number

b # VFAT

n # new partition

p # primary

2 # partition number

<enter> # take the default

<enter> # take the default

a # toggle bootable flag

1 # partition number

w # write to disk


3、格式化

mkfs.vfat -n BOOT /dev/sdb1

mkfs.ext2 -m 0 -b 4096 -L DATA /dev/sdb2


4、重新拔插u盘


5、挂载u盘

mkdir /media/BOOT

mount /dev/sdb1 /media/BOOT

mkdir /media/DATA

mount /dev/sdb2 /media/DATA


6、将iso文件拷贝到u盘的/dev/sdb2分区。拷贝的时间比较长,需要半个小时,也可能要一个小时。be patient。拷贝之后可以做sha1sum校验,不过一般没有问题,这里就省了。除了拷贝iso文件外,还要拷贝dvd1.iso的p_w_picpath文件夹,这一点官网的文档没有提到,也许centos5.x的不用吧。

cd /dir/of/iso/p_w_picpaths #进入iso所在文件夹

for i in 1 2; do cp -v CentOS-6.2-x86_64-bin-DVD${i}.iso /media/DATA/; sync; done

mkdir /tmp/cdp_w_picpath

mount -ro loop CentOS-6.2-x86_64-bin-DVD1.iso /tmp/cdp_w_picpath

cp -rv /tmp/cdp_w_picpath/p_w_picpaths /media/DATA

umount /media/DATA


7、用syslinux在u盘的/dev/sdb1分区制作linux启动盘。如果没有安装syslinux,那么yum install syslinux。

syslinux --stupid /dev/sdb1

dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb

cd /media/BOOT

cp -rv /tmp/cdp_w_picpath/isolinux syslinux

mv syslinux/isolinux.cfg syslinux/syslinux.cfg

rm -f syslinux/isolinux.bin

umount /tmp/cdp_w_picpath


8、修改syslinux.cfg,在append语句后面加上 method=hd:sda2:/

vi syslinux/syslinux.cfg


#内容片段start

label linux

menu label ^Install or upgrade an existing system

menu default

kernel vmlinuz

append method=hd:sda2:/ initrd=initrd.img

#内容片段end


umount /media/BOOT


9、终于制作完成了,去试试吧。从此不用光驱安装linux,舒服!


另:买了一个16G的u盘,被这么折腾一下,只能用来装linux了,可是还将近10G的空间浪费掉了,这不是大材小用嘛。想了一下,由于windows只认第一个分区,于是u盘分成三个区,sdb1, 8G 自由分区; sdb2, 100M, 启动分区; sdb3, 8G, iso数据分区,这样就物尽其用了。