参考资料
1、http://gm100861.blog.51cto.com/1930562/934661 更新apt-get源,安装所需软件sudo apt-get install syslinux dnsmasq apache2配置dnsmasqsudo vim /etc/dnsmasq.conf将以下项目前面的#去掉bogus-privfilterwin2kinterface=eth0dhcp-range=192.168.44.100,192.168.44.120,12hdhcp-boot=pxelinux.0enable-tftptftp-root=/var/ftpddhcp-authoritative上面interface后面的eth0表示eth0是需要监听的网卡,若希望为本机各块网卡连接的网络提供服务,则注释掉这行,即默认各网卡都提供dhcp、dns、tftp服务。vim /etc/sysconfig/iptables
放行udp 53 67 69 、tcp 53这些
复制安装centos6所需文件sudo mkdir -p /var/www/centos6 /mnt/cd /var/ftpd/pxelinux.cfgsudo mount -o loop -t auto ~/iso/CentOS-6.2-x86_64-bin-DVD1.iso /mnt/cdsudo cp -rv /mnt/cd/* /var/www/centos6sudo cp -rv /mnt/cd/isolinux/* /var/ftpdsudo cp /usr/lib/syslinux/pxelinux.0 /var/ftpdsudo mv /var/ftpd/isolinux.cfg /var/ftpd/pxelinux.cfg/default要部署ubuntuserver12,也是把镜像挂好,复制全部文件到http目录,比如/var/www/ubuntuserver12,不过下面的步骤不用做了,下面的isolinux是制作pxe启动的,一份就够了ubuntuserver自动安装中可能会提示http://192.168.44.249/ubuntuserver12/dists/precise/restricted/binary-amd64/Packages was corrupt.这是一个bug
解决方法是直接touch一个空文件sudo touch /var/www/ubuntu/dists/precise/restricted/binary-amd64/Packages其中precise是ubuntu12.04.4版本代号如果是其他版本,就换成相应的代号 创建centos6 ks.cfgsudo vim /var/www/centos6/ks.cfg# centos6/ks.cfgfirewall --disabledinstallurl --url http://192.168.44.249/centos6textfirstboot --disablerootpw admasterauth --useshadow --enablemd5lang en_USkeyboard usselinux --disabledlogging --level=inforeboottimezone --isUtc Asia/Shanghainetwork --bootproto=dhcp --device=eth0 --onboot=onzerombrbootloader --location=mbrclearpart --all --initlabelpart swap --fstype="swap" --size=4096part /boot --fstype="ext4" --size=200part / --fstype="ext4" --size=1 --grow%packagesopenssh-serveropensshvim创建ubuntu ks.cfgsudo vim /var/www/ubuntuserver12/ks.cfg# ubuntuser kickstart fileinstallurl --url http://192.168.44.249/ubuntuserver12preseed passwd/root-login boolean truelang en_USlangsupport --default en_US.UTF-8 en_US.UTF-8keyboard usmousetimezone Asia/Shanghairootpw --disableduser john --fullname "john chu" --password admasterreboottextbootloader --location=mbrzerombr yesclearpart --all --initlabelpartman-lvm/device_remove_lvm boolean truepartman-md/device_remove_md boolean true
part / --fstype ext4 --size 1 --grow --asprimary
# 不设置swap时安装过程中会提示要不要重新添加swap分区part swap --size 4096auth --useshadow --enablemd5network --bootproto=dhcp --device=eth0firewall --disabledskipx%packages@ Baseopenssh-serveropenssh-clientvimgccmake修改pxe启动菜单sudo vim /var/ftpd/pxelinux.cfg/defaultappend ks=http://192.168.44.249/centos6/ks.cfg initrd=initrd.img有其他系统就自行添加一下,注意把内核与initrd定位准确就可以
重启dnsmasq
sudo service dnsmasq restart如果是安装ubuntu,有两点不同:1是ks文件略有不同;2是pxe启动后的引导菜单default文件,必须使用centos风格的,否则会找不到内核与初始化环境。ubuntu自带的default文件要和txt.cfg文件融合一下,然后注释掉ui和include这两行才行(个人观点)