这几天一直在研究u盘全自动安装centos,把具体过程分享一下供参考,同时也做为我个人的一个备忘

主要准备以下4样东西

1、8G以上u盘一只
2、CentOS镜像CentOS-6.2-x86_64-bin-DVD1.iso(minimal、netinstall之类的镜像不行)
3、linux系统自带syslinux工具
4、kickstart方式安装系统所需文件ks.cfg
格式化u盘成vfat格式,假如您的u盘太大了想分很多个区,ok没问题,用fdisk
先fdisk看看u盘是sdX?假设是sdc,确定此盘内没有需要保留的数据,再进行后续操作
现在对u盘进行分区,至少要分两个区,用来做这个全自动安装u盘,但是如果还需要其他储存分区,就自己再分
sudo fdisk /dev/sdc
必有的两个分区都是primary,第一个给250M,设定类型按t然后按b选择w95 fat32类型,按a表示可启动分区,第二个区划分至少5G,类型默认(linux)
分好区后,按w将更改写入u盘
格式化u盘这个分区为vfat格式和ext2格式(其他格式不认)
sudo mkfs.vfat -n BOOT /dev/sdc1
sudo mkfs.ext2 -m 0 -b 4096 -L DATA /dev/sdc2
拔出再插入u盘,两个分区分别自动挂载在/media/BOOT和/media/DATA
将镜像挂载好,并复制文件
sudo mkdir /media/cd
sudo mkdir /media/DATA/centos6
sudo mount -o loop CentOS-6.2-x86_64-bin-DVD1.iso /media/cd
sudo cp -rv /media/cd/p_w_picpaths /media/DATA/centos6
sudo cp -v CentOS-6.2-x86_64-bin-DVD1.iso /media/DATA/centos6/
##没有sha1sum.txt就不做以下这些
##sudo cp sha1sum.txt /media/DATA/centos6
##cd /media/DATA/centos6
##grep DVD sha1sum.txt | sha1sum -c - CentOS-6.2-x86_64-bin-DVD1.iso
建立mbr,配置BOOT引导内容
sudo syslinux -s /dev/sdc1
sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdc
cd /media/BOOT
sudo cp -rv /media/cd/isolinux syslinux && cd syslinux
sudo mv isolinux.cfg syslinux.cfg
sudo rm -f isolinux.bin
修改syslinux.cfg启动菜单的append
sudo vim /media/BOOT/syslinux/syslinux.cfg
append ks=hd:sda2:/ks.cfg initrd=initrd.img ksdevice=eth0 method=hd:sda2:/centos6
建立kickstart文件
sudo vim /media/DATA/ks.cfg
# centos kickstart file
install
text
reboot
harddrive --partition=sda2 --dir=/centos6
#bootloader --driveorder=cciss/c0d0,sda --location=mbr
lang en_US
keyboard us
network --device eth0 --bootproto dhcp
rootpw 123456
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --isUtc Asia/Shanghai
bootloader --location=mbr --driveorder=sdb --append="rhgb crashkernel=auto quiet"
clearpart --all --drives=sdb --initlabel
part /boot --fstype ext4 --size 100 --ondisk=sdb
part swap --size=4096 --ondisk=sdb
part / --fstype ext4 --size=1 --grow --ondisk=sdb --asprimary
%packages
openssh-server
openssh-clients
vim
一些注意事项:
引导的时候要把u盘插在usb2.0的接口上,别插3上,容易出这样那样的问题。
ks文件非常重要,关键就是要让计算机找到这个文件才能进行自动安装。ks文件中的bootloader后必须指定--driveorder=sdb否则默认是装到sda上,也就是跑u盘上去了,肯定不行
还有一些写grub和引导的方法,试过都不好用,不过也做个备忘
extlinux工具可生成一个ldlinux.sys用于引导
sudo extlinux -i /mnt/sdc1
建立grub引导可用grub-install
sudo grub-install --root-directory=/mnt/sdc1 --no-floppy /dev/sdc