微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题远程无盘启动Linux
栏目软件世界
作者谢勇
发布2001年40期
  编者按:我们都知道,针对Windows(95、98、NT、2000等)操作系统,我们可以建立远程无盘启动网络,并实现一些特别的应用。那么,我们也能用Linux操作系统来建立无盘网吗?答案是肯定的。下面,就向大家介绍具体的操作步骤。
   基本原理
  客户端机器只有计算机的基本部件:主板、CPU、 内存等,没有软驱和硬盘,但必须有网卡和启动芯片BootRom。所以,客户机只能通过网络获得操作系统,其启动过程如下:
  1.客户端电脑开机,首先在TCP/IP BootRom 获得控制权之前先作自我测试;
  2.BootRom 发出BOOTP/DHCP请求而获得IP;
  3.如果服务器收到客户机送出的请求,就会回送BOOTP/DHCP回应,内容包括客户端的IP地址、预设网关以及开机映像文件。否则,服务器会忽略这个请求;
  4.BootRom 由 TFTP协议从服务器下载开机映像文件。
  5.客户机通过开机映像文件开机,这个开机映像文件可以只是单纯的开机程序,也可以是操作系统。
  6.开机映像文件将包含kernel loader及压缩过的kernel,此kernel将支持NF Sroot系统。
  7.客户机根据下载的文件启动机器。
  由以上启动过程可以看出,Linux的无盘远程启动与Novell、NT下的无盘启动的实现方式是不一样,它不是采用RPL(Remote Initial Program Loader),而是基于标准的BootP/DHCP和TFTP协议并通过NFS文件系统来建立文件系统。相对前两种方式,更具有通用性和适应性,基于Linux系统,我们还可以远程启动DOS、Win95、NT和Linux客户机。
   应用实例
  工作环境:
  Linux服务器:server01
  第一个客户机:pc01
  所有远程启动客户目录:/machines
  第一个远程启动客户机目录:/machines/pc01
  1.首先,重新编译内核:
  make menuconfig
  注意:网络的支持、NFS-Root支持、BootP(DHCP)的支持必须包括在内。
  make clean
  make dep
  make bpImage
  make modules
  make modules_install
  执行以上命令后,你会发现客户端启动的映像文件在/usr/src/linux/i386/boot目录中。
  2.然后,执行以下命令:
  mknod /dev/nfsroot b 0 255
  修改启动设备,让它指向NFSRoot,将boot image拷贝到Linux服务器的/tftpboot目录下。
  rdev /dev/nfsroot
  3.为客户机修改服务器,用于建立远程客户机的文件系统。
  在服务器/etc/exports 中加入:
  /machines/pc01 pc01(rw,no_root_sq)
  uash/usr(ro,no_root_squash)
  /sbin(ro,no_root_squash)  /bin (ro,no_root_squash)
  /lib(ro,no_root_squash)/home(rw,no_root_squash)
  4.使用DHCP,在/etc/dhcpd.conf 加入对远程客户的支持(具体可以参考DHCP-Howto)。在服务器上建立远程客户机目录: /machines
  /machines/pc01  /machines/pc01/bin  /machines/pc01/dev
  /machines/pc01/etc  /machines/pc01/home  /machines/pc01/lib
  /machines/pc01/mnt  /machines/pc01/proc  /machines/pc01/root
  /machines/pc01/sbin  /machines/pc01/server  /machines/pc01/tmp
  /machines/pc01/usr  /machines/pc01/var建立bin目录
  拷贝sh、umount、ls、rm、cp、domainname、dnsdomainname、nisdomainname、hostname、cat、mount、umount到/machines/pc01/bin 中。建立dev目录:
  cp -a /dev /machines/pc01
  5.建立etc目录:
  cp -a /etc /machines/etc
  注意:必须修改/machines/pc01/etc/rc.d 启动文件:将mount -avt nonfs改为 mount -av.允许使用NFS Root文件系统,并按以下格式修改/machines/pc01/etc/fstab文件:
  server01:/machines/pc01 /nfs  server01:/bin /bin nfs
  server01:/usr /usr nfs  server01:/sbin /sbin nfs
  server01:/home /home nfs  server01:/lib /lib nfs  none /proc proc
  6.建立lib目录,拷贝/lib/l*到/machines/pc01/lib。
  建立sbin目录,拷贝init、mount、umount、update、rdev、swapdev、swapon、swapoff、mount、umount 到 /machines/pc01/sbin。
  建立var目录,并cp -a /var /machines/pc01/
  接下来必须建立一个链,将远程客户机的IP地址链接到/machines/pc01目录。
  最后请确认服务器上的nfsd、tftpd、bootpd和daemons已启动。
  一切操作完毕后!你就可以试着远程启动Linux,令人兴奋的是,这个过程很快,一般10秒钟左右就行了。