歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux業界 >> 安裝 Linux 無盤工作站

安裝 Linux 無盤工作站

日期:2017/2/27 11:12:52   编辑:Linux業界

作者:嚴軍勇 ([email protected])


說起無盤工作站,大家一定不會陌生,當年Novell下的無盤DOS工作站很是流行,後來又流行過Win95無盤工作站,只是由於問題多多,後來微軟自己停止了對無盤Windows的支持。
隨著Linux的日益流行,使用Linux的人越來越多,其實Linux 對遠程引導的支持非常好,Linnx內核自身又支持網絡文件系統,因此非常適合做無盤工作站,本文將以一個實例向大家詳細介紹無盤Linux工作站的安裝辦法。
這個網絡是一個小的局域網,有1台服務器和4台 Linux 無盤工作站,彼此之間用雙絞線通過HUB連接,服務器的IP地址定為192.168.0.80 ,名字是server ,5台無盤工作站的地址由服務器動態分配,地址范圍從 192.168.0.1 到 192.168.0.4 ,名字分別是c1,c2,c3,c4,服務器和無盤工作站使用的都是 NE2000 兼容網卡,無盤工作站使用的網卡上都安
裝了BOOTROM 啟動芯片,服務器操作系統安裝的是 RedHat Linux 6.0 ,安裝時選用定制安裝,並安裝了全部軟件。
Linux的遠程引導有兩種方式,一是利用Bootp協議,有一個專門的項目EtherBoot 提供支持(http://www.slug.org.au/etherboot/),這種方式引導 Linux 的速度是最快的,但這種方式有一個最大的問題,就是在市場上找不到支持這種遠程引導協議的 BOOTROM 啟動芯片(除非自己刻錄),因為市場上幾乎所有的 BOOTROM 啟動芯片都是遵循NOVELL遠程引導協議的,於是有人提出另外一種方式,就是服務器端用 NetWare 服務器,客戶端就可以用現有的BOOTROM 啟動芯片了,說到這裡大家一定胡塗了,作Linux無盤工作站豈不是還一台NetWare 服務器?不是的,因為神通廣大的 Linux 可以模擬 NetWare 服務器,就象Samba可以把 Linux 模擬成 NT 一樣,mars_nwe 可以把 Linux 模擬成 NetWare,不僅能提供 NetWare 文件和打印服務,還能提供遠程引導支持(知道Linux的厲害了吧),本文講述的
Linux 無盤工作站就是用這種方式作遠程引導的。

准備啟動盤
由於在 Linux 下沒有制作符合 NetWare 遠程引導協議啟動映象的工具,所以只能用早期的Win95()提供的工具(遺憾)。找一台裝有 Win95 的機器啟動後按 F8 進入純DOS方式,格式化一張啟動盤 format a: /s ,然後將RedHat Linux安裝光盤上 dosutils 目錄下的loadlin.exe復制到啟動盤,在啟動盤上作一個 autoexec.bat 文件,代碼只有一行
loadlin.exe bzImage root=/dev/nfsroot
從 Windows 95 安裝光盤的 Win95 目錄下的cab文件中解出 rplboot.sys 文件放在啟動盤上,命令如下:
extract.exe /a /l a: win95-27.cab rplboot.sys
一張用來做啟動映象的啟動盤就作好了,保存好啟動盤,以後作啟動映象時會用到它。

編譯內核
用於無盤工作站的Linux內核與用於從本地硬盤引導的Linux內核是不同的,無盤工作站的內核必須支持NFS作為根文件系統,即遠程根文件系統,所以必須編譯無盤工作站專用的內核。筆者使用的內核代碼版本是2.2.16,將內核源代碼解壓到/usr/src下,cd /usr/src/linux 進入內核子目錄,執行命令make menuconfig 進行內核編譯配置,下列項目必須按要求設置:
Processor type and features 該項目下面的選項必須根據無盤工作站的CPU類型設
置,而不是根據服務器的CPU類型設置
Loadable module support 該項目下面的所有選項都禁止,即不支持模塊功能
Plug and Play support 設置為有效
Block devices 該項目下面的
Loopback device support
Network block device support
都設置為有效
Networking option 該項目下面的
kernel level autoconfiguration
DHCP support (NEW)
都設置為有效
Network device support 該項目下面的選項必須根據無盤工作站使用的網卡進
行設置,本例中使用的是NE2000兼容網卡,選項
Ethernet (10 or 100Mbit)
Other ISA cards
NE2000/NE1000 support (NEW)
都設置為有效
Filesystems 該項目下面的Network File Systems子項目下面的
NFS filesystem support
Root file system on NFS (NEW)
都設置為有效
其它的選項可以不用理會,直接用缺省值就可以了,當然如果你的無盤工作站有些其它需
要使用的設備,你也可以將有關的選項設為有效,比如,本例中的無盤工作站使用了聲霸
卡兼容的聲卡,下面的選項
OSS sound modules (NEW)
100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support
FM synthesizer (YM3812/OPL-3) support (NEW)
都設置為有效
以上設置完成後,退出內核編譯設置程序,會出現一個對話框
Do you wish to save your new kernel configuration?
回答
然後執行
make dep && make bzImage
進行內核編譯,這個過程得花一點時間,特別是如果計算機的速度不快的話,花的時間會
更長一些。編譯內核如果沒有錯誤,會得到內核映象文件
/usr/src/linux/arch/i386/boot/bzImage ,
將啟動軟盤插入計算機,執行下面的命令
mount -t vfat /dev/fd0 /mnt/floopy
cp /usr/src/linux/arch/i386/boot/bzImage /mnt/floppy
umount /dev/fd0
好了,啟動盤上的文件都准備齊全了,等會兒用它到Win95環境下制作啟動映象。

服務器設置
服務器端需要運行nfsd、dhcpd、mars_new等幾個服務進程,這些軟件在ReHat Linux發行套件裡都有,如果在安裝 Linux 的時候選擇全部安裝,這些軟件都會隨著安裝操作系統而裝好了,下面對這些軟件進行設置,注意,下面的操作要以 root 身份進行。
1、 NFS 守護進程nfsd
首先要建立幾個供無盤工作站使用的目錄,並通過nfsd 導出,命令如下:
mkdir /tftpboot
然後編輯文件 /etc/hosts ,加入下面的內容
192.168.0.80 server server.domain
192.168.0.1 c1 c1.domain
192.168.0.2 c2 c2.domain
192.168.0.3 c3 c3.domain
192.168.0.4 c4 c4.domain
第一台工作站的工作目錄設置方法如下:
mkdir /tftpboot/192.168.0.1
cd /tftpboot/192.168.0.1
c000p -a /bin .
cp -a /dev .
mknod dev/nd0 b 43 0
chmod 600 dev/nd0
cp -a /etc .
cp -a /home .
cp -a /lib .
rm -rf lib/modules
cp -a /root .
cp -a /sbin .
cp -a /var .
mkdir proc
mkdir usr
mkdir tmp
chmod 777 tmp
touch fastboot
chattr +i fastboot
cd etc
編輯文件 sysconfig/network-scripts/ifcfg-eth0
保留其中的
DEVICE=eth0
ONBOOT=yes
其余的行全部刪除,然後增加一行
BOOTPROTO=dhcp
編輯文件 rc.d/rc.sysinit ,在文件最後加上兩行
mount -t nfs server:/usr /usr
/usr/X11R6/bin/xfs
編輯文件 fstab
保留其中的
none /proc proc defaults 0 0
其余的行全部刪除,然後增加一行
server:/tftpboot/192.168.0.1 / nfs defaults 1 1
其它工作站的工作目錄設置方法就簡單多了
cd /tftpboot
cp -a 192.168.0.1 192.168.0.2
cp -a 192.168.0.1 192.168.0.3
cp -a 192.168.0.1 192.168.0.4
編輯文件 /etc/exports ,加入以下內容
/usr (ro,no_root_squash)
/tftpboot/192.168.0.1 (rw,no_root_squash)
/tftpboot/192.168.0.2 (rw,no_root_squash)
/tftpboot/192.168.0.3 (rw,no_root_squash)
/tftpboot/192.168.0.4 (rw,no_root_squash)
2、動態主機配置協議服務器 dpchd
檢查一下文件/etc/dhcpd.leases是否存在,若不存在就用命令touch /etc/dhcpd.leases
創建一個,然後編輯文件 /etc/dhcpd.conf ,加入以下內容
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.4;
}
3、NetWare 模擬器 marsw_nwe
編輯文件 /etc/nwserv.conf,找到下面的行
# 4 0x10 eth0 802.3 1
將該行開頭的#去掉,再找到
4 0x0 * 802.3 1
在該行開頭加上#
制作啟動映象
進入Win95,將Win95(早期的版本,可以用服務器安裝方式安裝)安裝光盤的
adminnettoolsnetsetuprplimage.exe 復制到硬盤,將啟動軟盤插入軟驅,然後在
純MSDOS方式下執行 rplimage a: 就會得到啟動映象 net$dos.sys,再將啟動映象
net$dos.sys 復制到啟動盤上(如果啟動盤空間不夠,可以先刪除啟動盤上的一些文件以
留出空間)。
啟動 Linux 服務器,以 root 用戶登錄,將啟動軟盤插入軟驅,執行下面的命令
mount -t vfat /dev/fd0 /mnt/floppy
cp /mnt/floppy/net$dos.sys /var/mars_nwesyslogin
umount /dev/fd0
然後執行 setup ,移動光棒至 System services 選項回車,出現 Services 設置畫面,
將dhcpd,nfs,mars-nwe 都設為有效,退出 setup 程序,執行以下的命令以啟動上述服
務進程:
/etc/rc.d/rc3.d/*mars-nwe restart
/etc/rc.d/rc3.d/*dhcpd restart
/etc/rc.d/rc3.d/*nfs restart
下一次再啟動服務器時,上述服務進程會自動執行。
至此,所有的設置工作全部完成了,聯好網絡隨便打開一台無盤工作站,稍等一下,
出現遠程引導的信息,接著會啟動 Win95 ,接下來很快就會裝載 Linux ,在一大堆
Linux 的啟動信息之後如果看到 Linux 的登錄提示,就說明遠程啟動成功了。
Linux 無盤工作站雖然運轉起來了,但還有一個問題,就是交換的問題,因為Linux
是一個支持虛擬存儲的操作系統,當機器內存不夠時,Linux 就會把內存中暫時不用的數
據換出到交換設備上,等需要時再換回來,剛才我們沒有設置交換區,在無盤工作站上用
free 命令就會發現交換區為零,如果無盤工作站內存較大,運行一些不大的程序,沒有
交換區還是可以的,但若運行大型程序就會出問題,下面介紹在服務器上設置交換區即遠
程交換的方法。
對於2.1.101版以前的內核,要實現遠程交換可有點費事,得從網絡上下載有關的補
丁來修改內核代碼,然後再編譯內核映象,從2.1.101版後內核支持網絡塊設備,實現遠
程交換就容易了,首先編譯內核時要使 Network block device support 選項有效(剛才
編譯內核時就是這麼作的),再從http://atrey.karlin.mff.cuni.cz/~pavel/nbd/nbd.html
下載實用程序 nbd.14.tar.gz ,執行下面的命令
tar zxvf nbd.14.tar.gz
cd nbd
./configure
make
編譯完後會得到文件 nbd-server 和 nbd-client,將它們復制到 /usr/sbin 下面:
cp nbd-server nbd-client /usr/sbin
然後編輯文件 /etc/rc.d/rc.sysinit,在文件最後加上一行
/usr/sbin/nbd-server 7999 /tftpboot/%s/swap > /dev/null &
執行剛才的命令激活nbd服務:
/usr/sbin/nbd-server 7999 /tftpboot/%s/swap > /dev/null &
下一次服務器啟動時,上述命令會自動執行。
再在服務器上每個工作站目錄(/tftpboot/192.168.0.1,/tftpboot/192.168.0.2等等)下
為各個無盤工作站建立交換文件,命令如下(本例中交換區大小為32M):
dd if=/dev/zero of=swap count=32768 bs=1024
mkswap swap
在每個工作站目錄下文件 /etc/rc.d/rc.sysinit 的最後加上兩行
/usr/sbin/nbd-client server 7999 /dev/nd0
swapon /dev/nd0
就這麼簡單,再打開無盤工作站試一試啟動成功後登錄系統,執行命令 free 就會看到在
顯示信息的最後有這樣一行:
Swap: 32764 XX XXXX
說明交換區設置成功了。
這樣,一個完整的 Linux 無盤工作站網絡就作好了,Linux 無盤工作站的用法很靈活,既可以象使用普通有盤工作站一樣使用,還可以把無盤工作站當成別的 Unix 主機的終端,特別是可以作為 X 終端,運行遠程 Unix 主機上的 X 應用。
最後告訴大家,如果你想采用BOOTP方式作 Linux 遠程引導,我可以提供 EPROM 刻錄服務,當然要收取少量的刻錄費用.




Copyright © Linux教程網 All Rights Reserved