PXE自动安装FreeBSD
作者信息
作者:diege
時(shí)間:2012-05-02
前言
最經(jīng)準(zhǔn)備整理運(yùn)維自動(dòng)化相關(guān)的技術(shù),發(fā)現(xiàn)FreeBSD的PXE安裝忘的七七八八了,所以先整理一下,仍到博客上來(lái)。
目標(biāo)
通過(guò)FreeBSD Server PXE安裝FreeBSD操作系統(tǒng)
Server信息
操作系統(tǒng)版本:FreeBSD 8.2-RELEASE
Ip:192.168.1.200/24
使用軟件:
tftpd,已經(jīng)包含在 FreeBSD 發(fā)行版的 base 中。
nfsserver,已經(jīng)包含在 FreeBSD 中。
isc-dhcp42-server,通過(guò) ports 安裝。
FreeBSD 發(fā)行版 DISC1 的 ISO 鏡像FreeBSD-8.2-RELEASE-i386-disc1.iso
準(zhǔn)備工作
1、????????????? 配置tftpd
默認(rèn)情況下,inetd 里面的 tftpd 是不會(huì)運(yùn)行的。在 inetd.conf 中找到 tftpd 所對(duì)應(yīng)的一行,去掉行首的#,保存。注意,去除注釋的這行應(yīng)該是使用 udp 而不是 udp6。
#vim /etc/inetd.conf
tftp??? dgram?? udp???? wait??? root??? /usr/libexec/tftpd????? tftpd -l -s /tftpboot?
# echo 'inetd_enable="YES"' >> /etc/rc.conf
?
2、????????????? 配置nfsserver
# echo "/data/pxeiso/ -ro -alldirs" > /etc/exports
在/etc/rc.conf添加
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"
?
3、????????????? 安裝配置dhcp-server
A、? 安裝
#cd /usr/ports/net/isc-dhcp41-server && make BATCH=yes install clean
# echo 'dhcpd_enable="YES"' >> /etc/rc.conf
B、? 配置
# cp /usr/local/etc/dhcpd.conf /usr/local/etc/dhcpd.conf_bak_20120502
# vim /usr/local/etc/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
? range 192.168.1.150 192.168.1.199;
? option domain-name-servers ns1.internal.example.com;
? option domain-name "internal.example.com";
? option routers 192.168.1.1;
? option broadcast-address 192.168.1.255;
? server-identifier???? 192.168.1.200;
? next-server???????? 192.168.1.200;
? filename??????????? "/pxeboot";
? option??????? root-path?????? "/data/pxeiso/"";
}
正式安裝
1、? 準(zhǔn)備安裝源
# mount /cdrom
# mkdir /data/pxeiso
# cp -aR /cdrom/ /data/pxeiso/
2、? 準(zhǔn)備pxeboot
#mkdir /tftpboot
# cp /cdrom/boot/pxeboot ?/tftpboot/
3、? 修改loader.conf文件:
編輯?/data/pxeiso/boot/loader.conf,添加以下兩行:
vfs.root.mountfrom="ufs:/dev/md0"
vfs.root.mountfrom.options="rw"
4、? 設(shè)置全自動(dòng)安裝:
因?yàn)檫@個(gè)mfsroot.gz其實(shí)是個(gè)最小基本環(huán)境,包括所有安裝中需要的程序,解壓后是一個(gè)軟盤(pán),大小為2.4M啟動(dòng)鏡像,可以解壓后使用mdconfig 掛載為一個(gè)內(nèi)存盤(pán),掛載到一個(gè)目錄就可以修改其中的文件,里面有.snap,bin,boot,dev,etc,mnt,sbin,stand,var等一些目錄及文件
在mfsroot 里放一個(gè)install.cfg 就可以實(shí)現(xiàn)全自動(dòng)安裝
1)解壓基本環(huán)境文件mfsroot.gz
| #cd /data/pxeiso/boot/ #gzip -d mfsroot.gz |
2)掛載mfsroot
| #mdconfig -atvnode -f mfsroot #mount /dev/md0 /mnt |
3)在mfsroot文件中加入自動(dòng)安裝配置文件install.cfg
編輯 /mnt/install.cfg,以下是install.cfg配置范例:
# ee /mnt/install.cfg
# 啟用debug模式
debug=YES
nonInteractive=YES
noConfirm=YES
noWarn=NO
# 選擇磁盤(pán)并創(chuàng)建FreeBSD分區(qū)
disk=ad0
partition=all
bootManager=standard
diskPartitionEditor
# 在FreeBSD分區(qū)中劃分label,以下是在虛擬機(jī)測(cè)試
# / 730MB, swap 256MB, /var 2048MB,? /tmp 512MB,/usr remaining
ad0s1-1=ufs? 730126 /
ad0s1-2=swap 263255 none
ad0s1-3=ufs 2103854 /var
ad0s1-4=ufs 526510 /tmp
ad0s1-5=ufs 0 /usr 1
diskLabelEditor
# 主機(jī)全局配置,Host specific configuration:
tryDHCP=YES
netDev=em1
hostname=BSD01
domainname=example.com
# 選擇安裝的版本
distSetKernDeveloper
# 選擇安裝方法
netDev=em1
tryDHCP=YES
nfs=192.168.1.200:/data/pxeiso
mediaSetNFS
# 配置完成,提交!
installCommit
4、卸載mfsroot并重新打包mfsroot
| #umount /dev/md0 #mdconfig -d -u0 #gzip mfsroot |
?
5、? 啟動(dòng)各個(gè)服務(wù)
# /etc/rc.d/inetd start
# /etc/rc.d/rpcbind start
# /etc/rc.d/nfsserver start
# /usr/local/etc/rc.d/isc-dhcpd start
6、? 從第二個(gè)網(wǎng)卡引導(dǎo)啟動(dòng)安裝
7、? 最終退出安裝程序,重新啟動(dòng)系統(tǒng)。并修改BIOS 設(shè)置,禁止網(wǎng)絡(luò)啟動(dòng)。
?
常見(jiàn)故障總結(jié)
1、如使VM測(cè)試,注意關(guān)閉VM的dhcp服務(wù)吧,不然有可能影響PXE引導(dǎo)
2、NFS別忘記啟動(dòng)RPCBIND
參考:http://wiki.freebsdchina.org/howto/p/pxeinstall
?
轉(zhuǎn)載于:https://blog.51cto.com/ipseek/850421
總結(jié)
以上是生活随笔為你收集整理的PXE自动安装FreeBSD的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java中CardLayout的使用方法
- 下一篇: IPv6 相关的工作简介