當年Novell下的無盤DOS工作站很是流行
後來又流行過Win
無盤工作站
只是由於問題多多
後來微軟自己停止了對無盤Windows的支持
隨著Linux的日益流行
使用Linux的人越來越多
其實Linux 對遠程引導的支持非常好
Linnx內核自身又支持網絡文件系統
因此非常適合做無盤工作站
本文將以一個實例向大家詳細介紹無盤Linux工作站的安裝辦法
這個網絡是一個小的局域網
有
台服務器和
台 Linux 無盤工作站
彼此之間用雙絞線通過HUB連接
服務器的IP地址定為
名字是server
台無盤工作站的地址由服務器動態分配
地址范圍從
到
名字分別是c
c
c
c
服務器和無盤工作站使用的都是NE
兼容網卡
無盤工作站使用的網卡上都安 裝了BOOTROM 啟動芯片
服務器操作系統安裝的是 RedHat Linux
安裝時選用定制安裝
並安裝了全部軟件
Linux的遠程引導有兩種方式
一是利用Bootp協議
有一個專門的項目EtherBoot 提供支持()
這種方式引導 Linux 的速度是最快的
但這種方式有一個最大的問題
就是在市場上找不到支持這種遠程引導協議的 BOOTROM 啟動 芯片(除非自己刻錄)
因為市場上幾乎所有的 BOOTROM 啟動芯片都是遵循NOVELL遠程引導 協議的
於是有人提出另外一種方式
就是服務器端用 NetWare 服務器
客戶端就可以用現 有的BOOTROM 啟動芯片了
說到這裡大家一定胡塗了
作Linux無盤工作站豈不是還一台 NetWare 服務器?不是的
因為神通廣大的 Linux 可以模擬 NetWare 服務器
就象Samba 可以把 Linux 模擬成 NT 一樣
mars_nwe 可以把 Linux 模擬成 NetWare
不僅能提供 NetWare 文件和打印服務
還能提供遠程引導支持(知道Linux的厲害了吧)
本文講述的 Linux 無盤工作站就是用這種方式作遠程引導的
准備啟動盤 由於在 Linux 下沒有制作符合 NetWare 遠程引導協議啟動映象的工具
所以只能用早期的Win
提供的工具(遺憾)
找一台裝有 Win
的機器啟動後按 F
進入純DOS方式
格式化一張啟動盤 format a: /s
然後將RedHat Linux安裝光盤上 dosutils 目錄下的 loadlin
exe復制到啟動盤
在啟動盤上作一個 autoexec
bat 文件
代碼只有一行 loadlin
exe bzImage root=/dev/nfsroot從 Windows
安裝光盤的 Win
目錄下的cab文件中解出 rplboot
sys 文件放在啟動 盤上
命令如下
extract
exe /a /l a:\ win
cab rplboot
sys
一張用來做啟動映象的啟動盤就作好了
保存好啟動盤
以後作啟動映象時會用到它
編譯內核 用於無盤工作站的Linux內核與用於從本地硬盤引導的Linux內核是不同的
無盤工作站的內核必須支持NFS作為根文件系統
即遠程根文件系統
所以必須編譯無盤工作站專用的內核
筆者使用的內核代碼版本是
將內核源代碼解壓到/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 該項目下面的選項必須根據無盤工作站使用的網卡進行設置
本例中使用的是NE
兼容網卡
選項
Ethernet (
or
Mbit)
Other ISA cards
NE
/NE
support (NEW)
都設置為有效
Filesystems 該項目下面的Network File Systems子項目下面的
NFS filesystem support
Root file system on NFS (NEW)
都設置為有效
以上設置完成後
退出內核編譯設置程序
會出現一個對話框
Do you wish to save your new kernel configuration?
然後執行make dep && make bzImage進行內核編譯
這個過程得花一點時間
特別是如果計算機的速度不快的話
花的時間會更長一些
編譯內核如果沒有錯誤
會得到內核映象文件/usr/src/linux/arch/i
/boot/bzImage
將啟動軟盤插入計算機
執行下面的命令 mount
t vfat /dev/fd
/mnt/floopy cp /usr/src/linux/arch/i
/boot/bzImage /mnt/floppy umount /dev/fd
好了
啟動盤上的文件都准備齊全了
等會兒用它到Win
環境下制作啟動映象
服務器設置 服務器端需要運行nfsd
dhcpd
mars_new等幾個服務進程
這些軟件在ReHat Linux 發行套件裡都有
如果在安裝 Linux 的時候選擇全部安裝
這些軟件都會隨著安裝操作 系統而裝好了
下面對這些軟件進行設置
注意
下面的操作要以 root 身份進行
NFS 守護進程nfsd
首先要建立幾個供無盤工作站使用的目錄
並通過nfsd 導出
命令如下:
mkdir /tftpboot
然後編輯文件 /etc/hosts
加入下面的內容
server server
domain
c
c
domain
c
c
domain
c
c
domain
c
c
domain
第一台工作站的工作目錄設置方法如下:
mkdir /tftpboot/
cd /tftpboot/
c
p
a /bin
cp
a /dev
mknod dev/nd
b
chmod
dev/nd
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
tmp
touch fastboot
chattr +i fastboot
cd etc
編輯文件 sysconfig/network
scripts/ifcfg
eth
保留其中的
DEVICE=eth
ONBOOT=yes
其余的行全部刪除
然後增加一行
BOOTPROTO=dhcp
編輯文件 rc
d/rc
sysinit
在文件最後加上兩行
mount
t nfs server:/usr /usr
/usr/X
R
/bin/xfs
編輯文件 fstab
保留其中的
none/procprocdefaults
其余的行全部刪除
然後增加一行
server:/tftpboot/
/nfs defaults
其它工作站的工作目錄設置方法就簡單多了
cd /tftpboot
cp
a
cp
a
cp
a
編輯文件 /etc/exports
加入以下內容
/usr (ro
no_root_squash)
/tftpboot/
(rw
no_root_squash)
/tftpboot/
(rw
no_root_squash)
/tftpboot/
(rw
no_root_squash)
/tftpboot/
(rw
no_root_squash)
動態主機配置協議服務器 dpchd
檢查一下文件/etc/dhcpd
leases是否存在
若不存在就用命令touch /etc/dhcpd
leases 創建一個
然後編輯文件 /etc/nf
加入以下內容
subnet
netmask
{
range
;
}
NetWare 模擬器 marsw_nwe
編輯文件 /etc/nf
找到下面的行
#
x
eth
將該行開頭的
#
去掉
再找到
x
*
在該行開頭加上
#
制作啟動映象
進入Win
將Win
(早期的版本
可以用服務器安裝方式安裝)安裝光盤的admin\nettools\netsetup\rplimage
exe 復制到硬盤
將啟動軟盤插入軟驅
然後在純MSDOS方式下執行 rplimage a: 就會得到啟動映象 net$dos
sys
再將啟動映象 net$dos
sys 復制到啟動盤上(如果啟動盤空間不夠
可以先刪除啟動盤上的一些文件以留出空間)
啟動 Linux 服務器
以 root 用戶登錄
將啟動軟盤插入軟驅
執行下面的命令 mount
t vfat /dev/fd
/mnt/floppycp /mnt/floppy/net\$dos
sys /var/mars_nwe\sys\login umount /dev/fd
然後執行 setup
移動光棒至 System services 選項回車
出現 Services 設置畫面
將dhcpd
nfs
mars
nwe 都設為有效
退出 setup 程序
執行以下的命令以啟動上述服務進程:
/etc/rc
d/rc
d/*mars
nwe restart
/etc/rc
d/rc
d/*dhcpd restart
/etc/rc
d/rc
d/*nfs restart
下一次再啟動服務器時
上述服務進程會自動
From:http://tw.wingwit.com/Article/program/Oracle/201311/17626.html