首页 >
操作系统 >
Linux > 无盘工作站构架的一点小经验
无盘工作站的建设
---------------------------------------------------
整理了一点东西,使我实践过后觉得可行的方法,准备和大家共同探讨与学习。
其实无盘的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 若找不到
系统会一步一步找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 .
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 内核文件的名字.
这样,一个无盘工作站的系统基本没有问题了,无盘站选择网络启动,