[1]. centos6.2的dvd文件非常大,超过4G,fat32文件系统不支持4G以上文件;而用于引导linux的文件系统恰恰就是fat32格式。
[2]. 将u盘分成两个区,一个用于启动linux,为fat32文件系统;一个用于存放安装文件,为ext2文件系统。
[3]. 这一制作过程需要在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]. 安装syslinux,用syslinux在u盘的/dev/sdb1分区制作linux启动盘,覆盖u盘的mbr
yum -y install syslinux
syslinux --stupid /dev/sdb1
dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb
[5]. 重新插拔u盘,mount BOOT和DATA分区,mount第一个iso,复制启动数据到BOOT分区,再把iso都复制到DATA分区,然后umount 分区
mkdir -p /media/BOOT
mount /dev/sdb1 /media/BOOT
mkdir -p /media/DATA
mount /dev/sdb2 /media/DATA
mount -o loop CentOS-6.0-x86_64-bin-DVD1.iso /media/iso/
cp -rv /media/iso/images /media/DATA
cp -rv CentOS-6.0-x86_64-bin-DVD*.iso /media/DATA
umount /media/DATA
cp /media/iso/isolinux/isolinux.bin /media/BOOT/syslinux.bin
cp /media/iso/isolinux/isolinux.cfg /media/BOOT/syslinux.cfg
cp /media/iso/isolinux/vmlinuz /media/BOOT
cp /media/iso/isolinux/initrd.img /media/BOOT
[6]. 编辑/media/BOOT/syslinux.cfg
default CentOS(注意这项和下面的label CentOS一定要对应)
prompt 0
label CentOS
kernel vmlinuz
append initrd=initrd.img method=hd:sdb2:/
#内容片段end
umount /media/BOOT
注意:isolinux目录中都是引导程序,都放入sdb1中,其中syslinux.bin syslinux.cfg vmlinuz initrd.img这些属于基本引导程序,除此之外的属于增强引导功能的一部分拓展程序
images目录中的都是安装过程文件,都应与系统镜像放入sdb2中,其中install.img是安装程序引导的核心,用于设置安装信息和系统分区等安装前期工作。