萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 基於網絡的Red Hat Linux無人值守安裝方法

基於網絡的Red Hat Linux無人值守安裝方法

class="20972"> ; 1. 方案介紹 這種方案需要首先設置一個啟動服務器和一個安裝服務器(可以配置在同一台物理機上),然後通過網絡啟動存放在啟動服務器上的安裝程序。安裝程序會自動訪問存放在安裝服務器上的安裝配置文件和安裝介質來完成安裝。 涉及到的技術 該方案主要應用了三種技術: 1) 在PC上從網絡啟動Red Hat Linux安裝程序的PXE協議 2) Red Hat Linux安裝程序提供的網絡安裝功能(即指通過網絡訪問安裝介質) 3) Red Hat Linux 安裝程序提供的無人值守安裝功能(Red Hat稱為kickstart) 技術1)和2)在參考資料1和2裡已有部分介紹。本文將重點描述參考資料中未涉及部分和無人值守安裝功能。 軟硬件需求 要按本文介紹的方法完成自動化安裝,你需要如下軟硬件資源: 一台PC機器作為啟動和安裝服務器(其它架構機器也可以) 一台待安裝的PC機器,它的網卡必須帶有PXE支持 一個建好的局域網,上述兩台機器已經連接入同一子網 待安裝的Red Hat Linux安裝介質 該方案的實現步驟 1) 配置啟動服務器 2) 配置安裝服務器 3) 從網絡啟動機器以完成安裝 步驟1)和2)只需做一次即可。對每一台需安裝Red Hat Linux的機器,都需要在啟動服務器和安裝服務器中部署相應的數據,並執行一次步驟3)。 下面將帶領您逐一執行這些步驟。為了簡單,我將用示例來說明如何在一台安裝了 Red Hat Enterprise Linux AS 3 Update 5 的 PC 機上設置啟動服務器和安裝服務器,並在一台PC上安裝 Red Hat Enterprise Linux AS 4 Update 2。 2. 步驟1:配置啟動服務器 啟動服務器的目的是幫助在待安裝機器上啟動Red Hat Linux 安裝程序。啟動服務器上需要搭建一個DHCP 服務器和一個TFTP 服務器。前者是為了給待安裝機器分配IP地址,後者則是提供了一個讓待安裝機器下載啟動鏡像的途徑。 配置DHCP 服務器 1) 安裝DHCP服務器包(RPM包名:dhcpd)。 2) 編輯DHCP服務器配置文件 /etc/dhcp.conf。這裡是一個示例:
option domain-name "mydomain";
ddns-update-style none;
 
max-lease-time 7200;
server-name "bootserver";
default-lease-time 600;
 
allow booting;
allow bootp;
 
subnet 192.168.138.0 netmask 255.255.255.0 {
    range 192.168.138.1 192.168.138.254;
    deny unknown-clients;
}
 
group pxe {
    filename "pxelinux.0";
    host testserver { hardware ethernet 00:0C:29:70:24:5B; fixed-address
         192.168.138.30; }
}
在這個例子中,定義的子網是 192.168.138.0/255.255.255.0。主機定義項testserver指出 IP 地址 192.168.138.30 將分配給以太網卡00:0C:29:70:24:5B(待安裝機器),文件 pxelinux.0(在 TFTP 服務器的根目錄中)將作為啟動映像被網卡ROM裡的PXE客戶端載入內存並運行。 每增加一台需安裝的機器,我們需在dhcpd.conf中增加一條host條目。 3) 給啟動服務器配置一個IP,這個IP必須在DHCP服務器定義的子網內。 這裡我們使用192.168.138.1。關於如何為Red Hat Linux系統配置IP地址,請查閱參考資料3。 4) 啟動DHCP服務。 [root@bsvr] #service dhcpd restart 配置TFTP服務器 1) 安裝TFTP服務器包(RPM包名:tftpd)。 2) 編輯TFTP 服務器的配置文件 /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
}
這裡選定了/tftpboot為TFTP 服務器的根目錄位置。 3) 將Linux安裝程序的內核/根文件系統文件復制到 TFTP 服務器的根目錄。對於每一個要被安裝的Red Hat Linux版本,都需要執行一次該操作。 Red Hat Linux第一張安裝光盤/isolinux目錄下會包含Linux安裝程序的內核/根文件系統文件。下面一段命令將這些文件復制到TFTP服務器的根目錄下,並按照版本重新命名。 [root@bsvr]#mkdir /mnt/iso [root@bsvr]#mount -o loop,ro RHEL4-U2-i386-AS-disc1.iso /mnt/iso [root@bsvr]#cp /mnt/iso/isolinux/initrd.img /tftpboot [root@bsvr]#cp /mnt/iso/isolinux/vmlinuz /tftpboot [root@bsvr]#mv /tftpboot/initrd.img /tftpboot/initrd-rhel4u2-i386.img [root@bsvr]#mv /tftpboot/vmlinuz /tftpboot/vmlinuz-rhel4u2-i386 4) 將啟動鏡像文件pxelinux.0復制到TFTP服務器根目錄。 啟動鏡像pxelinux.0可以在syslinux安裝包裡獲得。安裝好syslinux安裝包後,將pxelinux.0復制到TFTP服務器根目錄。 [root@bsvr]#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/ 5) 編輯pxelinux.0的配置文件,以使pxelinux可以正確載入Red Hat Linux安裝程序。對於每一個要被安裝的Red Hat Linux版本,都需要執行一次該操作。 啟動鏡像pxelinux.0文件在執行過程中,會讀取配置文件以確定它應該載入什麼Linux內核文件來運行。所有的配置文件都放在啟動服務器的/tftpboot/pxelinux.cfg/目錄下。pxelinux.0根據一定的規則來搜索合適的配置文件名。舉例來說,對於前面為待安裝機器分配的IP地址192.168.138.30(十六進制表示為C0A88A1E),pxelinux.0會按如下次序搜索配置文件: C0A88A1E > C0A88A1 > … > C0 > C > default 就是說,如果C0A88A1E文件存在,它就是pxelinux.0將載入的配置文件。否則,繼續往下找。如果C0A88A1文件存在,它就是pxelinux.0將載入的配置文件。如果前面的以C開頭的文件都不存在,那麼pxelinux.0將試圖從文件default中讀取配置。對於一台需要支持很多安裝機器的安裝服務器來說,將配置寫在與IP地址對應的文件裡很不靈活。把所有配置都集中在default文件中是個不錯的主意,可以減輕配置文件維護負擔。 可以將能想到的Red Hat Linux版本的配置都寫在default文件裡,以便同時支持多種Red Hat Linux版本,如下所示(對於具體某個 Red Hat Linux版本,對應的行該如何寫,可以參考它安裝盤裡的配置文件 /isolinux/isolinux.cfg):
DEFAULT rhel4u2-i386
DISPLAY pxelinux.cfg/list
PROMPT 1
 
LABEL rhel3u6-i386
KERNEL vmlinuz-rhel3u6-i386
APPEND initrd=initrd-rhel3u6-i386.img
 
LABEL rhel3u6-x86_64
KERNEL vmlinuz-rhel3u6-x86_64
APPEND initrd=initrd-rhel3u6-x86_64.img devfs=nomount ramdisk_size=9216
 
LABEL rhel4u2-i386
KERNEL vmlinuz-rhel4u2-i386
APPEND initrd=initrd-rhel4u2-i386.img ramdisk_size=8192
這樣用戶可以通過輸入某種版本的LABEL(例如,rhel4u2-i386)來選擇具體的安裝版本。為了能在安裝時知道有哪些備選,可以讓pxelinux.0提示要戶選擇之前顯示一個列表。這通過在default裡指定DISPLAY選項來實現。在上面的樣例中,我們將所有備選Red Hat Linux版本列在文件pxelinux.cfg/list中,它的內容會被pxelinux.0顯示出來。 在我們的例子中,/tftpboot/pxelinux.cfg/list文件內容如下: Choose one of the following Linux distributions for your installation: Name Distribution Arch. Installation media ------------------------------------------------------------------------- rhel3u6-i386 RHEL 3 AS U6 i386 192.168.138.1:/instsvr/i386/rhel3u6 rhel3u6-x86_64 RHEL 3 AS U6 x86_64 192.168.138.1:/instsvr/x86_64/rhel3u6 rhel4u2-i386 RHEL 4 AS U2 i386 192.168.138.1:/instsvr/i386/rhel4u2 6) 啟動TFTP服務。 [root@bsvr]#service xinetd restart 3. 步驟2:配置安裝服務器 安裝服務器在安裝期間提供對 Linux 安裝介質和無人值守安裝配置文件的訪問。安裝介質存儲在服務器上的一個目錄中,可以使用各種網絡協議訪問它,比如 HTTP,FTP,和NFS。使用NFS協議,Red Hat Linux安裝程序可以支持多種安裝介質目錄結構,尤其是支持ISO光盤鏡像文件。這裡我們選擇使用NFS協議來訪問安裝介質。 配置NFS服務器 1) 准備ISO安裝介質。將Red Hat Linux安裝介質的ISO文件都放置到/instsvr目錄下。注意不要改變文件名。 [root@bsvr]#mkdir /instsvr [root@bsvr]#mv RHEL4-U2-i386-AS-disc1.iso /instsvr/i386/rhel4u2 [root@bsvr]#mv RHEL4-U2-i386-AS-disc2.iso /instsvr/i386/rhel4u2 [root@bsvr]#mv RHEL4-U2-i386-AS-disc3.iso /instsrv/i386/rhel4u2 [root@bsvr]#mv RHEL4-U2-i386-AS-disc4.iso /instsrv/i386/rhel4u2 2) 編輯NFS服務器配置文件 /etc/exports,以允許其它機器通過NFS訪問目錄/instsrv。/etc/exports 文件內容如下: /instsvr *(ro,no_root_squash,sync) 其中: * 表示任何IP地址都可以訪問該目錄。為了安全的考慮,也可以指定具體的IP地址。 ro 表示遠程機器對該目錄只有讀權限。 其它選項請參考NFS手冊。 3) 重新啟動NFS服務以使新配置生效 [root@bsvr]# service portmap restart; service nfs restart 4) 檢測目錄/instsrv是否已被正確共享 [root@bsvr]#showmount -e localhost Export list for localhost: /instsrv * 這樣,我們就設置好了一個安裝服務器。很簡單吧! 配置kickstart安裝 自從 5.2 版開始, Red Hat Linux 開始支持一個稱為 kickstart 的功能,其主要目的是為了減少安裝過程中的人機交互,提高安裝效率。使用這種方法,只需事先定義好一個配置文件(通常存放在安裝服務器上),並讓安裝程序知道該配置文件的位置,在安裝過程中安裝程序就可以自己從該文件中讀取安裝配置,這樣就避免了繁瑣的人機交互,實現無人值守的自動化安裝。 要
copyright © 萬盛學電腦網 all rights reserved