DRBL FAQ
时间:2006-02-01 来源:xwq_007


DRBL common |
|
說明:DRBL (Penguinzilla)各個套件上(Debian/RedHat/Fedora/CentOS/Mandriva/SuSE)共同的常見問題 | |
2002年5月國網中心在立法院公聽會提出國家型開放原始碼計畫的構想,計畫雖未成立,但我們秉持 理念 自由 經費 鼓勵創新,培植本土軟體資訊人材 建立資訊工業自主實力 節省政府支出,每年省下二十億以上 促進資料交換格式開放,確保資訊自由 本自由軟體實驗室認為: 自由軟體不應該在資訊教育環境中缺席。 台灣,大部分個人電腦的作業系統與辦公室軟體均為少數外商的產品,至民國89年底,政府機關與學校單位設置的個人電腦總數為1,229,276部,估計支付外商公司軟體授權費超過新台幣七十億元以上。即使付那麼多錢,我們還是要強調合法、守法與智慧財產權的觀念。 我們要教育學生合法守法的觀念,不管使用商業獨家軟體或是自由軟體。不要把盜版當作理所當然。我們的資訊教育第一堂課就應該教智慧財產權。而且要身體力行。不要說一套做一套。該付錢就付錢。 教育之所以為教育就是要學生學習能組合與創造的工具,例如數學和英文課程。我們的數學教育不會只教學生計算機的操作,我們的英文教育不會只教學生翻譯機的操作。資訊教育應該也是這樣。要學習終身受用的工具,而不是隨商業套裝軟體起舞。 我們的教育,如果只是整天教小孩子昂貴的軟體與作業系統,那學生只有兩條路,不是非常有錢來買軟體,就是作罪犯來盜版。 如果我們的老師永遠睜一眼閉一眼,小孩子從小就受這樣的教育,惡小為之,人格必定扭曲。為何要讓學生生活在那樣的環境中? 這是個法治的社會,未來也是,請教育我們的下一代,什麼叫做合法,什麼叫做守法,什麼叫做智慧財產權。我們大家一起來。 |
以下所列的規格僅供參考,採購時可依據經費與當時最佳的設備來採購,中央政府各機關、學校委託的中央信託局集中採購案中有符合使用的設備。 伺服器最低規格:CPU 450 MHz,記憶體256 MB,fast ethernet(100Mbps)網路卡多張。建議規格:CPU 2.6 GHz,記憶體1 GB,Gigabits網路卡4張。 客戶端最低規格:CPU 300 MHz,記憶體128 MB,100Mbps網路卡,若是新購電腦的話建議直接買有支援網路開機(PXE)的網卡或是內建PXE功能網卡的主機板。 網路連接設備最低需求:100Mbps的交換器。建議規格: 以40人的電腦教室為例,兩台24埠100Mbps的交換器,每台上面另外各別有2個Gigabits ports。 |
|
已經有LTSP了,為何還要再開發Penguinzilla? 基本上,我們分幾個部分來看:
|
主要看您要如何使用,這裡舉幾個例子: 1. 電腦教室的教學環境 2. PC Cluster環境 3. 還原系統,使用Clonezilla (http://drbl.nchc.org.tw/redhat/desktop/techrpt.php?c=drbl-ocs&t=Clonezilla)可以做到類似Symantec Ghost? Corporate Edition大量複製作業系統的功能。 4. 硬體測試開發,例如拿到新的PC,要試看看是否能跑Linux,或是要燒機測試,您可以用DRBL這樣的環境,不需要在那台新的電腦在安裝作業系統,只要將新的電腦設成網路開機就可以馬上跑。甚至連硬碟都可以省去。DRBL是一個相當好的開發平台。尤其是機器非常多的開發環境,可以省去複製或是安裝作業系統的時間與精力。 |
Penguinzilla (DRBL) 的用戶端電腦真的不需要硬碟,也就是沒有硬碟的話,可以運作良好。有硬碟的話,DRBL也可以拿來充分利用。如果用戶端的記憶體不是足夠的時候,透過用戶端自己的硬碟,可以產生置換檔(swap file)來當做虛擬記憶體使用。此外,你也可以將硬碟的分割區掛載上來給用戶端使用,以便做某些程式的的暫存檔案空間。 在DRBL架構中的client端電腦,開機的時候,如果只進文字模式登入,client端大約只需要32MB的記憶體,若是要進X-windows,大概需要64MB的記憶體。再來的記憶體的需求就是應用程式的需求。 所以如果您遇到client端開不了機,絕對不是記憶體不夠,需要硬碟來做swap,而是其他的問題。很多問題是出現在網路環境不正常,網路交換器品質不好等,不見得一定要swap,除非client端的程式要用到很多記憶體,當然,這就看client的操作行為而定。但開不了機,絕對不是需要硬碟來做swap。以某個學校為例,因為lightboot server 與 DRBL server 同時開,兩個server的dhcp service互相衝突的結果,client端就沒辦法由DRBL server來正確抓到檔案,自然就開不了機了。 換個角度來看,電腦教室的環境我們可以區分做 1. diskless (無碟)環境 2. systemless (無系統)環境 3. diskfull (完全安裝作業系統與應用程式)環境 DRBL可以達成上述的1,2兩項。另外,透過Clonezilla,可以快速做成第3項diskfull環境的還原再生。 |
由於DRBL與OCS這兩個個名稱非常的抽象,也不容易記,而且中文不容易稱呼。我們決定中文叫做企鵝龍(Penguinzilla),英文還是叫做DRBL,Penguinzilla也可以是另外一個稱呼就是了。而Clonezilla取代OCS。 在中文名稱方面,DRBL與Clonezilla不妨稱作企鵝龍與再生龍...呵呵,不要記錯,不是保麗龍喔. 讓我們歡迎這兩個龍寶寶的誕生... |
不需要相同的網路卡,以我們其中的一個例子而言,server是1張bcm4400的卡,三張rtl8139的卡,client有bcm4400, rtl8139, e100等等的卡都可以。 只要那張卡Linux有driver,就可以使用那張卡來作DRBL的client。 |
本自由軟體實驗室針對DRBL一年有開設4次訓練課程,您可以注意本網頁的公告,課程講義資料部份, 訂閱DRBL的mailing list,或是本中心的首頁。另外,我們也常常接受縣市網中心或是學校的邀請,前往擔任講師,您可以注意一下您所在區域的縣市網中心。 |
請參考這裡。 |
如果您在做client的網路開機片有不易判斷client網路卡型號的困擾,這裡有一個解決方案,就是利用一片軟碟開機片找出學生client的網路卡型號,請參考安裝文件的第四步驟. |
Clonezilla無法直接修改M$ Windows partition中的檔案來做到這樣的目的,所以您必須在做母片(指當範本的機器)之前,先在該台電腦植入一個程式,以便那個映像檔複製給其他台電腦後,那些電腦自動開機後改hostname。作法如下: 步驟一. 安裝Cygwin (1). install cygwin http://sources.redhat.com/cygwin http://sources.redhat.com/cygwin/setup.exe 務必安裝 (a). Admin -> cygrunsrv, shutdown (b). Net -> openssh 其他就照預設的. (2). 設定環境變數,選定NTSEC 開始->控制台->系統(若是一般user,請點選,然後按shift+mouse 右鍵A選執行為,然後輸入root的帳號及密碼)->進階->環境變數->系統變數->新增 CYGWIN=ntsec tty 以及在PATH的地方,在最後面加上";c\cygwin\bin",也就是變成例如這樣: %SystemRoot%\system32;%SystemRoot%;c:\cygwin\bin 註: 以上的"CYGWIN=ntsec tty"是將security上設為與NT的security相關,也就是user的權限等是依照NT的user權限來開。 注意:檔案權限等只有在檔案系統為NTFS時才有用,若為FAT/FAT32就沒有檔案權限的關係全部只與login的user有關 (3). 安裝完後執行 ssh-host-config 會問你要不要安裝成service,選yes 步驟二. 要讓開機之後自動將機器的hostname改成唯一的一個名字: (1). 點這裡下載chkhostname.reg, chkname.sh,以及wsname.exe。然後在M$ Windows中,將chkhostname.reg點兩下,這會在開機的時候執行一個程式chkname.sh,來判斷hostname是否不同,如果不同就透過wsname.exe改名,經hostname改成IP addresss轉換過來的名字(例如192-168-1-1) 點選完chkhostname.reg之後,請在M$ Windows下執行regedit,看一下其中的 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] 是否有chkname,沒有的話,就是您下載下來的chkhostname.reg檔案並不是unicode,請轉成unicode,然後重新點兩下chkhostname.reg (2). 將chkname.sh與wsname.exe copy到c:/cygwin/bin下, (3). 將機器設成autologin,這樣重新開機後才能自動執行chkname.sh ---------------------------------------------------------------------- 這裡可以參考微軟網頁中的說明: http://support.microsoft.com/default.aspx?scid=kb;en-us;315231 (a). 選開始->執行->如果是WinXP,請輸入"control userpasswords2",如果是Win2K請輸入"control userpasswords",然後選確定. (b). 不要勾選"必須輸入使用者名稱和密碼,才能使用這台電腦",這樣就可以自動登入. ---------------------------------------------------------------------- (4). 如果您想要從DRBL server直接下指令來控制用戶端的電腦(指的是作業系統是M$ Windows),您必須完成這個步驟以及步驟(5) 在DRBL server產生root的ssh key (如果你還沒產生的話) ssh-keygen -d 然後就會在.ssh下產生兩個檔 id_dsa id_dsa.pub 然後將id_dsa.pub 傳到範本機器中,管理者(administrator)的家目錄下的.ssh目錄(一般是c:\cygwin\home\Administrator\.ssh\)中,存成 authorized_keys (.ssh目錄如果你沒用administrator帳號執行過ssh的話,要自己建) 另外,建議加一個root帳號,權限和Administrtor一樣,也將 id_dsa.pub傳到cygwin機器中的root/.ssh/中,存成authorized_keys (5). 現在可以試看看是否可以由server端下指令直接執行範本機器,例如: ssh administrator@computer_M_IP date computer_M_IP指的是範本機器的IP(照上例的話,這裡就不需輸入密碼)。如果會顯示出範本機器的時間就代表您成功了。 註1: chkhostname.reg內容(務必確認為Unicode),注意:這個語法只符合M$ Win 2k, XP: ---------------------------------------------------------------------- Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] "chkname"="c:\\cygwin\\bin\\sh.exe c:\\cygwin\\bin\\chkname.sh" ---------------------------------------------------------------------- chkname.sh內容 ---------------------------------------------------------------------- #!/bin/sh IP=$(ipconfig |grep "IP Address"|cut -d":" -f2|sed -e "s/\./-/g" -e "s/ //g") echo "IP:$IP" while [ "$IP" = "0-0-0-0" -o "$(echo $IP | cut -d- -f1)" = "169" ] do ipconfig /renew IP=$(ipconfig |grep "IP Address"|cut -d":" -f2|sed -e "s/\./-/g" -e "s/ //g") echo "IP:$IP" done HNAME=$(hostname) echo "Hostname:$HNAME" if [ "$HNAME" != "$IP" ]; then echo "The hostname is not the right one... we will change it!" echo "Then reboot the machine to make it work!" sleep 5 wsname.exe /N:%IP /REBOOT fi ---------------------------------------------------------------------- wsname.exe可以在這裡下載: http://mystuff.clarke.co.nz/ ---------------------------------------------------------------------- 註2: 如果要在server強迫reboot or shutdown 在DRBL server中: 下指令將Client reboot: a. client為M$ windows機器 /opt/drbl/bin/drbl-doit -u administartor /usr/bin/reboot -f now b. client為DRBL client機器 /opt/drbl/bin/drbl-doit -u root /sbin/reboot 下指令將Client關機: a. client為M$ windows機器 /opt/drbl/bin/drbl-doit -u administartor /usr/bin/shutdown -f now b. client為DRBL client機器 /opt/drbl/bin/drbl-doit -u root /sbin/shutdown -f now ---------------------------------------------------------------------- 註3. 如果不想用regedit的方式來自動執行,或是在Win98中,可以放一個批次檔到 開始->程式集->啟動中,例如此批次檔為run_ckhn.bat --------------------------------------------- set PATH=%PATH%;c:\cygwin\sbin;c:\cygwin\bin c:\cygwin\bin\sh.exe c:\cygwin\bin\chkname.sh --------------------------------------------- 不過這樣就是每次使用者登入的時候都會執行這個批次檔。 |
例子1: 這是新竹縣湖口國小DRBL環境時執行的狀況(感謝Net Shu與該校簡老師提供的資料): 1. 湖口國小DRBL教室共有學生電腦41部,以兩部Giga Bits Switch方式將Clients的實體連接網段區分(192.168.1.0/24 -> Switch 1,192.168.2.0/24- Switch 2), 開機測試結果:41部Clients全開約2.5 Min.(含Clients首次開機時偵測X Window的畫面)。 2. OpenOffice開啟空白文件,並寫入資料後儲存加以測試,估計開啟OpenOffice約需 45Sec.寫入(儲存)約需2~3Sec.(單部)。 例子2: 這是台北縣大豐國小DRBL環境時執行的狀況(感謝該校老師T.C LIN提供的資料):
例子3: 使用的server是1.6GHz的CPU, RAM 256MB,client是350MHz的CPU, RAM 128 MB,在只有一台client連接的狀態下,client開啟Openoffice.org 1.1RC5中文版需要1.5分鐘左右是否正常?(感謝宜蘭縣中華國中趙老師提供的測試數據) 我們的經驗,以這樣的設備,跑DRBL for Debian,client使用KDE 3.1,如果設定與硬體選擇都適當的話,只有一台client連接的狀態下,client端開啟一個Openoffice.org約需30-40秒,所以請確認 1. Server硬碟的udma是否有開啟,如未開啟,請將其開啟。 2, 網路卡是否為10/100 Mbps的卡?網路交換器是否為10/100 Mbps的switch?簡單的檢查方式就是拿10/100 Mbps的switch,插上網路線後檢視switch的訊號燈,是否為100 Mbps。 |
我們發展Penguinzilla (DRBL) 企鵝龍是本著自由軟體的精神發展,所以如果您願意貢獻的話,可以有以下幾個方式: 1.最好的方式就是加入發展,測試與使用,發現問題的時候,盡快告訴我們。 2.當然,如果您覺得上述那樣還是不夠的話,您可以寄個卡片,鼓勵我們一下。學校或是公家機關的話,也可以來個簡單的感謝函,讓我們的長官瞭解與肯定我們的工作內容。 3.如果您是公司行號,想要捐一些硬體或是經費供我們發展DRBL,我們也是樂意接受。請聯絡我們,謝謝。 |
請到 http://opensource.nchc.org.tw/mailman/listinfo/drbl 最底下 DRBL Subscribers To change your subscription (set options like digest and delivery modes, get a reminder of your password, or unsubscribe from linux), enter your subscription email address: 輸入您的email address之後,選Edit Options,然後輸入密碼,選Unsubscribe。 如果忘記密碼或是不知道密碼的話,底下還有一個Email My Password To ME,按 下去,系統就會寄密碼給你(收件的電子郵件住址就是您剛剛輸入的那個)。 |
有朋友建議本中心開發美商微軟公司Windows下的無碟系統,然而由於美商微軟公司的Windows產品,不是自由軟體,無法任意複製、使用與散播。同時也無法取得原始碼,況且除非書面同意或是法律允許,否則禁止逆向工程來修改。本中心如開發這樣的系統,有違法之虞,也不符合本實驗室的宗旨。在這些因素下本中心自由軟體實驗室無法開發微軟Windows下的無碟系統。但是,如果您想要自己打造這樣的環境的話,有很多資料可以參考,例如 http://silent.gumph.org/content/4/7/071-diskless-windows-pxe.html |
我們發展DRBL這個自由軟體環境並不是特別針對老舊電腦的使用而發展的,而是為了解決減少管理多台電腦的重複勞力工作。 現在愈新的電腦,如果習慣使用Linux,就愈適合使用DRBL環境。 電腦教室的環境可以區分做 1. diskless (無碟)環境 2. systemless (無系統)環境 3. diskfull (完全安裝作業系統與應用程式)環境 DRBL可以達成上述的1,2兩項。另外,透過DRBL內建的Clonezilla,可以快速做成第3項diskfull環境的還原再生。 採用無碟或是無系統環境不是壞處,NCHC的PC Cluster,使用的主機都是昂貴的設備,一台價格可以在新台幣五萬元以上,可是我們還是會採用無碟或是無系統的環境。為何這樣做?因為這樣可以減少一次管理幾十台到幾百台的勞力。但是如果是個人要用的主機或是筆記型電腦,我們還是會裝上作業系統。這是因地制宜。 無碟或是無系統,真的不是壞處,真的不是偷工減料。如果您使用Linux,如果您一次管理幾十台到幾百台同性質的電腦,您真的會愛上DRBL。更何況,不用花任何一毛錢在軟體的授權費上面,或是,不用當盜版的罪犯。 |
這個問題的緣由以及解決方式: 1. DHCP server設定有問題,或是service沒有啟動或是當掉了。請檢查DHCP server的設定或是重新啟動dhcp server看看。 2. 網路線接錯了,沒有接到和提供PXE服務的DRBL server的網路卡同一個switch上面。 3. 如果是高階的switch的話,要把switch中的spanning-tree calculation關掉,要不然在用戶端電腦開機的時候就會因為這個計算而造成網路暫時不通。以致於用戶端電腦沒有辦法成功取得IP位址。 ref: http://h18004.www1.hp.com/products/servers/management/rdp/knowledgebase/00000138.html |
DRBL for RedHat-like |
|
說明:DRBL在RedHat/Fedora Core/Mandriva/CentOS上的常見問題 | |
DRBL並沒有重新安裝套件,已經有的packages DRBL就不會再裝,除非Redhat有出新的update程式,DRBL在安裝過程中會問您要不要順便更新,這可作可不作。 |
例如您要保留glibc與openssl的話 apt-get -o RPM::Hold::="glibc" -o RPM::Hold::="openssl" upgrade 如果保留的程式數量多的話,可以執行以下shell script,將HOLD_RPM填入您要保留的程式: ---------------------------- #!/bin/sh HOLD_RPM="glibc openssl xinetd xpdf mozilla" for i in $HOLD_RPM; do OPTION="$OPTION -o RPM::Hold::=\"$i\" " done apt-get $OPTION upgrade ---------------------------- |
請再跑一次四步安裝法中的第三步驟,也就是只要有新增加的client電腦或是server上新安裝了軟體等,請再執行一遍"/opt/drbl/setup/drblpush -i"以便重新部署檔案給您的client電腦用。至於四步安裝法中的第二與第四步驟就不需再重做了。 |
各位DRBL for Redhat的使用者大家好: 緊急通知-DRBL for Redhat 請不要 update glibc 由於Redhat最近更新glibc,但是glibc這個程式有個嚴重的bug,就是如果您的機 器是i686,卻"升級"安裝i386的glibc,%post無法清除乾淨,電腦會掛掉,無法開 機。只要和glibc扯上關係的程式,一執行就會產生 Segmentation fault (core dumped) 所以當您執行drblsrv_desktop.sh,而且是選擇不要最佳化,系統問您是否要 update glibc等,請回答No... 網站上的程式小弟已經暫時將"apt-get upgrade"拿掉了。 相關資料請參考: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=88456 https://listman.redhat.com/pipermail/shrike-list/2003-April/001806.html (這是RH9的,不過是一樣的問題) 如果您已經做了,遇到Segmentation fault (core dumped),建議您在還沒重新開 機前, 1. export LD_ASSUME_KERNEL=2.2.5 2.將/lib/i686, /lib/tls以及/usr/lib/i686(如果存在的話)目錄砍掉或是改名. 如果是開不了機,請用redhat 8.0第一片光碟,進去開機,開機時打入"linux rescue",進入rescue mode,然後將目錄/mnt/sysimage/lib/i686, /lib/tls, /mnt/sysimage/usr/lib/i686 (如果存在的話)改名。 |
我們提供DVD的iso image,內容包含RH9/FC1的三片光碟,update中的檔案,以及安裝DRBL相關需要的檔案等, |
在 /etc/dhcpd.conf中"include "/etc/dhcpd.conf.etherboot.include";"之 後加log這一行: -------------------------------------------------- include "/etc/dhcpd.conf.etherboot.include"; include "/etc/dhcpd.conf.pxe-etherboot.include"; log (info, binary-to-ascii( 16, 8, ":", option etherboot.nic-dev-id) ); -------------------------------------------------- 然後在/var/log/message中會看到一行,在DHCPDISCOVER對應您的網路卡MAC address卡號之後,類似1:10:ec:81:39就是了 ------------------------------------- ... Jul 17 10:13:45 temp082 dhcpd: DHCPDISCOVER from 00:40:95:08:fa:f7 via eth1 Jul 17 10:13:45 temp082 dhcpd: DHCPOFFER on 192.168.1.10 to 00:40:95:08:fa:f7 vi a eth1 Jul 17 10:13:45 temp082 dhcpd: 1:10:ec:81:39 Jul 17 10:13:45 temp082 dhcpd: DHCPREQUEST for 192.168.1.10 (192.168.1.254) from 00:40:95:08:fa:f7 via eth1 ... ------------------------------------- 如果你的卡不能被etherboot辨別出來,只能用boot.nbi來給client download的話,在/etc/mknbi-set.conf檔案尾加上一段,類似這樣: -------------------------------------------------------- # The pcnet32 PCI ID of VMware NIC is not listed in # /lib/moudles/%kernel/modules.pcimap, put here # by Steven Shiau pcnet32 0xd041 0x2000 XYZ 0x10ec 0x8139 -------------------------------------------------------- 這樣client就會去下載/tftpboot/nbi_img/boot-XYZ.nbi -------------------------------------------------------- 不過改完這個之後,/opt/drbl/setup/drblsrv & drblpush要重跑,也就是/etc/dhcpd.conf.etherboot-pcimap.include要重新產生 要不然直接重跑 mknbi-set -k /boot/vmlinuz-2.4.20-18.10drbl mkpxeinitrd-net -k 2.4.20-18.10drbl vmlinuz-2.4.20-18.10drbl 與 2.4.20-18.10drbl視您的drbl kernel而定. |
DRBL for RH9有一個功能,如果client有自己的硬碟, DRBL client可以使用自己的硬碟的空的空間來產生swap file,這樣RAM不夠的client (< 128 MB)也能使用DRBL環境。 |
這個問題應該是出在Penguinzilla Server對外網路連線的問題,如果網路不通的話,就會停在這裡,建議您檢查一下Server對外網路連線的問題。 |
client畫面出現mount: RPC: Unable to receive; errno = connection refused. mount : nfs mount failed: bad file descriptor. failed to mount filesystem. 然後就停在那裡,問題可能是 1. TCPwrapper 如果您設定TCPwrapper,也就是在/etc/hosts.deny中有拒絕某些機器,然後在/etc/hosts.allow未能將192.168.x.x的網域開啟,那這樣client自然就沒辦法mount所需要的檔案系統,因而就沒辦法繼續執行開機的部分了。請在/etc/hosts.allow加入您這個client的網域。 2. firewall drblcli_desktop.pl這個程式會改寫firewall rules,但是如果您再更改其規則後,未能將192.168.x.x的網域開放給client來mount filesystem,這樣client被拒絕之後,當然就沒辦法繼續執行開機的部分了。請將您的規則改變,以便client的那個網域可以連到server。 3. 有另外一個dhcp server 這個部分應該不會發生,DRBL client也會嘗試去抓DRBL Server的IP,而丟掉不是從DRBL server抓到的IP。但是如果發生了,表示系統有另外一個dhcp server,而您的client剛好抓到那台提供的IP,可是該台server並沒有提供DRBL相關的檔案系統,那client自然就沒辦法mount所需要的檔案系統,因而就沒辦法繼續執行開機的部分了。最好就是您能將DRBL server與另外一個dhcp server分開。 |
在第一次開機的時候,找到新的硬體之後,執行完firstboot後就停在選擇螢幕解析的地方,滑鼠或是鍵盤都不會動,這是USB的滑鼠的支援不夠成熟,在自動偵測到之後並沒有辦法馬上使用,請將該台學生的電腦重新開機,以後就不會了. |
如果你所有用戶端電腦(學生的電腦)的顯示卡和螢幕都是一樣的話,可以這樣做: 您可以找一台client來開機,系統執行到firstboot時選好您的螢幕解析與色彩,完成後之後到DRBL server上將該台的XF86Config-4[FC1(含)之前的版本]或是xorg.conf[FC2(含)以後的版本]複製給其他台.用DRBL附的drbl-host-cp程式的作法是這樣: 假設您已經設定好X-window的那台client電腦IP是192.168.100.1,在server上可這樣執行以便複製給其他台: /opt/drbl/sbin/drbl-host-cp /tftpboot/nodes/192.168.101.1/etc/X11/XF86Config-4 /etc/X11 或是 /opt/drbl/sbin/drbl-host-cp /tftpboot/nodes/192.168.101.1/etc/X11/xorg.conf /etc/X11 如果用戶端電腦(學生的電腦)的顯示卡和螢幕每台都不同的話,建議您一台一台慢慢設定,以免錯誤的設定檔損壞螢幕。 |
0. 請可以先執行四步安裝法中的第二步驟 也就是 /opt/drbl/setup/drblsrv -i 來確認您給client使用的核心是最新版的. 1. 確認您的client端用的核心版本 這可以在DRBL server上,執行 cat /tftpboot/nbi_img/kernel_version_in_initrd.txt 來得到。 以下我們舉例為2.4.20-30.9drbl,請依照您當時的狀況而定。 2. 如果你的作業系統版本是Fedora Core 2之前(含),請確認server有安裝這個核心以及它的source,以本例而言就是kernel-2.4.20-30.9drbl與kernel-source-2.4.20-30.9drbl,可以用這樣查詢: rpm -q kernel-source-2.4.20-30.9drbl rpm -q kernel-2.4.20-30.9drbl 如果沒有找到的話,請執行 apt-get install kernel#2.4.20-30.9drbl apt-get install kernel-source#2.4.20-30.9drbl 確認/usr/src下面有安裝好這個kernel source (/usr/src/linux-2.4.20-30.9drbl/)。 如果你的作業系統版本是Fedora Core 3或是之後的版本,原則上就不需要安裝kernel-source了,只要有kernel就好了。 如果您現在正在執行的kernel不是您要的版本(可以用uname -r來查詢),請重新開機,選擇使用2.4.20-30.9drbl這個核心來開機,這樣才能正確編譯驅動程式給用戶端使用。 3. 下載您的硬體的Linux驅動程式原始碼,或是可以編譯的,不要抓供特定核心版本使用的binary檔 4. 將DRBL server開機成client用的那個核心的版本,以本例而言,就是開機的時候選用2.4.20-30.9drbl 5. 依照您的硬體的Linux驅動程式中的說明來編譯驅動程式,這裡一般來說是 a. 解開tarball: tar xvzf xxx.tgz b. ./configure c. make d. make install 當然也可能是用rpmbuild或是其他方式來作,例如Nvidia的驅動程式,就是直接執行Nvidia提供的shell script檔案(例如執行"sh NVIDIA-Linux-x86-1.0-5336-pkg1.run") 6. 如果不是網路卡的話,直接執行四步安裝法中的第三步驟(/opt/drbl/setup/drblpush -i)即可。 如果你的設備是網路卡, (a).取得client網路卡的PCI ID a.1 您可以用Live CD或是在client開機後,出現未能mount /root可以進入shell的時候(mkinitrd-net版本1.12-9drbl(含)之後才比較完整),執行 lspci (或是lspci-static) 以及 lspci -n (或是lspci-static -n) 來比對,找到您的網路卡的PCI ID,例如,您找到的PCI ID為8086:1026 (以Intel Corp.|82545GM Gigabit Ethernet為例) a.2 將/usr/lib/mkinitrd-net/initrd-skel/etc/pcitable中的 0x8086 0x1026 "unknown" 改成 0x8086 0x1026 "e1000" 請注意:這邊的間隔要用tab而不是空白(這裡假設您的網路卡driver編譯出來的是e1000). (b).再執行四步安裝法中的第二步驟 也就是 /opt/drbl/setup/drblsrv -i 來針對網路卡重新產生網路開機所需的檔案. (c).然後執行四步安裝法中的第三步驟 /opt/drbl/setup/drblpush -i 重新將檔案複製給client端。 7. client端可能要重新設定一下,例如X-window的設定檔,您可以找一台client來設定後,然後用drbl-cp-host複製設定檔給其他client. |
呵呵,DRBL的logo是安裝drbl-gdm那個package的時候,改 /etc/X11/gdm/gdm.conf 中的 GraphicalTheme=drbl-gdm 升級X的時候,過程中會改了這個設定。 如果您想找回那個漂亮的logo,您就改/etc/X11/gdm/gdm.conf 然後drbl-cp-host給全部的client, /opt/drbl/sbin/drbl-cp-host /etc/X11/gdm/gdm.conf |
方法1: 在放入光碟開機後,出現"boot:"時,輸入"linux reiserfs",然後按"Etner鍵",這樣後面在安裝,分割硬碟選擇檔案系統的時候,就會出現reiserfs的選項。 方法2: 1. 安裝時,到問你要用autopartition或是disk durid時 2. 切換到第二個 virtual console (按ctrl-alt-F2) 3. 執行fdisk /dev/hdx 或是/dev/sdx (x=a,b,c...看您的硬碟而定),切好你要的partition。fdisk的使用請參考相關資料。 4. 切好後,用/usr/sbin/mkreiserfs來format reiserfs的partition。例如/usr/sbin/mkreiserfs /dev/hda1 5. 切回原來安裝的畫面(按ctrl-alt-F7) 6. 繼續安裝,過程中選用不要format已經產生好的reiserfs partition即可. |
這個問題應該是升級mkinitrd-net由1.11到1.12版本的時候,也需要一併使用drbl-script 1.1以後的版本,這樣新版的程式兩個才會相容。正常情形下,安裝drbl-script 1.1以後的版本就會安裝mkinitrd-net 1.12以後的版本。所以請確認您的drbl-script的版本是否是1.1以後的版本。例如 #> rpm -q drbl-script #> drbl-script-1.1-5drbl 確認是1.1的版本後,請執行 /opt/drbl/sbin/mknic-nbi -a 這樣就會產生 /tftpboot/nbi_img/boot_etherboot.img 這個檔案其實是其他檔案的連結,可能是這個檔案的連結: /tftpboot/nbi_img/boot_etherboot_2.4.22-1.2188.nptldrbl.img 所以也請確認 /tftpboot/nbi_img目錄下有這兩個檔案。 |
如果你的用戶端的電腦開機的時候出現以下訊息: *********************************************************** FATAL ERROR: Failed to mount root filesystem!!! Please check: 1. The DRBL server is able to reverse-map this client IP address to obtain hostname. 2. The TCPwrapper setting (/etc/hosts.allow and /etc/hosts.deny) and firewall rules in your DRBL server, do you block the clients ? 3. Is there any other dhcp server in this subnet ? check http://drbl.nchc.org.tw/faq for more details! *********************************************************** You can enter the shell if you want to debug... 那就表示至少有三種可能的問題您需要排除: 1. server那台的/etc/hosts少了這台client的hostname,這個很少會發生,除非您自己改了那個檔案。請確認/etc/hosts這個檔案,如果真的少了client的hostname,請加上去。 2. server那台電腦中您有設定防火牆或是使用TCPwrapper,以至於client被拒絕掉。請修改您的防火牆規則或是/etc/hosts.allow以及/etc/hosts.deny,不要把client的電腦擋掉。 3. 你的網段中同時有第二個以上的dhcp server存在,這是最常見的問題來源,請將兩個dhcp server切割開來。 |
如果您使用的是DRBL for RedHat/Fedora,因為有kudzu這個程式,在開機的時候會自動偵測您是否有cdrom與軟碟機,有的話,程式會在用戶端電腦的/etc/fstab中產生如下的兩行: /dev/cdrom /mnt/cdrom udf,iso9660 user,noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 如果你要讓一般使用者都可以掛載與卸載,您要加上users (注意,不是user,而是users,這兩個的差別請參考"man 8 mount")這個參數如下: /dev/cdrom /mnt/cdrom udf,iso9660 users,noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto users,noauto,owner,kudzu 0 0 這樣,一般使用者就可以掛載與卸載cdrom與軟碟片 如果您是使用DRBL for Mandrake的話,您要自己手動加上以上這兩行在用戶端電腦的/etc/fstab中。 註:改變/etc/fstab之後,您不需要重新把DRBL server或是用戶端電腦重新開機,您只要在用戶端電腦用root執行 mount -a 即可。 |
這樣執行就可以改變client使用的kernel了: 1. 確認您的drbl-script的版本是drbl-script-1.1-23drbl (含)以後的版本 2. 找一下server系統裡有的kernel rpm -qa |grep kernel 假設找到的是kernel-2.4.22-1.2199.nptl (選一個你喜歡的) 3. /opt/drbl/sbin/mknic-nbi -a -k 2.4.22-1.2199.nptl 這樣,client端開機後,用的核心就是2.4.22-1.2199.nptl了。 |
下表標示DRBL for RedHat/Fedora/Mandrake環境中,client目錄的位置與server上對應的位置,以及client讀寫權限。由此表可以知道,除了/home與/var/spool/mail外,彼此並沒有覆蓋的問題。而/home與/var/spool/mail是根據使用者帳號而定,如果同一個帳號在不同的用戶端登入,會造成部分檔案重疊。因此,使用同一帳號在不同的用戶端登入時請注意。同時,也不建議用同一帳號在不同用戶端登入X-window環境。 ------------------------------------------------------------- client目錄的位置 server上對應的位置 client讀寫權限 /etc /tftpboot/nodes/$IP/etc RW /root /tftpboot/nodes/$IP/root RW /var /tftpboot/nodes/$IP/var RW /dev /tftpboot/nodes/$IP/dev RW /usr /usr RO /opt /opt RO /home /home RW /var/spool/mail /var/spool/mail RW /var/lib/rpm /var/lib/rpm RO註: $IP表示client的IP address RW表示client可以對該目錄讀寫 RO表示client只能對該目錄讀 |
如果您不想使用drblsrv為您安裝的預設核心,從drbl-setup 1.2-7drbl之後的版本,您可以這樣做: 1. 先在server安裝好您要的版本(注意:請確認您用的kernel的架構要和client相容,例如您在server上選用的kernel是i686的,但是client卻是AMD k6-II 350的話,這樣client是沒辦法開機的). apt-get install kernel#2.4.22-1.2197.nptl 或是直接用rpm來安裝 2. 執行 /opt/drbl/sbin/mknic-nbi -a -k 2.4.22-1.2197.nptl 3. 請確認/tftpboot/nbi_img/kernel_version_in_initrd.txt的內容是否符合上述所安裝的kernel $>cat /tftpboot/nbi_img/kernel_version_in_initrd.txt 2.4.22-1.2197.nptl 以上例,client開機後,用的核心就會是2.4.22-1.2197.nptl了。 |
1. 請確認您在server上有安裝rsh-server,如果沒有的話,請執行 apt-get install rsh-server 2. 如果您已經完成4步安裝法中的第三步驟,請再執行一次 /opt/drbl/setup/drblpush -i PS. 從drbl-setup 1.3.3-7之後的版本,您之前已經跑過的drblpush設定會存起來,所以可以直接執行 /opt/drbl/setup/drblpush -c /etc/sysconfig/drblpush.conf 這樣就不用重複回答問題了. 3. 執行 /opt/drbl/sbin/drbl-client-service xinetd add /opt/drbl/sbin/drbl-client-service rsh on /opt/drbl/sbin/drbl-client-service rlogin on /opt/drbl/bin/drbl-doit "/etc/init.d/xinetd start" 需要把xinetd開啟的原因是因為rsh與rlogin是屬於xinted的service。另外,請記得一併開啟rlogin. 然後可以執行 /opt/drbl/sbin/drbl-client-service xinetd list 來確認xinetd是否有開啟 或是 /opt/drbl/bin/drbl-doit "chkconfig --list" 可以看所有的service是否有開啟,請檢查xinetd, rsh, rlogin是否為on 4. 這樣應該就可以使用rsh來連接client端了。 5. 如果要移除與關閉client端的rsh service,這樣執行: /opt/drbl/sbin/drbl-client-service rsh off /opt/drbl/sbin/drbl-client-service rlogin off /opt/drbl/sbin/drbl-client-service xinetd del /opt/drbl/bin/drbl-doit "/etc/init.d/xinetd stop" |
請執行 /opt/drbl/setup/drblsrv -u 然後依照詢問的步驟回答即可。詳細的例子如下: ----------------------------------------- [fc3]~/>/opt/drbl/setup/drblsrv -u ****************************************************** ****************************************************** The version number of OS in this DRBL server is FC3. Language | 語言| 隤閮 ? [0]: English [1]: Chinese Traditional (Big5) - Taiwan | 中文 (大五碼) - 台灣 [2]: Chinese Traditional (UTF-8, Unicode) - Taiwan | 銝剜 (砍璅皞蝣? - 0 [0] 1 正在分析rpm程式的資訊...這可能需要幾分鐘... ****************************************************** 提示! 當有yes/no選項的時候,預設的值是大寫的字母。例如 (y/N), 預設值是 "N", 當你按 "Enter"的時候,程式使用的值就是 "N"。如果你不確認選用那個好的時候,直接按"Enter"鍵是一個保險的方式。 ****************************************************** 現在準備 uninstall DRBL伺服器所需的檔案! 你是否要繼續? 回答"no"或是"n"來結束程式,或是其他任何字母來繼續! [Y/n] ****************************************************** 開始進行... Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: authconfig-gtk clonezilla dhcp drbl-script firstboot mkinitrd-net nfs-utils ntp system-config-date tftp-server yp-tools ypbind ypserv 0 upgraded, 0 newly installed, 13 removed and 0 not upgraded. Need to get 0B of archives. After unpacking 12.3MB disk space will be freed. Do you want to continue? [Y/n] Committing changes... Preparing... ########################################### [100%] warning: /var/lib/dhcp/dhcpd.leases saved as /var/lib/dhcp/dhcpd.leases.rpmsave warning: /etc/sysconfig/dhcpd saved as /etc/sysconfig/dhcpd.rpmsave Shutting down NFS mountd: [ OK ] Shutting down NFS daemon: [ OK ] Shutting down NFS quotas: [ OK ] Shutting down NFS services: [ OK ] Stopping NFS statd: [ OK ] Shutting down NFS4 idmapd: [ OK ] warning: /var/lib/nfs/etab saved as /var/lib/nfs/etab.rpmsave warning: /var/lib/ntp/drift saved as /var/lib/ntp/drift.rpmsave warning: /etc/ntp.conf saved as /etc/ntp.conf.rpmsave warning: /etc/xinetd.d/tftp saved as /etc/xinetd.d/tftp.rpmsave warning: /etc/yp.conf saved as /etc/yp.conf.rpmsave Done. Reading Package Lists... Done Building Dependency Tree... Done E: Couldn't find package drbl-driver-.* Reading Package Lists... Done Building Dependency Tree... Done Package drbl-script is not installed, so not removed Package clonezilla is not installed, so not removed Selecting rh-9-netinstall for 'rh-.*-netinstall' Selecting rh-8.0-netinstall for 'rh-.*-netinstall' Selecting rh-FC3-x86-64-netinstall for 'rh-.*-netinstall' Selecting rh-FC3-netinstall for 'rh-.*-netinstall' Selecting rh-FC2-netinstall for 'rh-.*-netinstall' Selecting rh-FC1-netinstall for 'rh-.*-netinstall' Selecting rh-FC2-x86-64-netinstall for 'rh-.*-netinstall' Selecting mdk-10.1-netinstall for 'mdk-.*-netinstall' Selecting mdk-10.0-netinstall for 'mdk-.*-netinstall' Selecting mdk-9.2-netinstall for 'mdk-.*-netinstall' The following packages will be REMOVED: ddrescue dos2unix drbl-gdm etherboot freedos mdk-10.0-netinstall mdk-10.1-netinstall mdk-9.2-netinstall memtest86+ partimage perl-IO-LockedFile rh-8.0-netinstall rh-9-netinstall rh-FC1-netinstall rh-FC2-netinstall rh-FC2-x86-64-netinstall rh-FC3-netinstall rh-FC3-x86-64-netinstall socket syslinux woody-netinstall 0 upgraded, 0 newly installed, 21 removed and 0 not upgraded. Need to get 0B of archives. After unpacking 106MB disk space will be freed. Do you want to continue? [Y/n] Committing changes... Preparing... ########################################### [100%] Done. `/var/yp/securenets' -> `/var/yp/securenets.drblsave' 你是否要移除drbl-setup這個程式? [y/N] y 你是否要移除 apt ? [y/N] y warning: /etc/apt/sources.list saved as /etc/apt/sources.list.rpmsave warning: /etc/apt/apt.conf saved as /etc/apt/apt.conf.rpmsave 正在清除 apt 的快取檔案... ******************************************************, 移除 /tftpboot 下的檔案... 這可能需要幾分鐘... ******************************************************, 完成!!! ****************************************************** 現在將記憶體中的資料寫入硬碟中... ****************************************************** 執行完畢! |
在Fedora/RedHat 中, 請修改 /usr/share/doc/HTML/index.html 符合您您想要的即可。 註:感謝桃園縣中壢市新明國小孫正華老師提供此訊息。 |
這是SELINUX設定的問題,目前DRBL for Fedora並沒有支援SELINUX,所以您必須關閉。請依照4步安裝法中第一步驟所提到的方式,關閉SELINUX。 |
假設您的server的IP是192.168.0.254 1. 先在DRBL server上設定好您的本機端印表機(例如是經由LPT PORT),並且設定好分享出去給用戶端的電腦的IP (注意:例如Fedora Core 3的CUPS預設是 DENY ALL,所以您務必開啟分享)。 2. 在server上再設定一台CUPS網路印表機,也就是把自己的印表機經由網路掛上來。路徑是經由CUPS的 ipp://192.168.0.254/printers/epsonc60(IP後面的字串在/etc/cups/cupsd.conf的 可以找到),並把它設定為預設印表機。 3. 執行/opt/drbl/sbin/drblpush -i 4. 用戶端電腦開機後,用戶端看到的預設印表機就是這台網路印表機。因為它的列印路徑是區網中的絕對路徑(透過ip)所以直接按下列印就是了。當然,用戶端還是看的到那台 LPT PORT印表機,但是不要理它就行了。 註:如果您不想要讓學生端看到LPT PORT那台印表機,您可以在server上,用drbl-cp-host複製這幾個檔給用戶端電腦即可 /etc/cups/cups.conf #印表機設定檔 /etc/cups/looptions #設定誰是預設印表機 /etc/cups/printers.conf #印表機詳細設定 /etc/cups/ppd/*.ppd #印表機驅動程式 註:感謝桃園縣中壢市新明國小孫正華老師提供此訊息。 |
一般這個問題是因為ACPI產生的,您可以嘗試在DRBL server的PXE Linux設定檔 /tftpboot/nbi_img/pxelinux.cfg/default 中的append後面加上 "acpi=off",例如: ---------------------------------- ... label drbl # MENU DEFAULT # MENU HIDE MENU LABEL Linux (from DRBL server, mostly use local resources) kernel vmlinuz-pxe append initrd=initrd-pxe.img ramdisk_size=9600 devfs=nomount drblthincli=off acpi=off ---------------------------------- |
這個問題是因為PXELinux的設定檔有問題,全部的設定都被隱藏起來了,也就是: /tftpboot/nbi_img/pxelinux.cfg/default中,所有的label區塊,MENU HIDE都被設定了。例如: ---------------------------------- ... label drbl MENU DEFAULT MENU HIDE MENU LABEL Linux (from DRBL server, mostly use local resources) kernel vmlinuz-pxe append initrd=initrd-pxe.img ramdisk_size=9600 devfs=nomount drblthincli=off ---------------------------------- 也許是程式的bug,也許是手動被改錯了。 請至少開啟一個label區塊(也就是把MENU HIDE不要註解),例如: ---------------------------------- ... label drbl MENU DEFAULT # MENU HIDE MENU LABEL Linux (from DRBL server, mostly use local resources) kernel vmlinuz-pxe append initrd=initrd-pxe.img ramdisk_size=9600 devfs=nomount drblthincli=off ---------------------------------- |
在桌面或是工具列當中的瀏覽器按鈕是指向/usr/bin/firefox這個shell, 在這個 shell中寫很清楚: MOZ_DIST_BIN="/usr/lib/firefox-1.0.1" MOZ_PROGRAM="$MOZ_DIST_BIN/firefox" MOZ_CLIENT_PROGRAM="$MOZ_DIST_BIN/mozilla-xremote-client" MOZ_CLIENT_PROGRAM_PARAM="-a firefox" 可知firefox本尊是放在/usr/lib/firefox-1.0.1 所以 1.在http://www.moztw.org/firefox下載最新的firefox中文版。 2.先把/usr/lib/firefox-1.0.1 mv到別的地方,例如 mv /usr/lib/firefox-1.0.1 /usr/lib/firefox.bak 3.安裝剛才下載的firefox到/usr/lib/firefox-1.0.1 4. O.K. 或是 1.在http://www.moztw.org/firefox下載最新的firefox中文版。 2.安裝剛才下載的firefox到/usr/lib/firefox 3.修改/usr/bin/firefox的第39行成為 MOZ_DIST_BIN="/usr/lib/firefox" 4.好了。 要改變瀏覽器的首頁,可以修改/usr/lib/firefox-1.0.1/browserconfig.properties成 為 browser.startup.homepage=http://www.simps.tyc.edu.tw browser.startup.homepage_reset=http://www.simps.tyc.edu.tw 註:感謝桃園縣中壢市新明國小孫正華老師提供此訊息。 |
例如,您自己做的kernel名稱是 2.6.11-1.steven a. 把這些檔案放到相關位置 DRBL server的/boot中要有這三個檔案 System.map-2.6.11-1.steven config-2.6.11-1.steven vmlinuz-2.6.11-1.steven DRBL server的/lib/modules中要有您compile的整個kernel module(目錄下所有的檔案都要) /lib/modules/2.6.11-1.steven b. depmod -a 2.6.11-1.steven (再確認一次而已,如已經做過了,一般來說不需要) c. /opt/drbl/sbin/mknic-nbi -a -k 2.6.11-1.steven -i i686 -a 在舊版的要寫,新版的(DRBL 1.3.11-17)之後就不用寫了 -k 後面指定的就是您的kernel名稱 -i 指定client要用的CPU arch,這個是幫忙確認是否指定的kernel符不符合,也是設定用戶端要用的CPU arch |
steven _at_ nchc org tw, klhaung _at_ gmail com
Last modified: Fri Nov 25 10:03:25 CST 2005