Tag Archive for 'pxe boot'

將 ubuntu 8.04 desktop LiveCD 用 pxe boot 起來

注意: 這個方法不保證在其他版本可以 work

ubuntu 的 desktop 安裝光碟本身就是一個可以拿來當作業系統的 LiveCD。昨天作了個實驗,希望能把 LiveCD 的環境,透過 pxe boot 起來,以下是我的作法。有部分作法是誤打誤撞的,沒有理論根據,也不能保證其他版本 work,所以要先講清楚,我用的 ISO 是 ubuntu-8.04.1-desktop-i386.iso

Step1: 先抓 ubuntu desktop CD-ISO: 下載點

Step2: 取出光碟內 casper/*,將 filesystem.* 放到 /casper,initrd.gz 與 vmlinuz 放到 /tftproot

Step3: 下載 pxelinux.0,放到 /tftproot

Step4: 設定(並啟動) tftp server,將 / 指向 /tftproot

Step5: 設定(並啟動) isc-dhcp,在 dhcpd.conf 中加入:

server-identifier     dhcp-server-ip;
next-server           dhcp-server-ip;
filename                "/pxelinux.0";

Step6: 在 /tftproot 下建立一個目錄叫做 pxelinux.cfg
在裡頭放個設定檔 default,內容如下:

DEFAULT live
PROMPT 0
TIMEOUT 0

LABEL live
kernel vmlinuz
append initrd=initrd.gz boot=casper netboot=nfs
(接續上一行) nfsroot=dhcp-server-ip:/casper --

Step8: 設定 NFS,將 /casper export 出來

Step9: 進入 casper 這個目錄, ln -s . casper
(建立一個 soft-link 叫 casper,link 回自己)

Step10: 讓 client pxe boot

其中最詭異的一點就是 Step9,原本光碟裡頭並沒有這個 link,但是透過 pxeboot 的時候卻非常需要這個 link,目前猜測是 initrd.gz 裡頭的 script 在處理 cdrom 跟 nfs 上面有所差異,但是沒精神去深究了,先求能動再說,所以有了 Step9