1
Linux网络安装工作原理
远程网络安装需要我们的安装程序能够远程地通过网络传送给客户端。准备建立远程安装服务器至少需要三个服务:DHCP、TFTP、FTP,三个服务可以再三台不同的计算机上,也可以在同一台计算机上进行实现。
2 Linux安装实现步骤
这里实现中所使用的平台为RHEL,您可以在FC系列、RH9、CenOS中都可以实现。
2.1 配置DHCP服务器
配置DHCP服务器主要用途是为了能够给客户端分配IP地址,从而让客户端与TFTP及FTP进行联系
2.1.1 DHCP的配置文件
DHCP的配置文件的位置在/etc目录下配置文件的名称为dhcpd.conf。如果您的系统中不存在dhcpd.conf同时您又确认您确实安装了DHCP程序,那么您可以手动建立dhcpd.conf文件。
2.1.2 配置文件的内容:
option space PXE; #DHCP对PXE的TFTP(琐碎文件传输协议)应答选项
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
filename "pxelinux.0"; #指定客户端所需要的的bootstrap(引导器)文件名
next-server 172.16.168.2; #指定TFTP服务器的IP地址
}
ddns-update-style interim;
ignore client-updates;
default-lease-time 1200;
max-lease-time 9200;
option subnet-mask 255.255.255.0;
option broadcast-address 172.16.1680.255;
option routers 172.16.168.254;
option domain-name-servers 172.16.168.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 172.16.168.100 172.16.168.150;
}
上述所指明的pxelinux.0为网络远程安装引导程序bootstrap.其位置在/usr/lib/syslinux目录中。
2.1.3 启动DHCP服务
#service dhcpd restart
2.2 配置TFTP服务器
配置TFTP服务器主要用途是为了能够给客户端传送bootstrap程序[即pxelinux.0],这样才能够让客户端进行引导加载内核映象文件(vmlinuz)和根文件系统文件(initrd.img)以及启动内核(Kernel)
2.2.1 TFTP的配置文件
TFTP的配置文件的位置在/etc/xinetd.d目录下配置文件的名称为tftp。
配置内容如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -u nobody -s /tftpboot #指定TFTP的根目录所在位置,允许任何用户可以进行访问
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
在这里主要修改的字段是 disable ,将yes改为no。以打开TFTP服务
2.2.2 启动TFTP服务
#service xinetd restart
2.3 配置FTP服务器
配置FTP服务器主要用途是为了能够给客户端传送Linux的配置环境与安装程序。在RHEL4中笔者采用的是VSFTP,为了简单些、更简单些,笔者并没有对vsftp进行任何配置只是启动了vsftp的守护进程#service vsftpd restart
启动后利用匿名账户进行测试,如果测试成功您就可以将RHEL4的5张光盘中的所有安装文件全部拷贝到匿名用户的文件夹/var/ftp/目录下
2.4 配置bootstrap目录
要配置TFTP所要传输的bootstrap,首先要准备好引导文件、内核镜像文件、跟文件系统文件。
2.4.1 bootstrap文件:pxelinux.0
文件位置在/usr/lib/syslinux目录中。将其拷贝到/tftpboot目录中
#cp /usr/lib/syslinux /pxelinux.0 /tftpboot
2.4.2 内核镜像文件:vmlinuz
vmlinuz文件在RHEL4第一张光盘下的/images/pxeboot目录中,将vmlinuz拷贝到/tftpboot目录中[假定光盘加载到/mnt/cdrom]
#cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot
2.4.3 根文件系统文件:initrd.img
initrd.img文件在RHEL4第一张光盘下的/images/pxeboot目录中,将initrd.img拷贝到/tftpboot目录中[假定光盘加载到/mnt/cdrom]
#cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot
2.5 创建pxelinux.cfg目录与default文件
pxelinux.cfg为远程安装客户端配置文件所在目录,您可以为不同的计算机制定不同的安装方式或者方法。但是基本上我们都可以用default配置文件来进行为所有的计算机进行配置。
#cd /tftpboot
#mkdir pxelinux.0
#vi default
default内容如下:
DEFAULT install
PROMPT 1
LABEL install
KERNEL vmlinuz
#指定kernel文件
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384
##启动参数包括启动内核时所需要mount的挂载点和ramdisk大小。一般16384都可以满足了。
2.6 最后检查一下/tftpboot目录中是否存在如下文件:
1)pxelinux.0 #bootstrap文件
2)vmlinuz #内核镜像文件
3)initrd.img #根文件系统文件
4)pxelinux.cfg #为远程客户端使用的配置文件目录
5)default #为远程客户端使用的配置文件
远程网络安装需要我们的安装程序能够远程地通过网络传送给客户端。准备建立远程安装服务器至少需要三个服务:DHCP、TFTP、FTP,三个服务可以再三台不同的计算机上,也可以在同一台计算机上进行实现。
2 Linux安装实现步骤
这里实现中所使用的平台为RHEL,您可以在FC系列、RH9、CenOS中都可以实现。
2.1 配置DHCP服务器
配置DHCP服务器主要用途是为了能够给客户端分配IP地址,从而让客户端与TFTP及FTP进行联系
2.1.1 DHCP的配置文件
DHCP的配置文件的位置在/etc目录下配置文件的名称为dhcpd.conf。如果您的系统中不存在dhcpd.conf同时您又确认您确实安装了DHCP程序,那么您可以手动建立dhcpd.conf文件。
2.1.2 配置文件的内容:
option space PXE; #DHCP对PXE的TFTP(琐碎文件传输协议)应答选项
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
filename "pxelinux.0"; #指定客户端所需要的的bootstrap(引导器)文件名
next-server 172.16.168.2; #指定TFTP服务器的IP地址
}
ddns-update-style interim;
ignore client-updates;
default-lease-time 1200;
max-lease-time 9200;
option subnet-mask 255.255.255.0;
option broadcast-address 172.16.1680.255;
option routers 172.16.168.254;
option domain-name-servers 172.16.168.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 172.16.168.100 172.16.168.150;
}
上述所指明的pxelinux.0为网络远程安装引导程序bootstrap.其位置在/usr/lib/syslinux目录中。
2.1.3 启动DHCP服务
#service dhcpd restart
2.2 配置TFTP服务器
配置TFTP服务器主要用途是为了能够给客户端传送bootstrap程序[即pxelinux.0],这样才能够让客户端进行引导加载内核映象文件(vmlinuz)和根文件系统文件(initrd.img)以及启动内核(Kernel)
2.2.1 TFTP的配置文件
TFTP的配置文件的位置在/etc/xinetd.d目录下配置文件的名称为tftp。
配置内容如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -u nobody -s /tftpboot #指定TFTP的根目录所在位置,允许任何用户可以进行访问
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
在这里主要修改的字段是 disable ,将yes改为no。以打开TFTP服务
2.2.2 启动TFTP服务
#service xinetd restart
2.3 配置FTP服务器
配置FTP服务器主要用途是为了能够给客户端传送Linux的配置环境与安装程序。在RHEL4中笔者采用的是VSFTP,为了简单些、更简单些,笔者并没有对vsftp进行任何配置只是启动了vsftp的守护进程#service vsftpd restart
启动后利用匿名账户进行测试,如果测试成功您就可以将RHEL4的5张光盘中的所有安装文件全部拷贝到匿名用户的文件夹/var/ftp/目录下
2.4 配置bootstrap目录
要配置TFTP所要传输的bootstrap,首先要准备好引导文件、内核镜像文件、跟文件系统文件。
2.4.1 bootstrap文件:pxelinux.0
文件位置在/usr/lib/syslinux目录中。将其拷贝到/tftpboot目录中
#cp /usr/lib/syslinux /pxelinux.0 /tftpboot
2.4.2 内核镜像文件:vmlinuz
vmlinuz文件在RHEL4第一张光盘下的/images/pxeboot目录中,将vmlinuz拷贝到/tftpboot目录中[假定光盘加载到/mnt/cdrom]
#cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot
2.4.3 根文件系统文件:initrd.img
initrd.img文件在RHEL4第一张光盘下的/images/pxeboot目录中,将initrd.img拷贝到/tftpboot目录中[假定光盘加载到/mnt/cdrom]
#cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot
2.5 创建pxelinux.cfg目录与default文件
pxelinux.cfg为远程安装客户端配置文件所在目录,您可以为不同的计算机制定不同的安装方式或者方法。但是基本上我们都可以用default配置文件来进行为所有的计算机进行配置。
#cd /tftpboot
#mkdir pxelinux.0
#vi default
default内容如下:
DEFAULT install
PROMPT 1
LABEL install
KERNEL vmlinuz
#指定kernel文件
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384
##启动参数包括启动内核时所需要mount的挂载点和ramdisk大小。一般16384都可以满足了。
2.6 最后检查一下/tftpboot目录中是否存在如下文件:
1)pxelinux.0 #bootstrap文件
2)vmlinuz #内核镜像文件
3)initrd.img #根文件系统文件
4)pxelinux.cfg #为远程客户端使用的配置文件目录
5)default #为远程客户端使用的配置文件