5.4把client运行所需要的系统文件拷到client将要chroot到的目录/app/root里面:
[root@localhost ~]# rsync -avz --exclude='/proc/*' --exclude='/sys/*' --exclude='/mnt/*' --exclude='/app/*' / /app/root
从上面的命令里可看到client运行所需要的系统文件来自哪里,没错,就是server的系统文件同步过去了(/ /app/root,把当前系统/根目录整个同步到/app/root目录下面去了)。关于client运行所需要的系统文件来源问题可以有这么几个:
(1)把client安装上硬盘,装上无盘运行时需要的系统(如rhel,CentOS,Fedora等),把client装好系统后的那些系统文件同步到server的nfs共享目录里去,然后就可以拆掉client的硬盘了。
(2)直接用server的系统文件,我上面的就是直接用的server的系统文件。
(3)在虚拟机上安装个系统(装的系统当然是client将要运行的系统),然后把系统文件拷贝到server的nfs共享目录里(我们这里当然就是/app/root这个目录了)去。
上面的rsync命令还排除了一些目录和文件,如/proc/*、/sys/*等,这些目录都是本机运行相关的,所以只要目录名,不要里面的文件和子目录。
系统文件复制完后,client的系统配置还要做独立性修改,如:
(1)确保client系统的fstab文件(请注意文件的路径,区别于server的fstab文件)至少有下面这些内容:
none /tmp tmpfs dafault 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
参考样板:
[root@diskless-s rc3.d]# cat /app/fedora/etc/fstab |grep -vE "^#|^$"
192.168.17.8:/app/fedora / nfs defaults 1 1
none /tmp tmpfs defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
nfs性能调整样板:
[root@diskless-s rc3.d]# cat /app/fedora/etc/fstab |grep -vE "^#|^$"
192.168.17.8:/app/fedora / nfs sync,intr,rw,nolock,rsize=8192,wsize=8192 1 1 \\rsize限制读取速度,防止nfs流量过大导致网卡丢包。
none /tmp tmpfs defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
(2)client系统的网卡配置文件因为是从server原样复制过去的,所以直接禁用就行,因为系统引导文件default里已经配置client可以dhcp到ip地址了。
[root@localhost ~]# cat /app/root/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="00:E0:52:9B:30:6B"
NM_CONTROLLED="yes"
ONBOOT="no"
如上设置ONBOOT="no",把它禁掉。
(3)client系统的nfs、dhcpd、xinetd(tftp)也都是复制自server系统的,都要禁掉,到/app/root/etc/rc3.d(还有rc4.d和rc5.d)里面把相应服务名称里的S改为K,也可以在client启动进入系统后再停止和禁用,可以照猫画虎:
service xinetd stop
chkconfig --level 345 xinetd off
五、结束语:
至此就可以启动client了,可以先server和client用网线直连测试下,没意外的话就client能进去系统了(server上的nfs、dhcpd和xinetd服务可以先全部重启下),无盘项目至此完工。一些后续说明:
先前,我本来打算用fedora13的livecd的iso镜像文件做client端的系统,试过多次都没有成功,主要是因为那会儿server的nfsroot支持我还没弄好,也还不知道必须要装dracut-network,甚至不知道linux无盘工作站需要用到dracut,要是谁有兴趣研究,并能做成功的话欢迎交流心得。
以上项目从无知到部署完成耗时近一周(修订1:修改结构--client端改成fedora14查找错误原因又耗时1周),虽然间或做过很多别的工作,但也耗时也不少,查过很多资料,惭愧的是那些资料网页都关掉了,现在再找记录也没心思找了,只这篇回忆录的编写就耗时近1天(修订1:修订又半天),也算我尽了大耐心了。