无盘工作站的建设
---------------------------------------------------
整理了一点东西,使我实践过后觉得可行的方法,准备和大家共同探讨与学习。
其实无盘的linux并没有十分困难,只是做的人不多而已。
这里我就介绍一下我的实现方法:
实现系统(RedHat 8.0+DHCPD+TFTP)
SYSLINUX =[url]http://freshmeat.net/redir/syslinux/10177/url_tgz/syslinux-2.09.tar.gz[/url]
其实这与系统没有多大关系
安装服务器,这个服务器必须支持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 若找不到
系统会一步一步找0a0a0a -> 0a0a -> 0a -> 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 .