硬件要求: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、检查当前磁盘情况
 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的image文件夹,这一点官网的文档没有提到,也许centos5.x的不用吧。
 cd /dir/of/iso/images   #进入iso所在文件夹
 for i in 1 2; do cp -v CentOS-6.2-x86_64-bin-DVD${i}.iso /media/DATA/; sync; done
 mkdir /tmp/cdimage
 mount -ro loop CentOS-6.2-x86_64-bin-DVD1.iso /tmp/cdimage
 cp -rv /tmp/cdimage/images /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/cdimage/isolinux syslinux
 mv syslinux/isolinux.cfg syslinux/syslinux.cfg
 rm -f syslinux/isolinux.bin
 umount /tmp/cdimage


 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数据分区,这样就物尽其用了。