[版權說明] [作者列表] [ 前言][安裝] [下載] [使用] [升級] [移除] [問題回報] [參考網址]
修改日期
2023/Sep/06
一、版權說明
本文版權屬於全體作者所有,且以 GNU FDL 授權合約發佈。在遵守 GNU FDL 授權合約的情況下,您可以複製、散佈,以及修改本文件。唯請保持作者列表的完整,若您修改過此份文件,也請在作者列表中加入您的大名。
同時請注意本文件沒有任何擔保,若因本文件而產生任何直接或間接的損失,本文作者群均不負任何法律及道義上的責任。
二、作者列表
蕭志榥 (steven _at_ nchc org tw)
黃國連 (klhaung _at_ gmail com)
王順泰 (c00wht00 _at_ nchc org tw)
孫振凱 (ceasar _at_ nchc org tw)
王耀聰 (jazzwang _at_ nchc org tw)
蔡育欽 (thomas _at_ nchc org tw)
三、前言
學校與公司在大量使用Linux機器的時候,常常會遇到一個很大的問題,就是機器數量非常多時的管理與架設,一來人力有限,二來故障除錯太耗時。因此本實驗室將在PC Cluster上使用diskless, remote boot的經驗在此野人獻曝一下。對學校的訓練教室教學而言,使用這個方式的好處在於系統管理者只需照顧到server部分,對於clients就比較不用花時間。由於硬碟目前幾乎是PC最容易故障的部分,如果使用diskless的方式,只有server有硬碟,這樣可以減少一些不必要的困擾。
DRBL與Clonezilla從2003年起在國家高速網路與計算中心的PC 教室使用,一直是很穩定的運轉中。在此網頁中,本自由軟體實驗室將架設的方式詳細說明,相信一定可以省卻您不少摸索的時間。
另外,已經有LTSP了,為何還要再開發DRBL? 我們分幾個部分來看:
LTSP是集中使用伺服器上資源,而DRBL採用的是分散式的作法。LTSP的client端只做終端機使用,也就是client端開啟程式的時候,用的是server的CPU,記憶體等,client幾乎純粹只做KVMN (Keyboard, Video, Mouse, NIC)的輸入輸出。另一方面,DRBL的client端是一台完整的電腦,只是硬碟在Server上而已,DRBL的client我們可以想成是一台完整安裝好Linux的機器,所以client端開啟程式的時候,使用的計算資源,例如CPU, RAM等都是client端自己的。LTSP和DRBL兩個我們可以比喻成一個是中央集權,另一個是地方分權。當"地方能力夠"的話,最好是用地方分權的方式,也就是DRBL分散式的作法。DRBL所要求的server只需中階的電腦,一台CPU 2.6 GHZ左右的server,配備多張(>=2)網路卡,然後搭配fast ethernet 的交換器就可以供目前台灣中小學電腦教室40台學生的電腦使用。同樣的配備,如果使用LTSP,可能只能供10台學生電腦使用。 LTSP有幾個無法克服的部分,主要就是學生電腦部分的資源使用,在LTSP環境中學生的電腦(client)上,學生無法"直接"使用光碟機來讀光碟片,您無法讓學生使用隨身碟來存取資料,還有,學生不容易直接在他那台電腦中放出音樂等等,這些限制主要是因為在LTSP環境中,學生用的硬體資源大部分是server那台的,光碟機,USB port,音效卡等都是server的。而在DRBL環境中,學生的電腦就像是Linux安裝在自己的硬碟中,他可以完全的使用那台電腦的硬體資源,只不過這個硬碟是在遠端的server而已。 電腦更新速度非常快,現在新購買的電腦,CPU速度都在1 GHz以上,如果做LTSP的client的話,幾乎只是用到KVMN,未能充分使用新電腦的強大功能。現在新購買的電腦都可以輕易的當DRBL的server。使用DRBL的話,您能充分的使用Client的硬體。然而,反過來,如果舊的電腦,要資源再利用的話,LTSP就是一個好的選擇。
以上的比較,我們可以看出,DRBL與LTSP兩者各有所長,您不妨依照自己的需要來選擇。
本DRBL程式,主要是提供一個整合的安裝的方式,讓您很快的將集中管理的環境建好。安裝過程中有很多選項可以選,您可以依照您的需求選擇。
四、DRBL的安裝
- 以下作法乃是針對:
- Debian Bullseye (11.x), Debian Buster (10.x).
- Ubuntu Jammy (22.04) (Snaps 的軟體在用戶端無法支援使用), Focal (20.04).
- CentOS 7.
- Fedora 23, 22.
- Scientific Linux 7.x, 6.x, RHEL 7.x, 6.x (使用drblsrv-offline方式).
- OpenSuSE 11.2, 11.3.
其他的版本不適用。
此外,目前另有DRBL live (基於Debian Sid),可以在這裡下載,您也可以參考使用。
4步安裝法
步驟1 - 安裝您的GNU/Linux套件。
- <步驟1->請安裝上述支援的GNU/Linux。這部分很多文件都有,請直接參考各套件的官方安裝手冊。 要注意的是:
- 建議這台server切割partition的時候,另外切一個partition給/tftpboot使用,大小視您的GNU/Linux套件版本而定,越新的版本,需要的空間一般來說越大。以RedHat 9/Fedora Core 1/2為例,大約是您的學生電腦數目*100MB,也就是如果你有40台學生電腦的時候,建議切割4GB的空間給/tftpboot,如果是Fedora Core 3/4/5,建議每個學生電腦給200MB的空間,這個空間當然可以再放大一些,以免以後安裝的程式越來越多而不夠空間,建議也許把估算出來的大小然後再加倍。
- 為了增加效能,你可以照以下說明調整。當然,這不是必須的,請自行斟酌:
- 如果你是使用gnome的話,以Fedora Core 6為例,/etc/gconf/gconf.xml.defaults/下有一堆不同語言的檔案(對Ubuntu 6.10而言,那些檔案是放在目錄/var/lib/gconf/defaults/中),如果你確認不會用到其他語言的話,可以考慮移除。這樣可以省下不少的硬碟空間(以台灣的使用者,如果只保留%gconf-tree.xml與%gconf-tree-zh_TW.xml,這樣每個用戶端所需的空間可以減少約40MB,如果你有40個用戶端,主機可以減少1.6GB的空間),並且降低NFS服務的負載。Debian與Ubuntu的部份,你也可以安裝localepurge程式,然後執行localepurge來清除你系統用不到的語言檔案。另外,也有工具幫你做到類似的功能,你以參考這裡。
- 如果你的GNU/Linux套件支援reiserfs,建議server安裝Linux的時候使用reiserfs的檔案系統,而不是ext3/ext2 (雖然RedHat/Fedora預設無法選用reiserfs,但是你可以參考這個FAQ來做到)。這主要是因為reiserfs對DRBL這樣的環境效能比較好。您可以參考這個benchmark。
- 安裝的時候您可以任選預設的幾個模式,以RedHat Linux為例,您可以選Personal Desktop, Workstation, Server或是custom等等。您不需要個別去安裝後面DRBL需要的package,例如dhcp, tftp等等,第二步驟中程式會尋找與設定需要的package。如果您已經裝的package,第二步驟不會重新再裝該套程式,只會針對需要而重新設定。
- 請記得,您在server上所擁有的程式,DRBL四步安裝法第三步驟執行完後,client才有,server上沒有的程式,在第三步驟完成後,client也不會有。所以您可以在第三步驟之前先安裝您認為需要的程式,例如flash player或是Java等等。
- 有關SELINUX-若您是使用Fedora Core 2或是之後的版本,建議不要開啟selinux。Fedora Core 2預設是disable的,但是Fedora Core 3 (含)以後的版本,預設是開啟的。如果您在Fedora Core 3或是之後的版本常常莫名其妙地遇到"Permission denied"的問題,或是Client出現"Enforcing mode requested, but no policy loaded.Halting now. Kernel pan ic not syncing. Attempted to kill init.",建議關閉selinux,也就是在這台server的/etc/sysconfig/selinux中,設定SELINUX=disabled,然後重新開機即可。
- 對中小學的電腦教室而言,中文環境是不可或缺的,目前大部份的GNU/Linux套件中文已經相當完整了,只要您安裝的時候記得選取中文部分就可以了。
- 另外,請設定好所有網路卡的IP位址,我們後面用的是eth0對外,其餘的eth1以後的對內部使用(請務必將這些內部使用的網路卡IP都設成192.168.x.x, 172.16-31.x.x或是10.x.x.x等的private IP,例如eth1:192.168.101.254, eth2:192.168.102.254, eth3:192.168.103.254...);請注意一個原則,private IP (192.168.x.x)將會被拿來做DRBL環境的連結用。安裝時也建議關閉防火牆,等DRBL安裝完之後再來設定防火牆。另外,如果你的GNU/Linux安裝的時候自動幫你裝了NetworkManager,且被自動啟動的話,建議關閉或者移除,因為當作伺服器的機器並不適合使用NetworkManager。舉例而言,Fedora的話,可以這樣處理: sudo chkconfig --del NetworkManager; sudo chkconfig --del NetworkManagerDispatcher,然後啟動chkconfig network on。Ubuntu或者Debian之類的套件,先手動安裝圖形的網路設定程式: "sudo apt-get install gnome-network-admin",然後直接移除network manager: "sudo apt-get --purge remove network-manager",重新開機後,執行"network-admin"(或者在Gnome桌面選擇"系統"-> "管理" -> "網路")就可以設定固接網路。
其他注意事項:
- 安裝完之後,如果您的系統沒有開啟對硬碟 DMA 支援,建議您開啟以增快server硬碟讀取速度。您可以用"hdparm /dev/hdx"來看using_dma是否on或是off,如果是off的話,可以執行"hdparm -d1 -c3 -k1 /dev/hdx"而開啟它,以上請將/dev/hdx改成您的server硬碟裝置檔,一般是/dev/hda。如果要以後每次開機之後都能啟動dma,以Fedora/RedHat/Mandrake為例,您可以在/etc/sysconfig/harddisks中將# USE_DMA=1的註解"#"拿掉變成USE_DMA=1。
- 如果你的DRBL主機只有一張網路卡,或是為了擴大server對內的網路流量,你的eth0也可以用IP alias設成兩個IP,一個(eth0)供server連到public Internet用,另外一個(eth0:1)供DRBL環境用,RedHat-like套件的eth0:1設定方法見此。<注意>如果你使用alias IP的話,以本例,DRBL server會發IP address給連結在eth0網段上的電腦,所以如果你步驟三的時候不鎖定用戶端電腦的MAC address,這樣server就會發IP address給任何電腦。有時候這樣會是一種困擾。建議你非必要不要用alias IP。
步驟2 - server上相關套件的安裝
這部分當然還是安裝在server上,只是這些服務是提供給client用的。再度提醒,你務必完成第一步驟的相關設定才來進行此部份的安裝。
- <步驟2a->-依照不同的套件,有不同的方式下載drbl程式來安裝
- Debian或是Ubuntu
- 如果您不是系統管理者(root),執行指令"su root" (然後輸入root的密碼),如果你的套件沒有設定root密碼,可以用"sudo su " (然後該使用者的密碼)以便切換成root
- 請先安裝DRBL的金鑰(ID: 4096R/45599AFD, Key fingerprint = 54C0 821A 4871 5DAF D61B FCAF 6678 57D0 4559 9AFD),有兩個方式可以來安裝。方法1: "sudo wget -O /etc/apt/trusted.gpg.d/drbl-gpg.asc https://drbl.org/GPG-KEY-DRBL" 。方法2: 或是由key server下載,KeyID是45599AFD,可以這樣執行"gpg --keyserver subkeys.pgp.net --recv-key 45599AFD",然後再執行"gpg -a --export 45599AFD | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/drbl-gpg.asc".
- 請編寫/etc/apt/sources.list,至少要包含以下的儲藏庫:
-
如果您的套件是Stretch (10.x):
----------
deb http://free.nchc.org.tw/debian/ buster main
deb http://free.nchc.org.tw/drbl-core drbl stable
----------
如果您的套件是Stretch (9.x):
----------
deb http://free.nchc.org.tw/debian/ stretch main
deb http://free.nchc.org.tw/drbl-core drbl stable
----------
如果您的套件是Ubuntu Jammy (22.04) (Snaps 的軟體在用戶端無法支援使用):
----------
deb http://free.nchc.org.tw/ubuntu jammy main restricted universe multiverse
deb http://free.nchc.org.tw/drbl-core drbl stable
----------
如果您的套件是Ubuntu Focal (20.04):
----------
deb http://free.nchc.org.tw/ubuntu focal main restricted universe multiverse
deb http://free.nchc.org.tw/drbl-core drbl stable
----------
- 以上第一行中Debian或是Ubuntu的apt repository當然可以採用其他的apt repository,但是第二行DRBL相關程式請用這個位址。
如果您想要使用測試版本中的DRBL程式,第二行可以這樣寫:
---------- - 執行 "sudo apt-get update"
- 執行 "sudo apt-get install drbl"來安裝drbl程式
- 有關B2D的相關提醒:(1) B2D預設會把TCPwrapper開啟,所以你必須注意要記得改/etc/hosts.allow,寫法請參考這裡。要不然後面第三步驟執行完後client會開不了機。(2) B2D中的kdm似乎在DRBL client環境下,非常不穩定,有時候啟動時,會發現已經有kdm了,然後就不跑了,造成用戶端沒有圖形登入畫面。解決的方法就是在執行步驟2b的drblsrv之前,先安裝gdm (apt-get install gdm),然後把gdm設為預設的dm。如果已經有gdm的話,但是並不是預設的dm,可以再執行"dpkg-reconfigure gdm"來把gdm設定為預設的dm。
- RedHat/Fedora/CentOS
- 如果您不是系統管理者(root),執行指令"su root" (然後輸入root的密碼),如果你的套件沒有設定root密碼,可以用"sudo su " (然後該使用者的密碼)以便切換成root
- 請先安裝DRBL的金鑰(ID: 4096R/45599AFD, Key fingerprint = 54C0 821A 4871 5DAF D61B FCAF 6678 57D0 4559 9AFD),這樣可以進一步確認您安裝的程式是本計畫所發行的程式。有兩個方式可以來安裝。方法1: "rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL" 。方法2: 由key server下載,KeyID是45599AFD,可以這樣執行"gpg --keyserver subkeys.pgp.net --recv-key 45599AFD",然後再執行"gpg -a --export 45599AFD > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL". 如果你要查詢系統是否已經有匯入數位簽章的話,可以這樣查詢: rpm -qa gpg-pubkey*。
- 下載DRBL的RPM檔(檔名如drbl-1.9.6-35.i386.rpm):穩定版,測試中的版本,或是不穩定的版本。
- 執行"rpm -Uvh drbl-XXX.i386.rpm"或者"yum install drbl-XXX.i386.rpm" (如果你的套件有yum的話)來安裝drbl程式,drbl-XXX.i386.rpm就是您剛剛下載的檔案,如果您是下載穩定版的話,就執行"rpm -Uvh drbl-current.i386.rpm"或者"yum install drbl-current.i386.rpm"。
- 註:由於drbl程式使用到一個perl的模組,一般套件都會內建安裝perl-Digest-SHA1這個package,如果您的系統中沒有的話,請自己先裝。以Fedora 8為例,可以這樣安裝(1) "yum install perl-Digest-SHA1" 或者(2) "rpm -Uvh http://opensource.nchc.org.tw/fedora/linux/releases/8/Fedora/i386/os/Packages/perl-Digest-SHA1-2.11-4.fc8.i386.rpm"
- SuSE
- 如果您不是系統管理者(root),執行指令"su root" (然後輸入root的密碼),如果你的套件沒有設定root密碼,可以用"sudo su " (然後該使用者的密碼)以便切換成root
- 請先安裝DRBL的金鑰(ID: 4096R/45599AFD, Key fingerprint = 54C0 821A 4871 5DAF D61B FCAF 6678 57D0 4559 9AFD),這樣可以進一步確認您安裝的程式是本計畫所發行的程式。有兩個方式可以來安裝。方法1: "rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL" 。方法2: 由key server下載,KeyID是45599AFD,可以這樣執行"gpg --keyserver subkeys.pgp.net --recv-key 45599AFD",然後再執行"gpg -a --export 45599AFD > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL".
- OpenSuSE/SuSE 10.0或者以後的版本
- 註:另外有兩個drbl-core的映射站: (1) http://ftp.twaren.net/local-distfiles/drbl-core/ (2) http://drbl.sourceforge.net/drbl-core
deb http://free.nchc.org.tw/drbl-core drbl testing
----------
如果您想要使用不穩定版本的DRBL程式,第二行可以這樣寫:
----------
deb http://free.nchc.org.tw/drbl-core drbl unstable
----------
- <步驟2b>
- 場景1: 假如對外網路順暢,你的套件有提供apt, urpmi或是yum的儲藏庫: 執行"drblsrv -i"。注意"-i"前面有個空格。執行的例子請按這裡。原則上,如果您不確定的地方,您可以直接按Enter使用預設值即可。
- 場景2: 假如對外網路不通,緩慢,你的套件不提供apt, urpmi或是yum的儲藏庫(例如RHEL),或是你有其他理由不要讓DRBL來幫你安裝需要的程式: 你可以先自行安裝需要的程式(例如使用apt-get, up2date, yum, yast 或是 urpmi),然後再來使用"drblsrv-offline"來完成步驟2(drblsrv-offline要在drbl 1.7.6-22之後(含)的版本才有)。需要的程式可以由"drblsrv-offline -r"來得到。注意"-r"前面有個空格。安裝完需要的程式後,如果要使用server上的kernel給用戶端使用,可以執行"drblsrv-offline -s `uname -r`",或者你自行下載確認適當的kernel rpm/deb,然後執行"drblsrv-offline -k $KERNEL_PKG" ($KERNEL_PKG就是你下載下來的核心rpm或是deb檔案名稱(包含路徑)")。執行的時候,原則上,如果您不確定的地方,您可以直接按Enter使用預設值即可。(註1:更多的drblsrv-offline的用法,可以經由"drblsrv-offline --help"來得到。註2: 在Scientific Linux 5.0上或是M6上安裝DRBL的過程可以參考這個FAQ)
- 給沒有耐心的人:如果您真的沒有耐心看完或是設定完<步驟2b>與<步驟3a>所有的選項,而且你的網路連線順暢,你的套件也有提供apt, urpmi或是yum的儲藏庫,你可以直接執行"drbl4imp",這樣程式會用預設的場景,將<步驟2b>與<步驟3a>做完,然後您就馬上可以用了,原則上其實就是把步驟二和步驟三執行的時候都按Enter鍵使用預設的值就是了。但是,請注意,這個場景可能不符合您現場的環境。這個場景是預設您每張網路卡(eth1,eth2...不含eth0)經由switch連接到12台用戶端電腦,然後不鎖住MACaddress的方式來發放IP位址給用戶端使用。
步驟3 - 在server上建置client的檔案系統
-
規劃您的訓練教室,請耐心瞭解以下內容
- 以國家高速網路與計算中心的C教室為例:該教室共有40台電腦,為了提高 DRBL 的效率,我們將之分成4個子網路(subnet),分別是 192.168.100.0、192.168.101.0、192.168.102.0、192.168.103.0,DRBL 伺服器(Server)有四張網路卡, 其中一個port對外(eth0),另外4個port對內(eth0:1, eth1, eth2, eth3),對內的4個ports IP分別是192.168.100.254, 192.168.101.254,192.168.102.254,192.168.103.254; 在 DRBL 伺服器上跑的 DHCP、TFTP、NFS 都會在這4個網路卡上提供服務。
NIC NIC IP Clients
+-----------------------------+
| DRBL SERVER |
| |
|+-- [eth0] public IP +- to WAN
| (ex. 61.216.116.23) |
| |
|+-- [eth0:1] 192.168.100.254 +- to clients group 1 [ 10 clients, their IP
| | from 192.168.100.1 - 192.168.100.10]
|+-- [eth1] 192.168.101.254 +- to clients group 1 [ 10 clients, their IP
| | from 192.168.101.1 - 192.168.101.10]
|+-- [eth2] 192.168.102.254 +- to clients group 2 [ 10 clients, their IP
| | from 192.168.102.1 - 192.168.102.10]
|+-- [eth3] 192.168.103.254 +- to clients group 3 [ 10 clients, their IP
| | from 192.168.103.1 - 192.168.103.10]
+-----------------------------+ - 網路交換器與網路卡分流注意事項
在網路交換器(switch)的部分,有一個地方要注意的,基本上建議您最好用鎖定學生電腦MAC address的方式,以確定每一台都能有固定不變的 IP(也就是在步驟3a中,執行"drblpush -i"的時候,遇到"現在我們可以收集用戶端電腦網卡卡號(MAC Adrees)!"時,回答的是"Y")。要不然如果用不鎖定MAC address (以後我們稱做range)的方式,您的switch又恰好是一台48 ports(或是多台串成一台),DRBL server採用4張網卡分流,這樣會造成有些機器從DRBL server租不到IP,自然就沒辦法開機了。
如果您的DRBL server採用4張網路卡分流(這裡所說的4張網卡分流指的是您有4個 private subnet,例如192.168.100.x, 192.168,101,x, 192.168.102.x, 192.168.103.x),您手邊的網路交換器有4台,彼此不串接成一個網路交換器,這樣的話,您就可以用range的方式,也就是不鎖定學生電腦的MAC address。這樣是不會發生有些機器從DRBL server租不到IP而沒辦法開機。
請記得一個規則,就是如果DRBL server用N張網卡分流,要採用range的方式,您就需要N台網路交換器,而且這N網路交換器彼此不串接(不串接這點非常重要)。 - 從DRBL 1.6.3以後的版本,可以有Full DRBL, Full Clonezilla, DRBL SSI (Single System Image)與Clonezilla Box 四種模式,前兩個Full模式需要多一點的網路流量與硬碟空間,但是用戶端所有的檔案都會回存到伺服器。而DRBL SSI模式,乃是使用單一的主程式,用戶端開機後動態調整需要的設定。這個模式的好處是server設定以及所需的空間減少。但是缺點是每台不能回存各自的系統設定檔(使用者的設定檔與資料仍然可以回存)。用戶端電腦數目有所增加,只要改dhcpd.conf之後,執行 "dcs -> others -> gen_3N_conf"或是"drbl-3n-conf generate"即可以馬上增加用戶端電腦的數目。採用此模式,理論上server一張網卡可以支援253台client。另外Clonezilla box 模式乃是DRBL SSI的延伸,以用戶端的RAM降低網路流量,理論上server一張網卡可以支援253台client來clone。<注意>DRBL SSI模式,最好是在你用戶端電腦的RAM夠大,例如1 GB,以及所有用戶端的硬體(尤其是顯示卡)都一樣才建議使用。四種模式的比較表見此。
- 執行步驟<3a>之前,有幾個可以自行定義的地方:
- 如果DRBL server上有其他特別的目錄你要分享給所有用戶端的話,例如/work1,那可以用文字編輯器,開啟/etc/drbl/drbl.conf,把設定寫成diskless_root_dir_ro_user_add="/work1"(如果你的/work1是要讓用戶端只可以讀不能寫的話)或是diskless_root_dir_rw_user_add="/work1"(如果你的/work1是要讓用戶端可以讀寫的話)。<注意!!! drbl.conf檔案很重要,請小心編輯>。
- 如果所有的用戶端本身都有硬碟,而且分割區已經格式化了(例如/dev/hda1,檔案系統是ext3),你想要用戶端開機後會自動掛載到/localwork目錄中。那你可以編輯/etc/drbl/client-append-fstab,把資料填進去,寫法如同/etc/fstab的寫法。以本例,/etc/drbl/client-append-fstab可以這樣寫:
/dev/hda1 /localwork ext3 defaults 0 0
(註:你不需要自行在DRBL server上建立/tftpboot/node_root/localwork目錄,待會drblpush會幫你產生) - 如果你有特別的服務(例如apmd與bluetooth等)要在所有的用戶端開機後自動啟動,你可以編輯/etc/drbl/client-extra-service,把設定寫成service_extra_added="apmd bluetooth"。
- 如果你有部份或是全部的用戶端機器不想使用待會程式自動產生的電腦名稱,而是要自己指定用戶端電腦名稱,可以先編輯/etc/drbl/client-ip-hostname,把要指定的名稱依據IP address與名稱一行一行對應好。/etc/drbl/client-ip-hostname中沒有指定到的機器,drblpush會給與一個自動產生的機器名稱。
- <步驟3a>瞭解您的環境以及設定後,執行 drblpush -i
- <注意>往後有新增加的client電腦或是server上新安裝了軟體等,請再執行一遍"drblpush -i"或是"drblpush -c /etc/drbl/drblpush.conf"(這個會讀取前一次存下來的設定檔)以便重新部署檔案給您的client電腦用。[註]執行完這個指令你的用戶端有可能需要重新開機才能正常運作。
- <注意>安裝好DRBL相關這些程式後,不建議您開您的GNU/Linux啟套件自動更新的功能,因為有可能更新後,伺服器的檔案和用戶端的檔案版本不一致,如果您要開啟自動更新功能的話,必須再每次更新後,再自動執行一次上述的步驟。另外,如果要升級DRBL相關的程式,請依照後面的升級方式來進行,不適宜讓套件自動把DRBL相關程式升級。
請注意"-i"前面有個空格。然後程式會自動偵測系統,找到參數,系統沒有設定的參數,程式會要求您輸入。執行的例子請按這裡。原則上,如果您不確定的地方,您可以直接按Enter使用預設值即可。
步驟4 - 讓client端(也就是學生用的機器)網路開機
-
要讓用戶端機器能網路開機,基本上有4種狀況。(1). 用戶端機器的網卡有PXE網路開機功能 (2). 用戶端機器有軟碟機 (3). 用戶端機器有光碟機 (4). 用戶端機器本身有硬碟。(2)到(4)的部份,我們這裡以iPXE為例。
-
(1). 用戶端機器的網卡有PXE網路開機功能
- 直接將用戶端電腦的BIOS設定成網路開機就可以當DRBL的client了。2003年(含)以後新購買的電腦,主機板內建的網卡幾乎都有PXE功能,您可以進BIOS查看看,然後把那個PXE網路開機功能開啟。請參考你的主機板手冊為準。一般來說,設定的地方在Advanced -> Onboard Devices Configuration -> Onboard LAN -> Onboard LAN Boot Rom -> Enabled。另外,幾個地方建議這樣調整,以方便由DRBL server集中管理: (1) Boot order設成優先順序為LAN -> CDROM -> HD (2)開啟Wake on LAN (可能在APM Configuration -> Power On By PCI Devices)。
- 如果您學生端機器沒有支援網路開機PXE的網路卡,可以用後面提到的軟碟,光碟或是硬碟來做到網路開機。另外,本實驗室也提供PXE網路卡製作服務,有需求者請參考這裡。
-
(2). 用戶端機器有軟碟機
- <步驟4a->
- 找到DRBL server的這個檔案"/usr/share/ipxe/ipxe.dsk"。
- 然後放入磁片到軟碟機,
- <步驟4b->若是在Linux下,執行 "cat /usr/share/ipxe/ipxe.dsk > /dev/fd0"
- <步驟4b->若是在MS windows下,您要用rawrite.exe或是"RawWrite for windows" (http://uranus.it.swin.edu.au/~jn/linux/)來寫入此檔到軟碟片。
- <步驟4c->做完的磁片要放在學生電腦的軟碟機中,並在學生電腦的BIOS中設定為軟碟開機。
- 如果用戶端的硬碟已經有安裝GNU/Linux的話,可以使用grub:
1. 一般grub是安裝在Linux的檔案系統中(安裝到MS windows 2000/XP的方法見後),如果是如此的話,將server的"/usr/share/ipxe/ipxe.lkrn"複製到用戶端硬碟的"/boot/"目錄下
2. 編輯用戶端電腦的/boot/grub/menu.lst或是/boot/grub/grub.conf (視您的套件而定):
---------------
title iPXE
kernel /boot/ipxe.lkrn
---------------
3. 修改戶端電腦的/boot/grub/menu.lst或是/boot/grub/grub.conf的"default值"為上述那個區塊的對應區塊的數字, 例如"default 1"。 - 如果用戶端的硬碟中已經安裝MS Windows XP/2K中,可以使用WINGRUB:
請在MS Windows 2K/XP中安裝WINGRUB,將檔案ipxe.lkrn放在C:\下,而C:\boot.ini與C:\GRUB\MENU.LST的內容類似這樣(此法僅適用將wingrub的安裝設定指定在BOOT.INI (Tool -> Install grub -> Boot from BOOT.INI),有需要你可以使用wingrub其他的安裝設定方式):
boot.ini:
---------------
[boot loader]
timeout=30
default=C:\GRLDR
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
C:\GRLDR="iPXE"
---------------
MENU.LST:
---------------
timeout 7
title etherboot
root (hd0,0)
kernel /ipxe.lkrn
title Windows at (hd0,0)
root (hd0,0)
chainloader +1
---------------
- 備份重要的檔案,例如/etc/drbl下所有的檔案,以及/etc/dhcpd.conf或是/etc/dhcp3/dhcpd.conf等檔案以備不時之需
- 執行drblsrv -u來移除所有已經安裝過的DRBL相關檔案
- 回到步驟2,下載新版的DRBL主程式,然後依照DRBL安裝的步驟,重新安裝一次("drblsrv -i"與"drblpush -i")。
- 執行drbl-bug-report,會得到一個檢查的結果(可以參考此例),並請依照格式填上您的問題。
- 如果還沒有訂閱郵件討論區的話,請訂閱郵件討論區。如果你沒有加入郵件討論區的話,信將無法計達。
- 把您填寫完的錯誤回報表,寄到該郵件討論區的帳號(drbl@googlegroups.com)
- http://drbl.nchc.org.tw/
- http://drbl.sf.net/
- http://www.study-area.org/
- 阿凱的自由軟體日誌 - 在 Mandrake 9.2 上安裝 DRBL
- http://ipxe.org/
- http://etherboot.sourceforge.org/
- http://www.rom-o-matic.net/
- http://www.ltsp.org/
- Diskless HOWTO
- Diskless-nfs-root HOWTO
- Diskless-nfs-root-other HOWTO
- Network-boot-HOWTO
- NIS HOWTO
- NFS HOWTO
- Etherboot User Manual
- http://disklessworkstations.com/
- How to pick a bootrom
- DIET-PC
- Diskless Nodes with Gentoo
- 如果要用光碟片開機的話,基本步驟是這樣:
1. 找到DRBL server的這個檔案/usr/share/ipxe/ipxe.iso
2. 將ISO檔燒到CD:
在Linux例如: cdrecord -v speed=12 fs=16m dev=0,0,0 driveropts=burnproof -data /usr/share/ipxe/ipxe.iso
(dev=0,0,0可能要改,您可根據"cdrecord -scanbus"而得知)
(driveropts要根據您的燒錄機而定,或是乾脆不寫也可以,這麼小的image檔不太容易會出飛盤...)
當然,您也可以把檔案傳到MS Windows上,然後用您熟悉的燒錄程式來燒到光碟上。
3. 確定你PC的BIOS是從CDROM開機,然後放入光碟,就可以開機了.
五、DRBL的使用
-
由於DRBL屬於集中管理的環境,因此,透過一些指令,您可以很方便與快速的管理整個環境,下一個指令就可以讓全部的電腦使用。詳細的指令列表與說明請參考這裡,其中最常用的指令是"dcs",這個指令是用來切換用戶端電腦開機時候的模式,它的快照如下:
- 此外,DRBL也可以搭配一些小型的GNU/Linux(DSL, PuppyLinux, INSERT, PLD, Debian Live, GeeXbox, PUD-Linux 等)讓用戶端開機後,不需要繼續插著網路線還可以繼續使用,亦即射後不理模式模式(fire and forget)。詳情請參考drbl-sl的使用。
六、升級
- 日後如要升級DRBL的話,可以這樣做:
七、移除
- 日後如要移除DRBL的話,只要執行"drblsrv -u",然後依照執行即可。
八、回報問題
- 如果您安裝或是使用時遇到問題,想要回報的話,請依照這樣做,可以節省大家的時間: