1,715 瀏覽數

XenServer – Appendix A. PXE Installation

Red Hat Linux 下建立 PXE Server
Step 0 : 環境需求
Step 1 : tftp server 的設定
Step 2 : 安裝媒體(FTP,NFS,HTTP)
Step 3 : PXE 設定檔
Step 4 : DHCP Server
Step 5 : The PXE clients

Step 0 : 環境需求
1.一台具有 DHCP 與 tftp server (eg: IP 192.8.1.1)
一台具有 PXE 開機功能網路卡的 Client(請先確定 PXE 功能已經在 BIOS 下開啟,並設為第一開機順位)
2.作業系統我選擇的是 Red Hat Enterprise Linux 5 版本

Step 1 : tftp server 的設定
1. 編輯 “/etc/xinetd.d/tftp” 並將 server 開啟

[root@benjr ~]# vi /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
CPUS = 100 2
flags = IPv4
}

將 disable 設定成為 no 即可或者你可以用下面的指令將 tftp 功能開啟

[root@benjr ~]# chkconfig tftp on

2.啟動 tftp servicee

[root@benjr ~]# service xinetd restart

Step 2 : 安裝媒體(FTP,NFS,HTTP)
1.複製 XenServer 光碟所有的內容.

[root@benjr ~]# mkdir /var/ftp/xenserver5
[root@benjr ~]# mount -o loop XenServer-5.0.0-install-cd.iso /mnt/cdrom1
[root@benjr ~]# mount -o loop XenServer-5.0.0-linux-cd.iso /mnt/cdrom2
[root@benjr ~]# cp -rf /mnt/cdrom1/packages.main/* /var/ftp/xenserver5/ 
[root@benjr ~]# cp -rf /mnt/cdrom2/packages.linux/* /var/ftp/xenserver5/

2.由 FTP 來安裝
請確定 ftp 的服務已經開啟

[root@benjr ~]# chkconfig vsftpd on
[root@benjr ~]# service vsftpd restart

3.由 NFS 來安裝
編輯 "/etc/exports" 並將 "/var/ftp/" 目錄分享(因為我們將把光碟內的檔案放在此目錄下,此為FTP預設的分享目錄)

[root@benjr ~]# vi /etc/exports
/var/ftp/    192.8.1.*(ro,all_squash)

並確定 NFS 的服務已經開啟

[root@benjr ~]# chkconfig nfs on
[root@benjr ~]# service nfs start

4.由 HTTP 來安裝
編輯 "/etc/httpd/conf/httpd.conf" 並將 Document 設為 /var/ftp(因為我們將把光碟內的檔案放在此目錄下,此為FTP預設的分享目錄)

[root@benjr ~]# vi /etc/httpd/conf/httpd.conf
Document Root "/var/ftp"

並確定 HTTP 的服務已經開啟

[root@benjr ~]# chkconfig httpd on
[root@benjr ~]# service httpd restart

Step 3 : PXE 設定檔
1.將開機所需的 mboot.c32 , install.img ,kernel(vmlinuz) 和 initrd(xen.gz) 檔案複製到 "/tftpboot/linux-install/as3u2 目錄下

[root@benjr ~]# mkdir /tftpboot/linux-install/xenserver5
[root@benjr ~]# cp /mnt/cdrom1/install.img /tftpboot/linux-install/xenserver5
[root@benjr ~]# cp /mnt/cd1rom/boot/vmlinux /tftpboot/linux-install/xenserver5
[root@benjr ~]# cp /mnt/cd1rom/boot/xen.gz /tftpboot/linux-install/xenserver5
[root@benjr ~]# cp /mnt/cd1rom/boot/isolinux/mboot.c32 /tftpboot/linux-install/xenserver5

2.編輯 /tftpboot/linux-install/pxelinux.cfg/default (這個檔案定義了與PXE的Clients可以經由按鍵來選擇安裝的系統)

[root@benjr ~]# vi /tftpboot/linux-install/pxelinux.cfg/default
default 0
timeout 2000
F1 msgs/boot.msg
F2 msgs/expert.msg
prompt 1
display msgs/boot.msg
label 0
localboot 1 
label xenserver5
  kernel xenserver5/mboot.c32
  append xenserver5/xen.gz dom0_mem=752M — xenserver5/vmlinuz — xenserver5/install.img

設定檔說明:
default 0
如果使用者不選擇安裝哪一種OS這邊就可以設定預設安裝哪一個OS,default 0的意是就是使用label 0的設定.
timeout 2000
預設安裝生效時間為2000ms(200秒).
F1 msgs/boot.msg
F2 msgs/expert.msg
這邊是用來定義F1至F12功能鍵所要顯示的內容.
prompt 1
效果不明????
display msgs/boot.msg
一開機進入PXE所顯示的第一個提示訊息.
label 0
localboot 1
這裡定義了使用機器系統上的硬碟來直接開機.
label xenserver5
  kernel xenserver5/mboot.c32
  append xenserver5/xen.gz dom0_mem=752M — xenserver5/vmlinuz — xenserver5/install.img
這就是要安裝 Xenserver5 的定義.

3.編輯 /tftpboot/linux-install/msgs/boot.msg (這個檔案就是Clients經由PXE開機時所看到的提示訊息)

[root@benjr ~]# vi /tftpboot/linux-install/msgs/boot.msg 
1. Install XenServer5

Step 4 : DHCP Server
編輯 /etc/dhcpd.conf

[root@benjr ~]# vi /etc/dhcpd.conf
# ddns-update-style interim;
ddns-update-style none;
ignore client-updates;
allow booting;
allow bootp;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.8.1.1;
filename "linux-install/pxelinux.0";
}
subnet 192.8.1.0 netmask 255.255.255.0 {
range 192.8.1.150 192.8.1.180;
option broadcast-address 192.8.1.255;
option routers 192.8.1.1;
option subnet-mask 255.255.255.0;option domain-name-servers 192.8.1.1;
}

這個項目 option domain-name-servers 192.8.1.1 為非必要選項,如果你有設定就不用再指定 DNS 位址.但是相對應的 DNS(Bind Server)也要設定.並確定 DHCP 的服務已經開啟

[root@benjr ~]# chkconfig dhcpd on
[root@benjr ~]# service dhcpd start

其中的 next-server 就是你的tftp server所在的位置.我這邊的例子使用192.8.0.1
至於其他有關於DHCP的設定說明起自行參考DHCP的官方網站http://www.isc.org

在整個 DHCP 設定檔中,最重要的就是 filename "linux-install/pxelinux.0"
整個網路開機顯示畫面,流程控制都由 pxelinux.0 來管理,關於更多有關於 pxelinux.0 ,請參考 PXELinux 的官方網頁
http://syslinux.zytor.com/

Step 5 : The PXE clients
1. 將具有 PXE 功能網路卡的 client 開機,並從 PXE 開機.
pxe_xen01
2. DHCP 或是 Static IP 皆可
pxe_xen02
3. 你可以選擇 FTP , NFS 或 HTTP 等方式來安裝
至於 server IP 就是 192.8.1.1,我將光碟內容都放在 192.8.1.1:/var/ftp/ 目錄下
至於目錄根據不同的方式有所不同
使用 FTP 方式的目錄:ftp://192.8.1.1/xenserver5
pxe_xen05
使用 NFS 方式的目錄:192.8.1.1:/var/ftp/xenserver5
pxe_xen03
使用 HTTP 方式的目錄 : http://192.8.1.1/xenserver5
pxe_xen04
4. 接下來的安裝過程就和一般光碟安裝一樣.

2 個網友的想法 “XenServer – Appendix A. PXE Installation

  1. 自動參照通知: 安裝 RHEL VM | Benjr.tw

  2. XenServer 6 on PXE server
    照著前面的步驟將 XenServer 6 放到 PXE Server 上,但卻發生了錯誤,系統在載入 xen.gz 後就一直停在 … ,回頭參考了 http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/ 的 XenServer Installation Guide 說明,設定檔一樣,不過他卻建議使用 XenServer ISO 所提供的 mboot.c32 以及 pxelinux.0.

    Note:
    Citrix strongly recommends using mboot.c32 and pxelinux.0 files from the same source (for example, from the same XenServer ISO).

    的確問題就解決了!!

發表迴響