硬件要求:
8G或以上的u盘,服务器支持从u盘启动。
原理及难点:
Centos6.4的dvd文件非常大,超过4G,fat32文件系统不支持4G以上文件;而用于引导linux的文件系统恰恰就是fat32格式。
解决办法:将u盘分成两个或多个分区,一个用于启动linux,为fat32文件系统;一个用于存放安装文件,为ext2文件系统。
过程:
1、检查当前磁盘情况
sudo fdisk -l
2、分区
sudo fdisk /dev/sdc
d # 删除分区 – 必要时可重复使用,只有一个分区时自动将该分区删除,不会出现选择项
1 # 删除第几个分区,有可删除分区号1-4
n # 创建新的分区
p # 创建主分区,e为扩展分区
1 # 选择分区号
<enter> # 直接按回车键设置默认起始扇区(也可手动输入起始扇区,但不建议)
+100M # 设置该分区大小,此为设置为100M;100K为:+100K;100字节为:+100;直接输入数字则表示该分区结束于第几扇区;直接回车则表示使用剩余所有空间。
t # 更改分区的文件类型
1 # 要更改的分区号
B # 更改为:VFAT(即FAT32)。注意大小写!
n # new partition
p # primary
2 # partition number
<enter> # take the default
<enter> # take the default
a # 设置启动分区
1 # 将启动分区指定为第几分区
w # 保存到硬盘(U盘),q为不保存直接退出
3、格式化
sudo mkfs.vfat /dev/sdc1
sudo mkfs.ext2 /dev/sdc2
4、创建挂载目录
5、挂载iso
6、挂载u盘
sudo sudomount /dev/sdc2 usb/
7、将iso文件拷贝到u盘的/dev/sdc2分区。
拷贝的时间比较长,需要半个小时,也可能要一个小时。耐心等待。拷贝之后可以做sha1sum校验,不过一般没有问题,这里就省了。除了拷贝iso文件外,还要拷贝dvd1.iso的image文件夹,这一点官网的文档没有提到,也许centos5.x的不用吧。
sudo cp -v CentOS-6.2-x86_64-bin-DVD*.iso usb/
sudo cp -rv iso/images usb/
sudo umount usb/
8、用syslinux在u盘的/dev/sdc1分区制作linux启动盘。
如果没有安装syslinux,那么sudo apt-get install syslinux
sudo syslinux -s /dev/sdc1 # 设置到启动盘,如果非默认第一分区为启动盘,则将/dev/sdc1改为相应的分区,如/dev/sdc2
sudo dd if= /usr/lib/syslinux/mbr.bin of=/dev/sdc # mbr.bin文件所在地方不一定一样,我的就在这。of后面的目的地就是/dev/sdc,而不是/dev/sdc1或其他
sudo mv usb/syslinux/isolinux.cfg usb/syslinux/syslinux.cfg
9、修改syslinux.cfg。
在append语句后面加上 method=hd:sda2:/ # 注意:这里的hd:sda2:/指的是安装的ISO文件所在的分区,其中sda是不能改的,从U盘启动时就默认是sda驱动器,但如果ISO文件在U盘的第三个分区,则应改为:hd:sda3:/
sudo vi usb/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
sudo umount usb/