⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diskless.txt

📁 Linux百科宝典
💻 TXT
字号:
                            无磁碟 Linux Mini Howto                                       作者: Robert Nemkin buci@math.klte.hu译者: 谢昆中 HSIEH Kun-Chung, 台湾 中华民国 Taiwan, Republic of China (NOTPeople's Republic of China) ( [1]linuxer.bbs@cis.nctu.edu.tw )   v0.0.3版, 1996年 9月12日     _________________________________________________________________      本文件在叙述如何设立一个无磁碟 Linux 机器。著作权为 Robert Nemkin 所有   。著作权条款依照 GPL。我想要谢谢 Bela Kis <bkis@cartan.math.klte.hu> 将   这份文件翻译成为英文。     _________________________________________________________________   1. 修改2. 如何设立一个无磁碟的 Linux 机3. 相关文章4. 硬体5. 基本概念     * 5.1 设定个人电脑     * 5.2 在伺服器上设定 bootpd     * 5.3 在伺服器上建构 bootpd     * 5.4 了解 tftp     * 5.5 在远端伺服器上设定一个小型的 Linux 建构      * 5.6 建构 tftp 伺服器     * 5.7 最後工作       6. 记忆体以及磁碟空间要求; 速度7. 可能的错误8. 本文件中的错误以及更详细的解说     _________________________________________________________________   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 servertftp            69/udp          # TFTP server       ______________________________________________________________          * 重新启动 inetd ,使用       ______________________________________________________________             kill -HUP <process id of inetd>.       ______________________________________________________________     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 目录(它包含非私人的资   料)的方式跳过这个问题, 然後建立一个分开的子目录给每一个无磁碟机器。例   如,如果 /export/linux/machine1 被挂在 /mnt 上,那麽在初始设定後目录结   构会像这样       ______________________________________________________________     /export/linux/machine1/bin/export/linux/machine1/sbin/export/linux/machine1/lib/export/linux/machine1/etc/export/linux/machine1/var/export/linux/machine1/usr       ______________________________________________________________        改变後你会有       ______________________________________________________________     /export/linux/machine1/bin/export/linux/machine1/sbin/export/linux/machine1/lib/export/linux/machine1/etc/export/linux/machine1/var/export/linux/usr       ______________________________________________________________        现在为其他的机器建立目录。从现在开始我们假设你的无磁碟机器分别叫做   machine1、machine2、 machine3等等; 使用以下的 bash 命令手稿来设立其他   的目录       ______________________________________________________________             cd /export/linux        for x in machine2 machine3 ; do                mkdir $x; cd $x                (cd ../machine1; tar cf - *) | tar xvf -        done       ______________________________________________________________        然後做下列的 export:     * /export/linux/usr 唯读(对每个使用者)     * /export/liunx/machine1 只有对 machine1 有 rw,root 权利。     * /export/liunx/machine2 只有对 machine2 有 rw,root 权利。     * /export/liunx/machine3 只有对 machine3 有 rw,root 权利。          如下        下面□列是依照 SunOs 4.1.3 的 exports 档案的语法来做        :       ______________________________________________________________     # This file is /etc/export# for remote linux X terminals by Buci# this line is only once/export/root/usr             -access=linuxnet# these lines once for every host/export/root/machine1       rw=machine1,root=machine1/export/root/machine2       rw=machine2,root=machine2/export/root/machine3       rw=machine3,root=machine3       ______________________________________________________________        请不要忘了执行 exportfs -a   5.6 建构 tftp 伺服器   现在该是建构 tftp 伺服器的时候了。如果你不需要一个安全的 tftp 那很简单   , 因为你的客户端已经可以从 /export 目录来启动。      如果一个安全的 tftp 被采用,那麽你可以在 /tftpboot 目录下做个完整的   /export/linux 目录结构。 (用一个实体核心程式及连结给其他机器的符号连   结), 或是让 /export 目录成为安全的 tftpd 的根目录。或者如果你有一另外   的 tftpboot 目录,那麽,同样地,你只需要原来的目录结构,然後用一个实体   核心程式来 符号连结其他机器) 。 你可以执行下列命令来完成这个设定:       ______________________________________________________________           mkdir -p /tftpboot/export/linux/machine1      cd /tftpboot/export/linux/machine1      cp /export/linux/machine1/<name of the kernel> .       ______________________________________________________________        然後执行下面:       ______________________________________________________________           mkdir -p /tftpboot/export/linux/machine2      cd ../machine2      ln -s ../machine2/<name of the kernel>       ______________________________________________________________     5.7 最後工作   最後,你必须插入       ______________________________________________________________        /sbin/mount nfs_server:/export/linux/usr /usr       ______________________________________________________________            ______________________________________________________________        /export/linux/<machinex>/etc/rc.d/rc.S       ______________________________________________________________        的第一行。在这□ <machinex> 指的是 machine1, machine2等等。   6. 记忆体以及磁碟空间要求; 速度   我只在 Slackware 2.3上测试过;对於其他的供应商(Linux)套件或版本,下面的   数字可能会不同。     * 磁碟空间: 28MB + 6.5MB/每台机器     * RAM: 我在 8MB 上跑 X ,只需要 4MB swap 。我猜想,这个可以被建立-为       每一部机器分别做- 在 /tmp□面,请不要忘了执行 mkswap。     * 速度: 我在一台有 8 Megs 的 486 DX2/66 机器上跑并无问题。       7. 可能的错误     * 我发现一个奇怪的错误:在 /dev 子目录□, SunOS 搞错了设备名称,所以       我被迫 将这个子目录挂上一个有磁碟的 Linux 机器上来重新执行 MAKEDEV       。 (原因是因为 linux nfs 和 SunOs nfs是不同的: 两者都使用32 位元在       主要及次要设备名称, 但是linux 使用 16 位元宽度栏在两者上, SunOs       则使用 14 位元宽度栏给主要设备, 18 位元宽给次要设备号码。)     * 当无磁碟 linux 被启动时,只有一个行径 route 会被放在 tftp 伺服器的       行径表□ , 所以你需要设定正确的行径表。你有两种选择:          + 手动建构每一台机器的每一个 rc.S 。          + 或使用bootp 客户端套件并写一个通用的设定命令手稿       8. 本文件中的错误以及更详细的解说     * 正确引用相关的文件。     * SunOs 是以 BSD 为基础,所以需要包含 SVR4 (如 Solaris) 为基础的伺服       器建构。     * 虽然 Linux 和 SunOs 都可以做为 bootp/tftp 伺服器,但是 Linux 会比较       有用些。     * 更新这份文件到最新的 etherboot 套件。     * 指出核心程式版本1.2.13 在nfs root 修补後与新的 1.3.x 版(此版已包含       了 nfs-root 的修补)的不同处。     * 需要试试 wd8013 以外的其他乙太网路卡     * 包含 bootpc的建构资讯,一个bootp 客户端来设定正确的 rooting 表。     * 编排上或其他的错误:麻烦您告诉我一声,谢谢。 buci@math.klte.hu          译者按: 若您发现本文件内容有翻译不顺畅或错误的地方,请您来信告诉我,以   做更正,谢谢。 [2]linuxer.bbs@cis.nctu.edu.tw。References   1. file://localhost/tmp/bg5sgmltools.31112/linuxer.bbs@cis.nctu.edu.tw   2. mailto:linuxer.bbs@cis.nctu.edu.tw

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -