作者:
Robert
Nemkin
buci@math.klte.hu
译者:
谢昆中
HSIEH
Kun-Chung,
(
linuxer.bbs@cis.nctu.edu.tw
)
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
所写,
94004531@postoffice.csu.edu.au
/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
系统。在远端机器□找