📄 remote-boot.txt
字号:
一个符号连结由 /runtime 到 /export/linux/rootfs/runtime . 在唯读的客户端加入一些设定的东西是必须的, 如此才可以挂上 ramdisk, 及设 定档案快取 和侦测硬体以变更设定档. 这些都由三个程序档和一个组态档来完 成, 您可以把它复制到 您的NFS 伺服器: * [26]runtime/etc/rc.d/rc.ramdisk, 可以快速设定并挂上 ramdisk: ______________________________________________________________ #!/bin/sh## 设定一个 ramdisk 因为 root 透过 NFS 以唯读方式挂上#modprobe rdgzip -c -d /runtime/lib/ramdisk.gz | dd of=/dev/ram bs=1k > /dev/null 2>&1mount -n -t ext2 /dev/ram /ramdisk ______________________________________________________________ * [27]runtime/etc/rc.d/rc.sysdetect, 这是所有的机器各自独立的设定档, 包括侦测及分配 区域硬碟机的分割区 给档案快取使用. 为了空间的理由我 们不在此份文件可列印的版本中包含此档, 但您可以在超文 件的版本找到 它; * [28]runtime/etc/rc.d/init.d/filecache.init 这是用来启动档案系统的: ______________________________________________________________ #!/bin/sh## filecache: 档案快取: 启动档案快取 (给 NFS root 用)## 来源功能函数库.. /etc/rc.d/init.d/functions# 看看我们如何呼叫功能函数.case "$1" in start) if [ -e /cache -a -r /etc/filecache.conf ]; then echo -n "Starting NFS filecache: " # 把 var 与 tmp 移到区域性的硬碟机 rm -rf /cache/var /cache/tmp (cd /ramdisk; tar cf - var tmp) | (cd /cache; tar xf -) (cd /ramdisk; rm -rf var tmp;ln -s /cache/var;ln -s /cache/tmp) chmod 777 /cache/tmp # 启动档案快取 daemon filecache -d on echo "" touch /var/lock/subsys/filecache fi ;; stop) filecache off rm -f /var/lock/subsys/filecache ;; *) echo "*** Usage: filecache.init {start|stop}" exit 1esacexit 0 ______________________________________________________________ * [29]runtime/etc/filecache.conf, 档案快取的设定档 ______________________________________________________________ Max 100 MB 50 % #Cache /runtime /cache ______________________________________________________________ 前两个档案应该放在前两个档案应该放在 [30]runtime/etc/rc.d/rc.sysinit, 档案内最前面的位置, 如下所示: ______________________________________________________________ # 设定所需的 ramdisk (给 root NFS 唯读的机器)if [ -e /ramdisk -a -r /etc/rc.d/rc.ramdisk ]; then /etc/rc.d/rc.ramdiskfi# 设定硬体各自独立的参数 (给每个 root NFS使用)if [ -r /etc/rc.d/rc.sysdetect ]; then /etc/rc.d/rc.sysdetectfi ______________________________________________________________ 而第三个应该 be bound as usual to the System V init directories: we use links named S35filecache in the rc3.d and rc5.d directories, and K80filecache in the rc0.d, rc1.d, rc2.d and rc6.d directories. 检查一下 rc.sysdetect 这个档案, 并使它与您的硬体设备配合. 特别要注意的 是, 如果您跟我们一样没有 使用相同的显示卡及萤幕 (这很可能发生的 :-), 看 看它们在 /proc/pci 的回应并依此修改叙述档. 在每台 机器所使用的存放位置 下, 其 rc.sysdetect 之中有一段内容为, 可自订的设定档 (例如 printcap), a为了能每 台独立工作, 您需要於伺服器的 dhcpd.conf 档案中, 用特别的标记 option-132 设定每台机器所使用的位 置. 在您继续安装之前, 您至少要先建立 基本的几个档案 [31]runtime/etc/fstab.ref 和 [32]runtime/etc/hosts.ref , 这些将由 rc.sysdetect 叙述档在启动时透过侦测设定来完成, 为了动态的设 定 X servver, 使用 RedHat 软体套件, 有一件事您必须先变更的: 在 /usr/X11R6/bin 及 /usr/X11R6/lib/X11 目录下, 有一些相关的 连结设定档及 目录应该改成绝对连结. 别忘了以後的 X server 更新安装也要如法泡制. 把 [33]filecache 安装在 runtime/bin 目录下, 并把它的使用说明 [34]man page 安装在 runtime/usr/man/man8 目录下. 把 [35]bootptag 或 [36]dhcptag 安装 在 runtime/usr/local/bin 目录下, 并且 [37]bootptag.c (或 [38]dhcptag.c) 必须放在 runtime/usr/local/src 目录下: 它是一个发送 BOOTP/DHCP 要求, 并以相容於 shell 的标准输出格式回应 BOOTP/DHCP 内容的 小程式, 就如下的□例所示: ______________________________________________________________ bootp_your_ip='129.194.71.32'bootp_server_ip='129.194.77.31'bootp_filename='XXXclean'bootp_subnet_mask='255.255.252.0'bootp_routers='129.194.68.1'bootp_domain_name_servers='129.194.69.200 129.194.8.7 129.194.4.32'bootp_host_name='pc7132'bootp_domain_name='unige.ch'bootp_root_path='/export/linux/rootfs'bootp_broadcast_address='129.194.71.255'bootp_nis_domain='cuisunnet.unige.ch'bootp_nis_servers='129.194.69.200'bootp_option_132='dufour' ______________________________________________________________ 标记的名称与 RFC 2132 很相似. 如果您使用 dhcptag, 您将得到一些以 dhcp_ 开头的标记, 这些是 DHCP-规格的选项内容; 为了顾及相容性, 其它的资讯仍然 以 bootp_ 为字首. 我们使用这个程式自动设 定 rc.sysdetect. 最後, 在 runtime/lib 安装 [39]makeramdisk script . 我们将用它自动产生 ramdisk 影 像档. 这些软体 都在超文件的版本中. 现在试著由客户端以 read-write NFS 开机 (仍然用硬碟开机). 它将侦测您客户 端的个别组态, 并 产生适当的档□ 检查 /etc/fstab, /etc/hosts, /etc/sysconfig/network 是否设定正确. 如果您看到的不是这样, 请在 单人工 作模式下重试一遍, 并找出您在 rc.sysdetect 叙述档中所犯的错误. 等到它可以正常工作, 到 /lib 目录下执行 ./makeramdisk. 将会花几秒钟, 来 产生一个 ramdisk 影像档给唯 读的 NFS 客户端. 把产生出来得 ramdisk image 放在这 /lib/ramdisk.gz, 就这样您的组态就绪了! 由 Bootprom 开机 如果您还未完成它, 请安装您的 TCP/IP Bootprom-相容的 kernel 影像档 (可在 这找到 /usr/src/linux/arch/i386/boot/bpImage) 即您伺服器上的 /tftpboot/linux.PX . rc.sysdetect 这个叙述档用来初始化您的 Linux swap 及 Linux 资料分割区. 因为要启动它, 故编辑伺服器上 XXXclean.tab 这个档案 并改变分割区 的型态由 hex 82 改为 hex 28, 及 hex 83 改为 hex 38. 这是一 种未知的分割区型态, 但是安装程序档能把它当成预备分割区来辨 识. 在 DHCP 的设定档中, 把开机档设定为 XXXclean , 使它能重新 建立分割表. 别忘了在修 改完设定档後要重新启动 DHCP daemon. 最後, unexport 可读写的 runtime 目录, 并 export 唯读的 /export/linux/rootfs 目录. 重新启动客户端, 这一次使 用开机使用 Linux 选 单的选项. 您的系统现在已是 remote-boot Linux. 系统维护与更新 如果您以後想更新软体,安装一些错误修正档或安全性修正档, 请按照下列步骤: * Unexport rootfs 目录 * Export runtime 目录为可读可写给您得客户端 * 设定您客户端的 nfsroot 目录为 runtime (在 /etc/bootptab 中设定) * 启动您得 Linux 客户端, 并安装您想安装的东东. 不要怕使用 rpm, 它可以 做得很好 (只要小心当 您安装任何软体套件时,要注意一些您做过的修正可 能有些要作修改). * 当您完成後重新换成正常的 export 这是指, 您必须在 local 安装的状态下, 才能更新您的 server-based 设定的软 体. 3.3 设定 DOS 6 及 Windows 3.1 在您的客户端电脑, 使用您喜欢的 dos 软碟开机 (记得开机时, 按空白键取消 BootPROM 开机). 格式 化您硬碟中的 dos 分割区并加上 /S 参数, 使它放入作 业系统. 建立一个名为 DOS 的子目录, 把 DOS 拷 贝进去. 安装你所喜欢的网路 客户端程式 (例如 Microsoft LanManager), Windows 3.1, 等等. 使用 DHCP 通 讯协定设定 IP 组态. 您必须恢复原本被 BootPROM 所使用掉的记忆体空间 (当 DOS 启动後这些记忆体 不再需要用到啦) 加入下面这一行到您 config.sys 内的第一行: ______________________________________________________________ device=\util\bputil.sys -r ______________________________________________________________ (bputil 是一个 TCP/IP BootPROM 工具磁片中的程式). 不用怕使用 EMM386 最 佳化您所使用的记忆体, 您可以把网路卡 ROM 所占的区域纳入管理, 因为它在这 时已经用不到了. 但要记得把网路卡所使用 的 RAM 区块不纳入管理, 否则您将 无法连接到您的伺服器. 如果您不让您的客户端机器使用无效的登入名称, 把我们的 [40]nobreak.sys pseudo-device 驱动程式放在您 config.sys 的开头处并把以下这些东西放到您 的 autoexec.bat: ______________________________________________________________ rem -- 我们使用 c:\logged 为一个旗号del c:\logged >nul:loginneededclsecho Please type in your login name and passwordecho.net logon *rem -- the login script 已经建立好 c:\loggedif not exist c:\logged goto loginneededdel c:\loggedrem -- 使 break 功能生效echo Yes >NOBRK ______________________________________________________________ 重新开机并在开机选单中选择 Boot from local hard-disk 选项, 确定可以开 机. 把组态设定移到伺服器 回到伺服器上, 建立一个分享名称为 admin , 用来放一些系统管理者用的东东. 如果伺服器是跑 Unix, 建议您把 /tftpboot 子目录用 softlink 放一份到 admin , 这样您可以直接由客户端传回开机影像档. 在 admin 目 录内, 建一个 /utils 子目录并放入如下的工具: * [41]mrzip.exe, 一个用来压缩您客户端硬碟影像档的程式. * [42]mrunzip.exe, 一个用来回存您硬碟影像档到伺服器的程式. 您也需要把一些用来清理硬碟及产生压缩影像的批次档放到相同的目录下,这些批 次档如下: ______________________________________________________________ @echo offif "%1"=="" goto errorecho >c:\lanman.dos\lmuser.inil:\utils\mrzip l:\tftpboot\%1goto end:errorecho Usage: MAKEIMG {image-name-without-extension}:end ______________________________________________________________ 现在回到您的客户端, 以下将以 admin mount 为磁碟机 L: 为□例作说明接著执 行您建立的批次档, 如 果您还没做那可以按下列的指令执行 (不一定要用绝对路 径 ) ______________________________________________________________ L:\util\mrzip L:\tftpboot\win31 ______________________________________________________________ 一分钟过後, 您伺服器上的 /tftpboot 子目录下将有两个新档案, 名称为 win31.imz, 是您硬碟内容的压缩 影响档win31.chk, 这是相关的检查档 (是 partition boot record 细部修改後的拷贝). 在这真正的目录内, 只 要建立一 个 bpunzip 的 symbolic link (或这用拷贝的) 且命名为 win31.P.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -