PXELINUX 是 SYSLINUX[r1] 的一個衍生軟體。PXELINUX,讓我們可以使用符合 Intel PXE (Pre-eXecution Environment) 規格的網路卡 boot ROM,直接從區域網路上啟動 Linux 核心及整個系統。同樣可以從區域網路上啟動 Linux 的軟體系統還有 NILO[r2] 和 Etherboot[r3],但它們是使用自己的 boot ROM。

這兩種網路開機的方法各有利弊。使用 PXE boot ROM 的話,好處是只要網路卡支援 PXE 功能 (Intel 的網路卡幾乎都支援),直接就可以用來進行開機,不必再去找 ROM 燒錄機來燒錄 boot ROM;壞處是開機的功能會受限於 PXE,不大能自訂。利用自訂的 boot ROM,好處是彈性可以很大;壞處是要先取得 boot ROM 的晶片硬體,插在網路卡上才能實作,這需要有 ROM 的燒錄機,成本比較高[r4]。

這裡我們要討論的是使用 PXELINUX 來實作 Linux,特別是 Debian 網路開機的方法。

Linux 透過 PXELINUX 進行網路開機時,過程基本上是:

0 PXE boot ROM 對區域網路廣播,尋找可以提供資訊的 DHCP/BOOTP 伺服器。

0 DHCP 伺服器測知要求資訊的對象是 PXE boot ROM (PXEClient),故將 PXELINUX 程式的位置連同基本的網路組態一起提供回去。

0 PXE boot ROM 根據所取得的資訊,從 TFTP (Trivial FTP) 伺服器處下載 PXELINUX 程式檔案,然後執行。

0 任務從 PXE boot ROM 交到了真正實行開機動作的 PXELINUX 手上。PXELINUX 會先根據自己所被分配到的 IP 位址,從 TFTP 伺服器處取得開機設定資料。

0 PXELINUX 的開機設定檔寫法與 SYSLINUX 相同。我們要在 PXELINUX 的設定檔裡面指定 Linux 核心檔案的位置和相關的核心參數資訊 (至少包括本機 IP 與 NFS 根檔案系統的位置)。

0 當 PXELINUX 成功地透過 TFTP 抓到了核心檔案之後,就會用同時取得的核心參數來啟動核心。這時候系統的控制權就從 PXELINUX 交到了 Linux 核心手上。

0 如果在 PXELINUX 設定檔裡的資料都沒有錯誤的話,Linux 應該就能成功地以 NFS 掛載根檔案系統,一步步地完成開機動作。

為了讓這個流程可以順利進行,我們不但需要在節點 (要進行網路開機的電腦) 上安裝支援 PXE 的網路卡,並在 BIOS 裡作好組態,讓系統預設從網路開機,而且要在作為資料來源的伺服器上設定許多相關的網路服務:

- DHCP 伺服器

我們使用 ISC DHCP3 ('dhcp3-server') 伺服器套件。

- TFTP 伺服器

我們使用 Advanced FTP ('aftpd') 伺服器套件。

- DNS 伺服器

我們使用 BIND9 ('bind9') 伺服器套件。

- NIS 伺服器

組態 NIS 目錄服務的目的是為所有由網路開機的系統提供統一的登入資料。這部分也可以用 LDAP 或 winbind 來取代。我們使用 'nis' 套件。

- NFS 伺服器

為所有經由網路開機的系統提供檔案。我們使用 'nfs-kernel-server' 套件。當然,為了讓節點可以順利開機,必備的工具程式一定要先準備好,放在伺服器上,讓各節點來掛載使用。

有時候,我們還會另外組態一些服務,來滿足特別的需要:

- Linux NAT

通常我們是因為有了某些比較特別的需要,才會把電腦組態成利用網路開機,所以這些網路開機的電腦多半是一群一群的。

在大部分的情況下,我們不希望這些節點直接暴露在網際網路上 (噢,不過也有一些情況是反過來的)。此時,如果節點有需要存取網際網路的話,我們可以在伺服器上實作一個 NAT (Network Address Translation),讓內網路上的節點可以用伺服器的身份對外進行連線。從外部只能看到連線來自 NAT 伺服器,不能透進去看到節點,達到保護的目的。

我們必須一一地把以上的服務及相關的資料建好,才能順利地用 PXE 和 PXELINUX 執行開機動作。不過,更重要的是,當節點都可以正常啟動之後,我們還要懂得如何管理這些沒有磁碟的電腦。因為所有節點的組態資料都存在伺服器上面,良好的管理與組織方法不但可以減少重複資料的儲存空間浪費,更能增進管理工作的效率。

.. [r1] "SYSLINUX":http://syslinux.zytor.com/

.. [r2] "NILO":http://www.nilo.org/

.. [r3] "
Etherboot":http://sourceforge.net/projects/etherboot

.. [r4] 或者是使用別人製作好的 boot ROM 晶片,但這樣就失去彈性了,不如直接用 PXE。
Posted by yungyuc at 17:50, 0 comment, 0 trackback.
Navigate
Add a trackback
Add a comment

Your name. (required)

Your personal website. (optional)

Your email address. Will not show in page. (suggested, but optional)

Text format is "Plain Text".

Enter "asCiD"
© hover year to navigate month: powered by django