日期:2014-05-16  浏览次数:20595 次

Linux无盘系统方案

网络拓扑结构图

Linux无盘结构图.jpg

由图可见:

1.无盘服务器主要提供DHCP、TFTP和NFS服务,并且无盘客户端所用的无盘系统都在无盘服务器中。

2.存储阵列服务器主要提供NIS和NFS服务,是用来存储用户的数据,所以用户的管理都集中在这台服务器。

安装无盘系统

通过debootstrap 命令,能安装一个debian系统。

如果没有这个先通过以下命令安装:

apt-get install debootstrap

安装完后,通过以下命令安装系统:

debootstrap --arch=i386 lenny /diskless/nfsroot http://mirrors.sohu.com/debian

以下为各参数的解释:

1.--arch=i386:这个是表示要安装的系统的规格,如果装32位系统就是i386,64位就是amd64,如果不指定这个参数,就会参照你当前系统的规格。

2.lenny:这个代表要安装的debian的版本号,debian5是代号是lenny,debian6的代号是squeeze,想知道debian的其他版本号,请上debian官方网查询。

3./diskless/nfsroot:这个是要安装到的目标目录,可以随意更改为你自己的目录,建议安装到一个独立分区下,以便以后管理。

4.http://mirrors.sohu.com/debian ?:这个是安装镜像的地址,会从这个地址中下载安装包,如果不填会从官方的默认地址下载。

安装完后就可以通过以下命令进入系统:

chroot /diskless/nfsroot

进入系统通过以下命令挂载相关目录和设置相应参数:

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export LC_ALL=C

然后就可以通过apt-get 命令来安装内核:

apt-get install linux-image-2.6.26-2-686

如果域名解释有问题,可以修改/etc/resolv.conf(如果没这个文件可以新建),加上以下内容:

nameserver 192.168.60.129

到此,一个可运行的无盘系统就安装完成了。如果想安装其他应用或图形介面,就跟debian的平常操作一样。

想退出系统,要先解除之前挂载的目录,还要清除垃圾文件:

umount -lf /proc
umount -lf /sys
umount -lf /dev/pts

apt-get autoclean

rm -rf /tmp/*

exit

安装NFS服务

可通过以下命令安装NFS服务:

apt-get install nfs-kernel-server

安装完后修改/etc/export文件,把刚才所建的无盘系统目录共享出去:

/diskless/nfsroot *(rw,async,no_subtree_check,no_root_squash)
[分享的目录]       [可访问的主机名(权限)]

至于主机名的设定主要有几个方式:

1.可以使用完整的IP或者是网域,例如 192.168.1.10 或 192.168.1.0/24 ,或 192.168.1.0/255.255.255.0 都可以接受!

2.也可以使用主机名称,但这個主机名称必须要在 /etc/hosts 內,或可使用 DNS 找到该名称才行!反正重点是可找到 IP 就是了。如果是主机名称的话,那么他可以支援萬用字元,例如 * 或?? 均可接受,当为 * 时,即表示所有主机。

至于权限方面 (就是小括号內的参数),当多于一个时,则以逗号(,)分隔,常见的参数则有:

参数 内容说明

rw

ro

该目录分享的权限是可读写 (read-write) 或只读 (read-only),但最終能不能读写,還是与文件系统的 rwx 及身份有关。

sync

async

sync 代表资料会同步写入到内存与硬盘中,async 則代表资料会先暂存于内存当中,而非直接写入硬盘!

no_root_squash

root_squash

客户端使用 NFS 文件系統的帐号若为 root 時,系系该如何判断这个帐号的身份?預设的情況下,用戶端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份來操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!
all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名使用者,通常也就是 nobody(nfsnobody) !

anonuid

anongid

anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名使用者的 UID 設定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 。

subtree_check

no_subtree_check

subtree_check 指如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认),no_subtree_check 则为不检查父目录权限。

hide

no_hide

hide 指在NFS共享目录中不共享其子目录,no_hide 则为共享NFS目录的子目录。

wdelay

no_wdelay

wdelay 指如果多个用户要写入NFS目录,则归组写入(默认),no_wdelay 则为如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。

secure

insecure

secure 指NFS通过1024以下的安全TCP/IP端口发送,insecure 则为NFS通过1024以上的端口发送。


修改完之后需要重启NFS服务:

/etc/init.d/nfs-kernel-server restart

安装TFTP服务

通过以下命令安装TFTP:

apt-get install tftpd-hpa

安装完后修改配置文件/etc/default/tftpd-hpa,指定你的tftp目录:

TFTP_DIRECTORY="/diskless/tftpboot" #若目录不存在,需要自己新建

修改后需要重启TFTP服务:

/et