原文地址:syslinux_网络远程安装Linux系统作者:冷小星
网络安装对于我们现在的管理来说,能够轻松的在一台没有光驱的裸机上通过网络来安装操作系统,就目前而言,许多公司购买计算机的时候因为成本问题而没有购买光驱,作为管理员,在系统出现故障或者要大规模的更换操作系统的时候,就显得很是疲惫了,有没有一种简单有效率的方法呢?有,在windows下我们有远程安装服务器,在Linux下我们也有,今天我们来看一下在Linux如何实现远程安装。
在Linux下要实现远程安装我们要用到DHCP+TFTP+NFS(或者FTP,HTTP),因为远程主机使用网络必须要有IP地址,DHCP服务器就是用于给远程安装主机分配IP地址的,分配完IP地址之后,必须要引导网络系统的安装程序,这个时候我们就要用到TFTP,TFTP服务主要用于引导远程主机启动,并且要指定安装的系统类型以及内核的位置和名字,在知道了引导位置及内核后,我们就要启动操作系统传输到远程主机了,那么这个服务是由NFS或者FTP,HTTP来完成的,所有要想远程安装Linux,必须要有这三样东西。
另外需要注意的在远程主机必须要支持PXE网卡启动才行,也就是你的网卡芯片要支持PXE,你可以直接进入BIOS,或者开机按F2或F12来选择从网络启动,如果没有表示不支持网络启动了
什么是syslinux ?
syslinux是一种启动引导装载器,类似我们的lilo和Grub,能够引导操作系统,
syslinux有很多变种(都是官方的)适用于各种媒质,如syslinux用于从微软的文件系统fat 16/32引导,isolinux用于从光盘引导,pexlinux用于从网络引导,extlinux用于从ext2/3文件系统引导。
如果您使用过Ubuntu的话,你可以发现这个操心系统有liveCD的功能,Ubuntu的Live CD就是使用isolinux来引导的.
因为我们的网络安装,所有我们是的就是PXElinux了,在这里安装之前我们将DHCP、TFTP、NFS防砸一台服务器上。
1,搭建DHCP服务器
1,配置DHCP,设置DHCP支持PXE,
option space PXE; #从这里开始,我们要设置DHCP对于PXE的应答选项设置
option PXE.mtftp-ip code 1 = ip-address; MTFTP即是多点TFTP协议,
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(引导器)文件名,我们使用pxelinux.0这个文件
next-server 192.168.220.103; #指定TFTP服务器的IP地址,这根据自己的情况修改
}
以上内容你可以只修改蓝色部分即可,其他的可以复制到DHCP中,
下面开始定义DHCP了。
ddns-update-style interim; # 设置DDNS更新方式,
ignore client-updates; #忽略客户端的更新
subnet 192.168.220.0 netmask 255.255.255.0 { #定义子网
# --- default gateway
option routers 192.168.220.1; #定义客户端网关
option subnet-mask 255.255.255.0; #网关掩码
option domain-name-servers 192.168.220.1; #DNS服务器
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 192.168.220.200 192.168.220.254; #分配的IP地址范围
default-lease-time 21600; 这个和下面的设置的是租约
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
红色部分不理解直接复制,这样的话DHCP就做好了,
2,配置TFTP服务
[root@hongtu /]# vi /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 -U指定任何用户可访问,-S指定TFTP的目录
disable = no 将这里的YES改为NO
per_source = 11
cps = 100 2
flags = IPv4
}
~
Service xinetd restart
重启之后会再/下会自己建立tftpboot的文件,没有的话自己手动去建立:
[root@hongtu /]# mkdir tftpboot
3,配置PXE引导文件
配置bootstrap目录
要配置TFTP所要传输的bootstrap,首先要准备好引导文件、内核镜像文件、跟文件系统文件。
一、bootstrap(引导器)文件:pxelinux.0
文件位置在/usr/lib/syslinux目录中。将其拷贝到/tftpboot目录中
#cp /usr/lib/syslinux /pxelinux.0 /tftpboot
二、内核镜像文件:vmlinuz
vmlinuz文件在RHEL5第一张光盘下的/images/pxeboot目录中,将vmlinuz拷贝到/tftpboot目录中(假设光盘加载到/mnt/cdrom)
#cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot
三、根文件系统文件:initrd.img
initrd.img文件在RHEL第一张光盘下的/images/pxeboot目录中,将initrd.img拷贝到/tftpboot目录中[假设光盘加载到/mnt/cdrom]
#cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot
四、创建pxelinux.cfg目录与default文件
pxelinux.cfg为远程安装客户端配置文件所在目录,您可以为不同的计算机制定不同的安装方式或者方法。但是基本上我们都可以用default配置文件来进行为所有的计算机进行配置。
#cd /tftpboot
#mkdir pxelinux.cfg
#touch default
#vi default
default内容如下:
DEFAULT install
PROMPT 1
LABEL install
KERNEL vmlinuz
#指定kernel文件
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384
##启动参数包括启动内核时所需要mount的挂载点和ramdisk大小。配置文档指定了Linux内核连同根文档系统的名称,并给出了内核要传递的一些参数,
其中ramdisk_size参数要很注意,他指定Linux内核启动后建立ramdisk的大小,假如配置太小,Linux的安装过程就可能无法进行。
最后检查一下/tftpboot目录中是否存在如下文件:
1)pxelinux.0 #bootstrap文件
2)vmlinuz #内核镜像文件
3)initrd.img #根文件系统文件
4)pxelinux.cfg #为远程客户端使用的配置文件目录
5) pxelinux.cfg/default #为远程客户端使用的配置文件
4,配置NFS
配置NFS
#Vi /etc/export
/ht *(ro,sync) 指定文件目录,权限为所有用户可以访问并且只读,保持数据同步,然后将安装的ISO文件全部复制到该目录下,(是他FTP和HTTP也是一样的哦)
至此那您的环境都配置好了,现在就找一台支持PXE的客户端来测试一下哟。
因为网络速度原因,下面的图片没有穿上来,下面会出现选择安装方式,
我们选择使用NFS,然后会让你填入NFS服务器地址,以及系统存的目录,这个目录就是我们刚才的NFS各项文件目录,
现在你可以试试了哦,