最近在安装操作系统,顺便尝试了几种安装方式把玩一下。一般来说,安装系统的方法不外乎以下几种:光盘安装,U盘安装,iso硬盘安装,网络安装等。这里主要介绍网络安装方式。

有时,在面对要安装几十台甚至上百台服务器时,网络安装是一种方便和有效的安装方法。它的原理是一种C/S的工作模式,server端包括DHCP服务器,文件服务器等来提供系统安装的内容,client端,即要安装系统的机器,首先通过DHCP服务器获得IP地址和网络引导文件(pxelinux.0)存放的位置,然后据此到文件服务器(TFTP服务器)上取得启动文件(pxelinux.0),内核映象文件(vmlinuz,initrd.img),启动配置信息(boot.msg,pxelinux.cfg/default),接着启动加载内核,系统安装文件的传输可以通过TFTP,NFS,HTTP的方式取得。到这一步,接下来基本就和光盘安装一样了。但要做到无人值守安装,就需要进一步将安装过程中的参数进行配置并加到引导配置文件中。在不同的操作系统下有些不同,如在网络安装Debian时可能要用到FAI工具并按照Debian安装的方式编写一个预配置文件,而CentOS可能用到kickstart来配置。

本人在win7虚拟的系统是Debian6,要安装的系统是CentOS6,采用PXE DHCP TFTP NFS的方式,下面介绍下过程。

一.准备工作

要进行网络安装,需要的设备:

1)DHCP服务器;

2)TFTP服务器;

3)一台存放系统安装文件的文件服务器,如TFTP,NFS,HTTP服务器;

4)客户机网卡支持PXE。

当然,以上服务器可以采用一台物理机。

二.安装过程

1.安装配置DHCP服务器

aptitude install dhcp3-server 来安装DHCP服务端。

注:我使用的是Debian系统,不同系统可能不一样。

vim /etc/dhcp/dhcpd.conf 修改DHCP配置文件:

subnet 192.168.164.0 netmask 255.255.255.0 {
range 192.168.164.10 192.168.164.110;   #分配IP范围
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.164.255;
option routers 192.168.164.129;     #网关
option domain-name-servers 192.168.164.129;
option domain-name "localhost";
option host-name "debian6";
allow unknown-clients;
allow booting;
allow bootp;
filename "/pxelinux.0";   #tftp服务器根目录存放
next-server 192.168.164.129;  #pxe服务端IP

重启dhcp服务:dhcpd restart

2.安装配置TFTP服务器

aptitude install tftpd-hpa xinetd

注:不用装tftpd,它不支持bootp协议。

vim /etc/xinetd.d/tftp 添加xinetd管理tftp服务:

service tftp{
socket_type= dgram
protocol= udp
wait= yes
user= root
server= /usr/sbin/in.tftpd
server_args= -u nobody -s /srv/tftp     #tftp 服务器的根目录
disable= no
per_source= 11
cps= 100 2
flags= IPv4
}

重启服务:

service tftp-hpa restart
service xinetd restart

3.安装NFS服务

aptitude install nfs-common nfs-server nfs-kernel-server
mount -o loop, ../centos6.iso /root/mnt  #挂载安装镜像

将共享目录写入到/etc/exports中:

echo "/root/mnt *(ro,sync)" > /etc/exports  #/root/mnt是我安装镜象挂载的位置
echo "/srv/tftp *(ro,sync)" >> /etc/exports #/srv/tftp是tftp服务的根目录
exportfs -a #使配置生效
showmount -e localhost #查看共享的目录,检查是否共享。

4.将启动相关文件放入TFTP文件服务器根目录

安装syslinux,Debian默认是没装的。

aptitude install syslinux  #收集bootloader
cp /usr/lib/syslinux/pxelinux.0 /srv/tftp  #将/usr/lib/syslinux/pxelinux.0拷贝到tftp服务器根目录/srv/tftp
#将光盘中的启动相关文件拷贝到tftp服务器根目录
cp /root/mnt/isolinux/vmlinuz /srv/tftp
cp /root/mnt/isolinux/initrd.img /srv/tftp
cp /root/mnt/isolinux/*.msg /srv/tftp
cp /root/mnt/isolinux/vesamenu.c32 /srv/tftp
mkdir /srv/tftp/pxelinux
cp /root/mnt/isolinux/isolinux.cfg /srv/tftp/pxelinux.cfg/default

到这一步止,客户端只要在开机时按F12进行网络引导就可以进行象光盘安装一样进行安装了,但正如前面所讲的,若要进行无人值守,还需要进行预配置,这部分内容比较烦杂,要根据具体情况来配,这里就不详细说明了,网络上这方面配置有很多。