手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>操作系统>Linux>列表

Linux Remote-Boot mini-HOWTO

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

patch-2.0.29: 另一个小的正式的 kernel 更新档, 如果您不需要最新版的 kernel 则不用加入它 
patch-2.0.30: 又是一个正式的 kernel 更新档, 满大的. 一样, 您不需要加入这项修正 (但它会改善 TCP/IP 通讯 协定). 如果在您的机器上您没有 alpha 的原始程式码 (这很有可能发生), 这个修正档将出现两次抱怨含入档不存在的讯息. 不要紧张, 只要回答您要跳过这些缺少的档案,不会发生任何问题 
接著执行 make mrproper 及 make xconfig, 产生 kernel. 记住这将是客户端电脑以 Linux 启动时, 唯一接收到的软体, 所以 它必须要包含启动整个作业系统所需的东西. 可以使用模组方式, 但是不包括网路模组. 因为网路功能一定要放在 kernel 中. 简而言之, 您的 kernel 至少需要以下这些 

支援网路 
在有 BOOTP 通讯协定下,支援 NFS-Root 
支援 filecache 
支援客户端电脑的硬体所需的模组 
您可以使用我们的 .config 当做起点. 如果您想要在没有 Bootprom 的状况下测试, 请确定您已经在 kernel 内包含硬碟机的支援. 
当您的选择完成後, 照常地输入 make clean; make dep 接著 make zImage, make modules 与 make modules_install. 这会花一点时间... 现在您准备去测试您的新 kernel, 先用先用 lilo. 安装您的 kernel (参考 lilo 文件),并重新启动您的电脑 (由硬碟启动). 如有任何错误, 修正它们并再试一次. 执行 depmod -a 计算 modules dependencies. 当完全无误时, 执行 make bpImage 产生一个 bootimage 给 TCP/IP Bootprom 使用. 


把 Root 档案系统移到 NFS
您的伺服器要有足够的空间来保存您的整个 Linux 档案系统 (几百 Megabytes). 建立一个新的目录给 NFS 输出, 就叫 rootfs, 并在其中建立另一个新目录就叫 runtime. 我们使用 /export/linux/rootfs/runtime. 把它输出成只有您的 Linux 客户端可读可写, 并具有 root 的存取权 ( annon=0). 例如, 我们的 NFS 是在 Solaris 下执行, 我们用以下这个指令: 


share -F nfs -o rw=pc7971,anon=0 /export/linux/rootfs/runtime. 

在您的 Linux 客户端挂上这个分割区并用GNU tar 把整个 Linux 档案系统复制过去 (预设是 RedHat Linux). 很重要的是当您使用 GNU tar 指令,因为所有的 tar 指令可能无法正确地处理 block device 的 special nodes . 然後编辑档案 /export/linux/rootfs/runtime/etc/fstab 并变更根目录的设定,使根目录符合以 nfs mount 取代自己的硬碟机. 你还要移去 (或者 至少要变更名称) /export/linux/rootfs/runtime/etc/sysconfig/network-scripts/ifcfg-eth0 因为网路装置将由 NFS-root 初始化但不能被初始化两次. 

现在在您的 /etc/lilo.conf 复制一行 linux, 例如:以 linux-nfs 为名, 并加入以下的参数: 


append="root=/dev/nfs nfsroot=/export/linux/rootfs/runtime nfsaddrs=您的-ip:伺服器的-ip:闸道器的-ip:网路遮罩:机器名称" 

(您的-ip 是您的 Linux 客户端的 IP 位址,是以十进位有点的方法表示, 伺服器的-ip 是 NFS 伺服器的 IP 位址, 闸道器的-ip 是 Linux 客户端的预设闸道器, 网路遮罩 是 Linux 客户端的网路遮罩 而 机器名称 是Linux 客户端的主机名称). 再执行一遍 lilo , 重新启动您的电脑 (仍然是由硬碟机), 并选择 linux-nfs 开机设定. 您的电脑将如先前一般启动, 即使有一点慢. 如果在这里有某些东西不能正常工作, 您只要重新开机用您原来 local的 linux 开机设定并试著修正它. 大部份的状况是, 您的 NFS root 设定错误. 如果有任何东西您不了解, 看一下 /usr/src/linux/Documentation 这些档案... 您或许可以看看 NFS-Root-Mini-Howto. 

您可以再试一次,这次只用 append="root=/dev/nfs" 以确定 Linux kernel 可以透过 DHCP/BOOTP要求而获得您所设定的 IP 参数. 如果要这样做, 您必须在您的 DHCP 设定档中加入以下这些选项 (当然是要设定您自己的网路组态), 加上您的机器的硬体及 IP 位址: 


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

option subnet-mask 255.255.252.0;
option routers 129.194.68.1; 
option root-path "/export/linux/rootfs";


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

如果您的 Linux kernel 须要再加入其它指令参数, 您可以用 option option-177 来加入. 
下一步要使我们的系统在 唯读的 NFS 档案系统下可以工作. 


产生唯读的 NFS Root 档案系统
既然我们要我们的 root 档案系统在大部份的 Linux 客户端以唯读的方式挂上, 那就要使档案系统有些微的不同, 因此我们将需要写入权限的地方以 ramdisk 或 filecache 取代. 我们把这个档案系统建立在 /export/linux/rootfs 目录下, 而标准的版本则直接放到 /runtime/ 下. 登入您的 NFS 伺服器并在 /export/linux/rootfs目录下,建立以下的目录跟连结: 


bin -> cache/bin 
dev -> ramdisk/dev 
etc -> ramdisk/etc 
lib -> cache/lib 
root -> ramdisk/root 
sbin -> cache/sbin 
tmp -> ramdisk/tmp 
usr -> cache/usr 
var -> ramdisk/var 
cache/ 
bin -> /runtime/bin 
lib -> /runtime/lib 
sbin -> /runtime/sbin 
usr -> /runtime/usr 
mnt/ 
cdrom/ 
floppy/ 
tmp/ 
proc/ 
ramdisk/ 
dev -> /runtime/dev 
etc -> /runtime/etc 
root -> /runtime/root 
tmp -> /runtime/tmp 
var -> /runtime/var 
就如您所见的, 它看起来像正常的 root filesystem, 除了少部份几个是重新指到 /ramdisk, 有些则重新指到 cache 目录. 当用唯读的 NFS filesystem 开机, 我们将挂上一个已初始化过的 ramdisk 放在 /ramdisk 下. 同样□ 自己硬碟的分割区将被挂在 /cache 给 NFS 快取使用. 粗略的说,这个档案快取的原理是当the principle of the filecache is that whenever a symbolic link from the cache subdirectory is followed, it is replaced by its target. 如果目标自己是一个子目录, 则每一个子目录会转换成一个符号连结并连结到外部档案系统的原始位置. 注意档案快取使用绝对符号连结是必须的, 即使它们在 NFS 伺服器上是无意义的. 如果您不喜欢这样, 可以在您的 NFS 伺服器上,建立一个符号连结由 /runtime 到 /export/linux/rootfs/runtime . 

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!