Linux无盘工作站构架的一点小经验

发表于:2007-07-04来源:作者:点击数: 标签:
其实无盘的linux并没有十分困难,只是做的人不多而已。 这里我就介绍一下我的实现方法: 实现系统(RedHat 8.0+DHCPD+TFTP) SYS LINUX =http://freshmeat.net/redir/syslinux/10177/url_tgz/syslinux-2.09.tar.gz 其实这与系统没有多大关系 安装 服务器 ,这

  其实无盘的linux并没有十分困难,只是做的人不多而已。
  这里我就介绍一下我的实现方法:
  实现系统(RedHat 8.0+DHCPD+TFTP)
  SYSLINUX =http://freshmeat.net/redir/syslinux/10177/url_tgz/syslinux-2.09.tar.gz
  
  其实这与系统没有多大关系
  
  安装服务器,这个服务器必须支持dhcpd(或PXE),tftpd,nfs这几个服务,这里要说的是必须要结合syslinux一齐用。
  下载syslinux 编译后把pxelinux.0 拷贝到/tftpboot/, pxelinux.0 为启动文件.取得无盘工作站的网卡(MAC)
  在dhcpd.conf中指定IP地址;
  dhcpd文件例子:
  ####################################
  deny unknown-clients;
  option subnet-mask 255.0.0.0;
  option broadcast-address 130.255.255.255;
  option domain-name "";
  option routers 129.0.0.254;
  ddns-update-style none;
  
  subnet 129.0.0.0 netmask 255.0.0.0 {
  group {
  host node1{
  hardware ethernet 00:30:48:29:cb:96;
  fixed-address 129.0.0.1;
  filename "pxelinux.0";
  option routers 129.0.0.254;
  option domain-name "YY";
  }
  }
  }
  #######################################
  
  在新建一个pxelinux.cfg目录,启动时服务器会在此目录找相应的无盘工作站的配置,文件的名称规则为IP地址的16进制的输出比如10:10:10:10 文件名为0a0a0a0a 若找不到系统会一步一步找0a0a0a00 -> 0a0a0000 -> 0a000000 -> default 在找不到那就无法启动了.
  此文件的格式:
  ########################
  DEFAULT linux
  PROMPT 0
  LABEL linux
  KERNEL vmlinuz
  append ip=dhcp root=/dev/nd01 nfsroot=129.0.0.254:/tftpboot/node vga=normal
  ##########################
  可以自己改变.此文件指定了 服务器为129.0.0.254 无盘工作站的文件系统在/tftpboot/node下下面是我写的建无盘站文件系统的shell程序
  #############################
  #!/bin/sh
  mkdir=`which mkdir`
  cp=`which cp`
  mknod=`which mknod`
  chmod=`which chmod`
  rm=`which rm`
  chattr=`which chattr`
  
  
  mkdir /tftpboot/$1
  cd /tftpboot/$1
  echo -n "Copy directory bin ..."
  cp -a /bin .
  echo " OK"
  echo -n "Copy directory dev ..."
  cp -a /dev .
  echo " OK"
  echo -n "Make a node nd0 ..."
  mknod dev/nd0 b 43 0
  chmod 600 dev/nd0
  echo " OK"
  echo -n "Copy directory etc ..."
  cp -a /etc .
  echo " OK"
  echo -n "create directory home ..."
  mkdir home
  echo " OK"
  echo -n "Copy directory lib ..."
  cp -a /lib .
  echo " OK"
  echo -n "clean modules of directory lib ..."
  rm -rf lib/modules
  echo " OK"
  echo -n "create directory root ..."
  mkdir root
  echo " OK"
  echo -n "copy directory sbin ..."
  cp -a /sbin .
  echo " OK"
  #echo -n "link directory usr ..."
  #ln -s /usr usr
  #echo "OK"
  echo -n "create directory var ..."
  mkdir var
  cd var
  echo "Entering directory var "
  echo -n "copy lib"
  cp -a /var/lib .
  echo -n " cache"
  cp -a /var/cache .
  echo -n " log"
  cp -a /var/log .
  echo -n " tmp"
  cp -a /var/tmp .
  echo -n " spool"
  cp -a /var/spool .
  echo -n " yp"
  cp -a /var/yp .
  cd ../
  echo -n "leaving directory var"
  echo " OK"
  echo -n "create directory proc usr tmp ..."
  mkdir proc usr tmp
  echo " OK"
  echo -n "change attribute of tmp ..."
  chmod 777 tmp
  echo " OK"
  echo -n "create file fastboot and add +i attribute ... "
  touch fastboot
  chattr +i fastboot
  echo " OK"
  #######################
  ## change fstab ##########
  编辑/tftpboot/node/etc/fstab
  添加 nodeserver:/tftpboot/node / nfs rw 0 0
  修改/etc/exports
  添加/tftpboot/node node1(rw,async,no_root_squash)
  启动nfs
  再要修改的话,可以根据自己的需要删添.
  
  这样服务系统算是搞定了, 接下去就要编译无盘工作站内核了
  下载一个内核源文件,或者就去安装盘中找一个就可以了,安装后,进入/usr/src/SPRMS/中,看到内核的源程序,make menuconfig ,此时你可以考虑无盘工作站的需要,减少一些硬件的支持,但是你必须要选上nfsroot.
  我找到了其他的安装方法,都不建议使用加载modules,但是你要加载了,好像也没有什么问题,而且可以增加许多功能.不过对资源占用很多,这要看你的观点了. 接下去就把编译好的内核文件 bzImage 拷贝到/tftpboot/下 改为vmlinuz或者你可以在/tftpboot/pxelinux.cfg/xxxxxxxx 中修改 kernel + 内核文件的名字.
  
  这样,一个无盘工作站的系统基本没有问题了,无盘站选择网络启动,

原文转自:http://www.ltesting.net