准备至少两台支持网络启动的计算机,然后就可以开始我们的无盘之旅了。
说明:无盘启动在redhat上配置完成。
*************************************************************************************************
客户端
1.安装redhat OS
2.安装busybox
服务器端
1.安装必要软件
#yum install tftp dhcp nfs dns
2.通过xinetd启动tftp服务
# vim /etc/xinetd.d/tftp
disable = no
3.修改dhcp配置文件
# vim /etc/dhcpd.conf
#*************************************************************************************************
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
#(DHCP-DNS互动)
ddns-update-style interim;
#(忽略客户端更新)
ignore client-updates;
#(允许bootp协议启动)
allow booting;
allow bootp;
subnet 172.19.0.0 netmask 255.255.0.0 {
# --- default gateway(默认网关信息,前三个选项依次为路由器IP,子网掩码,DNS)
option routers 172.19.69.1;
option subnet-mask 255.255.0.0;
#option nis-domain "domain.org";
#option domain-name "domain.org";
option domain-name-servers 172.19.1.1;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 172.19.69.1 172.19.69.254;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host redhat {
next-server 172.19.69.20;
#客户端主机MAC地址,为其分配的固定IP地址
hardware ethernet 00:21:9B:27:69:3F;
fixed-address 172.19.69.21;
#启动配置文件的位置(一般不变),NFS根文件系统的路径(根据配置而定)
filename "linux-install/pxelinux.0";
option root-path "/diskless/redhat/";
}
}
#*************************************************************************************************如果想DHCP分配IP,dhcp.conf文件变化如下:
#************************************************************************************************* #host redhat {
# next-server 172.19.69.20;
# #客户端主机MAC地址,为其分配的固定IP地址
# hardware ethernet 00:21:9B:27:69:3F;
# fixed-address 172.19.69.21;
# #启动配置文件的位置(一般不变),NFS根文件系统的路径(根据配置而定)
# filename "linux-install/pxelinux.0";
# option root-path "/diskless/redhat/";
#}
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 172.19.69.20;
filename "linux-install/pxelinux.0";
}
#*************************************************************************************************
其余部分与原配置文件相同。
4.修改 /tftpboot/linux-install/pxelinux.cfg/default文件(注:后面配置完成才有此文件)
以下是该文件内容:
#*************************************************************************************************
default redhat
label redhat
kernel redhat/vmlinuz
append initrd=redhat/initrd.img root=/dev/ram0 init=disklessrc NFSROOT=172.19.69.20:/diskless/redhat ramdisk_size=29639 ETHERNET=eth0
#*************************************************************************************************
5.创建无盘工作目录
# mkdir /diskless/redhat/root -p
# mkdir /diskless/redhat/snapshot
6.拷贝客户端Liunx至服务器
# rsync -auv -e ssh --delete -F --exclude=’/proc/*’ --exclude=’/sys/*’ --exclude=’/tmp/*’ --exclude=’/var/log/*’ CLIENTIP:/ /diskless/redhat/root
7.修改nfs配置
# vim /etc/exports
/diskless/redhat/root/ *(ro,no_root_squash,sync)
/diskless/redhat/snapshot/ *(rw,sync,no_root_squash)
# exportfs -r
8.启动netboot新建无盘启动
# service nfs start
# system-config-netboot
如果是第一次运行会出现首次运行向导,选择无磁盘。如果不是第一次运行,选择配置,无磁盘。
然后,下一步至完成。
新建主机。
9.启动服务
# service dhcpd start
# service nfs restart
# service xinetd start
10.PXE简介
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
PXE协议的成功运行需要解决以下两个问题:
1. 既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;
2. 通过什么协议下载Linux内核和根文件系统
对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。
至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。