1. 引言
一般情況下,我們都是利用軟碟機或光碟機引導linux後,再通過本地的光碟機安裝linux。不過,這種安裝方法在以下的幾種情況下就不能適用:
無軟碟機和光碟機:非常多公司為了節省成本,計算機一般都不帶光碟機或軟碟機,這樣就無法通過本地安裝linux;
非標準的軟碟機和光碟機:雖然筆記本都會設定光碟機,不過並不一定都是標準的ide裝置,有些是通過usb介面,有些是通過1394介面(例如samsung 的q10)。在linux安裝時所引導的linux核心一般都不會帶這些介面的驅動,所以也無法通過本地安裝linux;
另外,在一些場合,如機房中,有大量的計算機需要同時安裝linux,如果通過光碟機的方式乙個個安裝,不僅效率低,也不利於維護。
筆者在工作過程中,就遇見過第二種情況。一台samsung的q10筆記本需要安裝redhat linux 8.0,不過通過光碟機引導後發現,安裝程式無法訪問光碟。針對這個問題,筆者經過查閱資料和摸索,找到了在q10上安裝linux的方法。在下面的討論中,如不做特別宣告,都將以q10為例,介紹怎麼通過pxe bootrom來遠端安裝linux。
2. 基本原理
1) 什麼是pxe
pxe協議的成功執行需要解決以下兩個問題:
既然是通過網路傳輸,那麼計算機在啟動時,他的ip位址由誰來設定;
對於第乙個問題,能通過dhcp server解決,由dhcp server來給pxe client分配乙個ip位址,dhcp server是用來給dhcp client動態分配ip位址的協議,不過由於這裡是給pxe client分配ip位址,所以在設定dhcp server時,需要增加相應的pxe特有設定。
這樣,pxe協議執行的條件就具有了,下面我們就來看看pxe協議的工作過程。
2) 工作過程
在上圖中,pxe client是需要安裝linux的計算機,tftp server和dhcp server執行在另外一台linux server上。bootstrap檔案、設定檔案、linux核心及linux根檔案系統都放置在linux server上tftp伺服器的根目錄下。
3. 步驟
有了前面的背景知識,接下來就能正式操作了,下面按照順序給出了操作步驟:
1) 設定dhcp server
選用isc dhcp-3.0,dhcp server的設定檔案是/etc/dhcpd.conf,設定檔案的內容如下:
option space pxe;
option pxe.mtftp-ip code 1 = ip-address;
option pxe.mtftp-cportcode 2 = unsigned integer 16;
option pxe.mtftp-sportcode 3 = unsigned integer 16;
option pxe.mtftp-tmoutcode 4 = unsigned integer 8;
option pxe.mtftp-delaycode 5 = unsigned integer 8;
option pxe.discovery-control code 6 = unsigned integer 8;
option pxe.discovery-mcast-addr code 7 = ip-address;
class "pxeclients"
ddns-update-style interim;
ignore client-updates;
default-lease-time 1200;
max-lease-time 9200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.1,192.168.0.2;
option domain-name "mydomain.org";
subnet 192.168.0.0 netmask 255.255.255.0
host q10
dhcpd.conf設定檔案中幾個關鍵部分說明如下:host q10定義了筆記本q10網絡卡的mac位址和ip位址的對應關係,表明dhcp server為q10分配乙個固定的ip:192.168.0.22;filename ""指定bootstrap的檔名;netx-server指定tftp server的位址。其他的設定請讀者參考dhcp server的手冊。
2) 設定tftp server
選用tftp-hpa,tftp server的設定檔案是/etc/xinetd.d/tftp,設定檔案的內容如下:
service tftp
這裡制定了/tftpboot為tftp server的根目錄位置。
3) 設定bootstrap
bootstrap檔案在dhcpd.conf中被指定為pxelinux.0檔案,放置在/tftpboot。linux核心及linux根檔案系統也放置在/tftpboot。pxelinux.0在執行過程中,要讀設定檔案,所有的設定檔案都放在/tftpboot/pxelinux.cfg/ 目錄下。由於pxelinux具有為不同的pxe client提供不同的linux核心及根檔案系統的功能,所以要通過不同的設定檔名來區分出不同的pxe client的需求。比如乙個pxe client由dhcp server分配的ip位址為192.168.0.22,那麼相對應的設定檔名為/tftpboot/pxelinux.cfg/c0a80016 (注:c0a80016為ip位址192.168.0.22的十六進製制表示)。如果未找到,就按照順序c0a80016-> c0a8001-> c0a800-> c0a80-> c0a8-> c0a-> c0-> c->default查詢設定檔案。
/tftpboot/pxelinux.cft/c0a80001設定檔案的具體內容如下:
default install
prompt 1
label install
kernel vmlinuz
此設定檔案指定了linux核心及根檔案系統的名稱,並給核心傳遞了一些引數,其中ramdisk_size引數要非常注意,他指定linux核心啟動後建立ramdisk的大小,如果設定太小,linux的安裝過程就可能無法進行。
4) 製作linux核心/根檔案系統
因為需要通過網路安裝,所有選擇redhat linux 8.0安裝盤(disk #1)中e:imagesbootnet.img(光碟機的碟符為e:)。bootnet.img包括linux核心、linux根檔案系統(有安裝程式在內)。用bootnet.img製作一張引導軟盤,方法在dos命令列執行e:dosutilsrawrite e:imagesbootnet.img,根據提示製作。製作完畢後,將引導軟盤中的vmlinuz(linux核心)和initrd.img (linux根檔案系統)拷貝到linux server的/tftpboot下。
5) 啟動dhcp server/tftp server
在linux server上,執行service dhcpd start和service xinetd restart。
6) 啟動q10
4. 結束語
參考資料
pxelinux,
net booting with dhcp, pxe-linux and tftp,
different kinds of pxe,
關於作者
湯凱,解放軍理工大學指揮自動教研室講師,你能通過 mail 位址
和他取得聯絡。
安裝Linux作業系統
安裝 linux作業系統 linux 系統的組成 linux作業系統是由linux核心和各種外圍程式組成的 linux核心是乙個特殊的軟體程式,用於實現cpu和記憶體分配 程序排程 裝置驅動等核心操作,以面向硬體為主 外圍程式包括分析使用者指令的直譯器 網路服務程式 圖形桌面程式等各應用型的軟體程式...
安裝Linux作業系統
安裝 linux作業系統 linux 系統的組成 linux作業系統是由linux核心和各種外圍程式組成的 linux核心是乙個特殊的軟體程式,用於實現cpu和記憶體分配 程序排程 裝置驅動等核心操作,以面向硬體為主 外圍程式包括分析使用者指令的直譯器 網路服務程式 圖形桌面程式等各應用型的軟體程式...
PXE遠端自動安裝作業系統
pxe工作原理 注意 如果要是用pxe遠端安裝作業系統,網絡卡必須支援pxe 即網絡卡中包含tftp的客戶端 1 實驗環境 1 centos6或7 2 準備一張或多張系統盤 centos 2 基礎元件的安裝和配置 1 需要安裝的rpm包 2 配置tftp server 1 配置光碟源 localre...