2010年4月13日 星期二

Install Fedora Over HTTP

由於最近要再測一些Distributed file system, 找來一些舊機器來試驗...

機器一多,就得思考怎麼做才能快速安裝,事實證明人類是種很懶惰的動物... zzz...

PXE, 簡單來說是種結合多種 protocols, 其中包含 DHCP 及 TFTP. 可以用來讓一些裝置進行網路開機的一種協定。目前,我是用Gentoo Linux來提供 boot service, 透過 HTTP 安裝 Fedora 12.

當然,你得先確認你的 client 網卡支援 PXE.

Step1. 安裝 boot service 必要套件
gentoo# emerge -uD net-misc/dhcp
gentoo# emerge -uD net-ftp/atftp
gentoo# emerge -uD sys-boot/syslinux

Step2. 設定 boot service
gentoo# cat /etc/dhcp/dhcpd.conf
---
option domain-name "twaren.net";
option domain-name-servers 8.8.8.8, 211.79.61.4;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style interim;
log-facility local7;
allow booting;
allow bootp;
ignore client-updates;

subnet 211.79.x.128 netmask 255.255.255.128 {
range 211.79.x.172 211.79.x.181;
option subnet-mask 255.255.255.128;
option broadcast-address 211.79.x.255;
option routers 211.79.x.254;
next-server 211.79.x.154; #指定 booter
filename "pxelinux.0"; #指定boot file
}
---
gentoo# cp /usr/share/syslinux/pxelinux.0 /home/tftpd
gentoo# wget http://ftp.twaren.net/Linux/Fedora/linux/releases/12/\
Fedora/i386/os/images/pxeboot/initrd.img
gentoo# wget http://ftp.twaren.net/Linux/Fedora/linux/releases/12/\
Fedora/i386/os/images/pxeboot/vmlinuz
gentoo# cat /home/tftpd/pxelinux.cfg/default #你可以設定不同 host, 吃不同的 boot images
---
prompt 1
default pxeboot
timeout 50

label pxeboot
kernel vmlinuz
append initrd=initrd.img

ONERROR LOCALBOOT 0
---
gentoo# find /home/tftpd/ -type f
/home/tftpd/pxelinux.0
/home/tftpd/initrd.img
/home/tftpd/vmlinuz
/home/tftpd/pxelinux.cfg/default

Step3. 啟動 boot service
gentoo# /etc/init.d/dhcpd start
gentoo# atftpd --logfile /var/log/tftpd.log --daemon /home/tftpd/

Step4. 啟動 client, 開始安裝 OS
幾本上如果你上述的設定都正常 work, 且你的 client 網卡支援 PXE, 你應該可以取得 IP, 並下載 kernel, 啟動安裝流程。

在安裝來源選擇 URL 即可透過 ftp, http 進行網路安裝。

其實這個還不完整,還需要人為介入,應該還要加上 Red Hat 的 Kickstart 這樣的東西才行。
ref:


沒有留言:

張貼留言