參考資料
1、http://gm100861.blog.51cto.com/1930562/934661
更新apt-get源,安裝所需軟體
sudo apt-get install syslinux dnsmasq apache2
配置dnsmasq
sudo vim /etc/dnsmasq.conf
将以下項目前面的#去掉
bogus-priv
filterwin2k
interface=eth0
dhcp-range=192.168.44.100,192.168.44.120,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/ftpd
dhcp-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.cfg
sudo mount -o loop -t auto ~/iso/CentOS-6.2-x86_64-bin-DVD1.iso /mnt/cd
sudo cp -rv /mnt/cd/* /var/www/centos6
sudo cp -rv /mnt/cd/isolinux/* /var/ftpd
sudo cp /usr/lib/syslinux/pxelinux.0 /var/ftpd
sudo 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.cfg
sudo vim /var/www/centos6/ks.cfg
# centos6/ks.cfg
firewall --disabled
install
url --url http://192.168.44.249/centos6
text
firstboot --disable
rootpw admaster
auth --useshadow --enablemd5
lang en_US
keyboard us
selinux --disabled
logging --level=info
reboot
timezone --isUtc Asia/Shanghai
network --bootproto=dhcp --device=eth0 --onboot=on
zerombr
bootloader --location=mbr
clearpart --all --initlabel
part swap --fstype="swap" --size=4096
part /boot --fstype="ext4" --size=200
part / --fstype="ext4" --size=1 --grow
%packages
openssh-server
openssh
vim
建立ubuntu ks.cfg
sudo vim /var/www/ubuntuserver12/ks.cfg
# ubuntuser kickstart file
url --url http://192.168.44.249/ubuntuserver12
preseed passwd/root-login boolean true
langsupport --default en_US.UTF-8 en_US.UTF-8
mouse
timezone Asia/Shanghai
rootpw --disabled
user john --fullname "john chu" --password admaster
zerombr yes
partman-lvm/device_remove_lvm boolean true
partman-md/device_remove_md boolean true
part / --fstype ext4 --size 1 --grow --asprimary
# 不設定swap時安裝過程中會提示要不要重新添加swap分區
part swap --size 4096
auth --useshadow --enablemd5
network --bootproto=dhcp --device=eth0
skipx
@ Base
openssh-client
gcc
make
修改pxe啟動菜單
sudo vim /var/ftpd/pxelinux.cfg/default
append 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這兩行才行(個人觀點)
本文轉自 朱科強 51CTO部落格,原文連結:http://blog.51cto.com/zhukeqiang/1384755,如需轉載請自行聯系原作者