etherboot无盘启动 2001.10.30 吴峰光 本站提供对无盘启动的支持。本文就此作一简单介绍。 一、概述 无盘启动,更确切的说是网络启动,可算是最为轻松和简便的启动方式了。 目前还很少有人了解它,因为目前的软硬件条件尚未完全成熟。 但是可以预见,不远的未来(最近几年吧),将会是无盘启动的时代。 无盘启动可以由netboot,etherboot及pxe实现。 现在一般选用的是etherboot,而pxe方式是未来的方向,只是在目前条件尚未成熟。 二、现有的服务 198提供了DHCP,TFTP,NFS等服务,用以支持无盘客户端。 本站提供如下类型的网络启动模块: -->> 启动进入Linux 无须在本机上安装Linux系统,您就可以启动进入一个全功能的linux系统(debian/woody). 您可用root登陆系统,无需输入密码。 感觉就像是自己装的Linux,没有任何功能上的限制,除了你不能更改/。 特别适合如下用途: □linux初学者学习使用 □供有经验的linux用户作为应急系统:比如在一个裸机上装操作系统,本地系统损坏时进行紧急修复. -->> 加载Windows98启动盘 -->> 加载多种Linux版本的安装程序 三、客户端 要享受网络启动,首先要求您拥有一块PCI网卡,并在卡上插有一块EPROM无盘启动芯片。 能满足后一条件的恐怕很少,不过没关系,现在有一种非常简便的EPROM替代方式。 那就是准备一张无有用数据的软盘,往其中写入一段小小的网络启动驱动代码(通常是16K/32K) 然后就可以用它启动电脑,进入网络启动界面啦! 具体操作: 从file://202.38.73.198/diskless/etherboot/下载: -->> rawrite.exe -->> 子目录lzdsk下与您的网卡配套的驱动代码映像文件 运行rawrite.exe,输入映象文件名,即可制作无盘启动引导软盘,进行“无盘”启动了。 当您使用etherboot启动盘成功启动后 第一步:DHCP服务器会给出你的网络配置,并给出一个菜单,在其中列出了所有可用的服务。 第二步:选中其中一项之后,即进入第二步,从TFTP服务器下载相应的映象文件。 第三步:控制权交给此映象文件,启动进入linux/freebsd/dos等操作系统。 四、服务端设置 自动化系系网: 由202.38.73.198(本站)提供DHCP、TFTP及NFS-ROOT支持。 校内其它子网: 有兴趣提供这一服务的同学,有如下三种选择,可简可繁。 1、简单的提供DHCP 2、提供DHCP及TFTP 3、提供完整配套的DHCP、TFTP以及NFS-ROOT 前两种方案比较简单,对服务器也没有什么负担,它们起到了前期引导启动的作用, 而后期的NFS-ROOT负载全部转由198服务期提供。 第三种方案实际上就是要新建一整套无盘系统,那就非常的繁了。 1. DHCP解决方案 这适用于简单的为实验室内部网络提供网络启动支持. 操作: 您需要运行dhcpd,并在/etc/dhcpd.conf中合适的地方加入如下的语句: next-server 202.38.73.198; filename "/tftpboot/nc.nbi"; option tftp-server-name "202.38.73.198"; option root-path "202.38.73.198:/croot,flags=hard,nolock,intr,v3"; 其中第二行的文件名按您的需要而定。在73.198上的/tftpboot/目录下有一些现成可用的映像文件,供您选择使用: nc.nbi 全功能的Linux bare.nbi 受限的Linux,不能存取本地硬盘、软盘及光盘,不能动态加载内核模块 win98.nbi win98启动盘 suse.nbi SuSE 7.3 安装启动 redhat.nbi Redhat 7.2 安装启动 mandrake.nbi Mandrake 8.1 安装启动 2. DHCP+TFTP解决方案 相对于1,其好处是可以提供一个菜单,让客户端自由选择想加载启动的映像文件. 操作: a) 开启tftp服务,并从本站/diskless/tftpboot/目录下载所有文件至本地/tftpboot目录. b) 开启dhcp服务,并在/etc/dhcpd.conf中合适的地方加入如下语句: (注意:请勿直接copy&paste,内含特殊字符!) option option-128 e4:45:74:68:0:0; option option-129 "ramdisk_size=102400"; option option-160 "timeout=15:default=192"; option option-184 "['/tftpboot/motd'#"; option option-192 "Network Computer - a full functional GNU/Linux system:::/tftpboot/nc.nbi:"; option option-193 "Bare WorkStation - a bare diskless GNU/Linux system:::/tftpboot/bare.nbi:"; option option-194 "Redhat 7.2 Installation Disk:::/tftpboot/redhat.nbi:"; option option-195 "Mandrake 8.1 Installation Disk:::/tftpboot/Mandrake.nbi:"; option option-196 "SuSE 7.3 Installation Disk:::/tftpboot/suse.nbi:"; option option-197 "Win98 boot - Windows 98 bootdisk:::/tftpboot/win98.nbi:"; 3. DHCP+TFTP+NFS解决方案 进一步增加NFS支持,主要是用来构建自己的无盘linux系统. 适合于快速建立集群系统,用于并行运算. 无盘系统的构建方法多种多样,需要拥有较好的Linux基础。 这里我仅简单的介绍一下自己的方案。 我的原则是:创建和维护简单而方便,扩展性和伸缩性好,通用性和适用范围广。 简单步骤如下(假设您已具有Linux无盘启动的初步知识): 1、在一台普通的机子上安装一个debian/woody系统,进行初步的系统配置。 2、将此系统完整的拷贝到服务器的目录/croot下。 3、在服务器上配置运行nfsd。将/croot通过NFS共享: #/etc/exports /croot *(ro,no_root_squash) 4、在服务器上配置运行dhcpd,tftpd。 5、缺省的/etc,/var等目录,客户端需要拥有写入权,因此需要在客户端内存建立虚拟的文件系统。 把/croot下的etc/,var/,root/等目录精简并打包,放在/croot/nfsboot/目录下。 系统启动时下面的脚本会建立若干tmpfs文件系统,并把这些压缩包解开还原到其中去。 6、在/croot/etc/init.d/下新建nfsboot.sh脚本文件,并建立链接 ln -s /croot/etc/init.d/nfsboot.sh /croot/etc/rcS.d/S03nfsboot.sh 使之能在系统启动的初期自动执行。 7、编译客户端内核,分别使用etherboot及mknbi制作启动软盘及映像文件。 参考资料: 在198上你能找到全部的配置参考资料.比如: ftp://202.38.73.198/diskless/ etherboot及mknbi源代码 ftp://202.38.73.198/diskless/dhcpd.conf.sample dhcpd配置文件模板 ftp://202.38.73.198/diskless/etherboot/ 已编译好的各种etherboot启动文件 ftp://202.38.73.198/diskless/tftpboot/ 已打包好的由mknbi制作的网络启动映象文件 (NFS) 202.38.73.198:/croot NFS-ROOT,整个系统都给你了噢。 (NFS) 202.38.73.198:/croot/etc/init.d/nfsboot.sh 网络启动初始化脚本,呵呵,本系统运行的关键之处。 (NFS) 202.38.73.198:/croot/etc/nfsboot/ 已打包的精简版本/etc,/var等目录 若有什么问题,请与我联系: wfg@mail.ustc.edu.cn fengguang_wu@bbs