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。
這兩種網路開機的方法各有利弊。使用 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
- Previous: 無磁碟 Linux 環境概論 @2004/11/08
- Next: Firefox 1.0 released @2004/11/09
Add a trackback
Please send trackback to: http://blog.seety.org/everydaywork/2004/11/8/74/trackback/.
Add a comment