您现在的位置: 万盛学电脑网 >> 操作系统 >> Linux教程 >> 正文

Linux 无盘工作站 Mini Howto

作者:佚名    责任编辑:admin    更新时间:2022-06-22

class="21992"> 作者: Robert Nemkin [email protected]
译者: 谢昆中 HSIEH Kun-Chung, ( [email protected] )

v0.0.3版, 1996年 9月12日 


--------------------------------------------------------------------------------
本文件在叙述如何设立一个无磁碟 Linux 机器。著作权为 Robert Nemkin 所有。著作权条款依照 GPL。我想要谢谢 Bela Kis  将这份文件翻译成为英文。 
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

1. 修改

v0.0.3版 1996年9月12日: 一小部份的修改 


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

2. 如何设立一个无磁碟的 Linux 机
本文件在叙述如何设立一个无磁碟 Linux 机器。有时候我们可能需要在一个既无硬碟亦无软碟机的个人电脑上执行 Linux 。如果有个网路, 其他的 Unix 系统有著 bootp, tftp, NFS 伺服器,而我们又有一个 eprom 烧录机,那麽我们有办法在建立一个无任何磁碟机的 Linux系统了。 



--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

3. 相关文章

NFS-root Mini Howto 
Linux NET-2/3-HOWTO 由 Terry Dawson 所写, [email protected] 
/usr/src/linux/README □於建构以及编译新核心 


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

4. 硬体
在本文所提到的都是以下面的建构来做的 

Sun-OS 4.1.3 做为启动伺服器 
Slackware 2.3 + Linux 1.2.8 + wd 8013 网路卡 
已使用中的乙太网路 


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

5. 基本概念
基本概念如下:个人电脑会经由 bootp 协定从启动伺服器中来取得它的 IP 位址。用 0.0.0.0 为初始 IP 位址,而它的核心程式会经由 tftp 协定。 

跳过区段的启动 (经由路由器router) 并不是个简单问题,所以,不是将伺服器以及无磁碟机的机器放置在同一个网路区段,就只有建构一个 UDP 辅助位址在你的 router 到伺服器的位址上。细节请参考你的 router 产器手册。
以下是我们的步骤 


5.1 设定个人电脑 
取得 nfsboot 套件 (可从你较喜欢的 linux mirror 镜射站的 /pub/Linux/system/Linux-boot 目录取得)。它包含了一个给 wd8013卡可直接烧录用的 booteprom 映像档。 

还有其他方法可以准备个人电脑部份: 

如果你的机器并不是没有磁碟的,那麽你可以使用小小的 DOS 程式或 
含有同样套件的二进位软体映像档。 
如果你选择的是第二者,你必须使用 dd 命令来将这个映像档写入一张软碟片□。 
这个映像档包含了 bootp 以及 tftp 客户端程式。你也需要准备一个 linux 核心程式码,它含有 nfs-root 选项。 

如果你使用最新的稳定核心程式,如 linux-1.2.13,那麽你需要使用包含在 nfsbootk套件内的 patch 修补核心程式。 
参考 patch(1)
如果你想要用最新的,但却不是很稳的 linux-1.3.x 系列核心,那麽你就需要建构 nfs-root 这选项。 
随便你要不要建构区块设备 (软碟机或硬碟机) 的支援,但你必须建构 tcp/ip 支援、 wd 乙太网路卡支援、 nfs 档案系统支援。然後重新编译核心程式。 


5.2 在伺服器上设定 bootpd 
它可以在 bootpd-2.4.tar.gz套件中找到 (可从你较喜欢的 linux mirror 镜射站的 /pub/Linux/system/Network/boot.net 目录内)。取得这个套件,编译并安装它。如果你其他的 Unix 机器也是用 Slackware Linux 的,那麽标准的供应版本就有 bootpd 了,所以你可以跳过这部份。 daemon 可以直接发出命令来执行 


--------------------------------------------------------------------------------

        bootpd -s


--------------------------------------------------------------------------------

或是使用 inetd,但你需修改: 
/etc/inetd.conf 在这些条列中移除 # 号 

--------------------------------------------------------------------------------

# tftp   dgram   udp     wait    root    /usr/sbin/in.tftpd     tftpd /export
# bootps dgram   udp     wait    root    /usr/sbin/in.bootpd    bootpd


--------------------------------------------------------------------------------

在 /etc/services 中插入或是移除备注符号: 

--------------------------------------------------------------------------------

bootps          67/tcp          # BOOTP server
tftp            69/udp          # TFTP server


--------------------------------------------------------------------------------

重新启动 inetd ,使用 

--------------------------------------------------------------------------------

        kill -HUP .


--------------------------------------------------------------------------------


5.3 在伺服器上建构 bootpd 
由先, bootpd 有个叫 bootptab 的建构档,它通常被放在 /etc 内。你必须修改它,加上你的无磁碟机器的闸道 IP 位址、 dns 伺服器,以及乙太网路位址(es)。 □例如下 /etc/bootptab: 


--------------------------------------------------------------------------------


global.prof:
        :sm=255.255.255.0:
        :ds=192.168.1.5:
        :gw=192.168.1.19:
        :ht=ethernet:
        :bf=linux:
machine1:hd=/export/root/machine1:tc=global.prof:ha=0000c0863d7a:ip=192.168.1.140:
machine2:hd=/export/root/machine2:tc=global.prof:ha=0800110244e1:ip=192.168.1.141:
machine3:hd=/export/root/machine3:tc=global.prof:ha=0800110244de:ip=192.168.1.142:


--------------------------------------------------------------------------------

global.prof 是 host 项目的一般样本,其中 

sm 栏包含子网路遮罩 
ds 栏包含网域名称伺服器的位址 
gw 栏包含内定闸道位址 gateway 
ht 栏包含网路媒介硬体种类 
bf 栏包含启动档档名 
之後,每一台机器应该有下面这行 

首栏包含主机名称 
hd 栏包含启动档案的目录 
全区样本应该被包含到 tc 栏, 
ha 栏包含乙太网路卡的硬体位址 
ip 栏包含被分配的的 IP 位址 


5.4 了解 tftp 
TFTP (Trivial File Transfer Protocol) 是一个档案传输协定,就像 ftp 一样,但它比比较简化,因此可以容易地在 EPROM □来编码。 TFTP 的使用方法有二种: 

简单的 tftp: 表示客户端可以存取你的整个档案系统。虽然较简单但却开了一个安全大洞 (任何人都可以经由 tftp 来拿到你的密码)。 
安全的 tftp: tftp 伺服器会使用chroot.2 系统呼叫来改变它自己的根目录。任何在新目录以外的事件都完全无法存取。因为 chroot 目录变成新的根目录, 硬碟在 bootptab 整档时必须反应这个新的处境。例如:当我们使用不安全的 tftp 时, hd 栏包含了启动目录的完整路径,: /export/root/machine1。当使用安全的 tftp 时, /export 被当成根目录,而 /export 变成 / ,且 hd 栏就变成 /root/machine1了。 
几乎每一个 Unix 实作都包含 tfpt 伺服器,也许你并不需要自己安装一个。 

5.5 在远端伺服器上设定一个小型的 Linux 建构 
这包含 Slackware供应版内的 a, ap, n, 及 x 部份。要安装更多的套件也可以;但是上面的套件已足够一个无磁碟 X 终端机的需求了。首先你需要一个已在运转的 Linux 系统。在远端机器□找一个磁碟空间并 export 它成为可读写并挂上它到 Linux 机器的档案系统上的某一处 (例如 /mnt)。开始 Linux 设定并改变root 选项从 / 变为 /mnt。然後设立如上面所说的套件,如果你只是要执行一个无磁碟的 Linux 那麽就不需要做其他改变。另一方面,如果你计画使用超过一个以上的无磁碟机器,那麽上面的设定就需要些许的修改,因为有些档案以及目录必须只有机器本身使用。我们可以以移开 /usr 目