网络克隆通过PXE、DHCP、TFTP和NFS协同实现批量部署:首先配置DHCP分配IP并指向TFTP服务器,TFTP传输引导文件,客户端由此加载内核并挂载NFS根文件系统完成启动;服务端需安装相应软件包,设置共享镜像目录与导出权限,客户端开启PXE启动后即可获取统一系统镜像;结合Kickstart或Preseed可实现自动化安装,配合HTTP提供应答文件,并通过脚本处理主机名、IP等差异化配置,提升大规模部署效率。

在企业运维或大规模部署场景中,Linux网络克隆是一种高效、快速部署多台服务器或终端系统的方法。它通过PXE(预启动执行环境)、TFTP、DHCP和NFS/Samba等服务实现系统镜像的集中管理和远程安装。下面介绍如何配置并使用Linux网络克隆。
一、网络克隆基本原理
网络克隆的核心是让目标机器通过网络从服务端获取操作系统镜像并完成安装。主要依赖以下组件:
- PXE:允许计算机在无硬盘或操作系统的情况下通过网络启动
- DHCP:为客户端分配IP地址并告知TFTP服务器位置
- TFTP:传输引导文件(如vmlinuz、initrd)
- NFS 或 HTTP/Samba:提供完整的系统镜像供安装使用
二、搭建网络克隆服务器
以CentOS或Ubuntu为例,在服务端配置如下服务:
1. 安装必要软件包
在基于RPM的系统(如CentOS)上执行:
yum install dhcp-server tftp-server syslinux httpd nfs-utils -y
在Debian/Ubuntu系统上:
apt-get install isc-dhcp-server tftpd-hpa syslinux apache2 nfs-kernel-server
2. 配置DHCP服务
编辑 /etc/dhcp/dhcpd.conf(路径可能因发行版而异):
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
next-server 192.168.1.10; # TFTP服务器IP
filename "pxelinux.0"; # 引导文件名
}
确保启动并启用dhcpd服务:systemctl start dhcpd && systemctl enable dhcpd
3. 配置TFTP服务
将引导文件复制到TFTP根目录(通常是 /var/lib/tftpboot):
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ cp vmlinuz initrd.img /var/lib/tftpboot/ # 内核与初始内存盘 mkdir /var/lib/tftpboot/pxelinux.cfg
创建默认引导配置文件:
/var/lib/tftpboot/pxelinux.cfg/default
DEFAULT menu.c32 PROMPT 0 MENU TITLE Linux 网络克隆启动菜单 TIMEOUT 300LABEL clone MENU LABEL 启动网络克隆系统 KERNEL vmlinuz APPEND initrd=initrd.img root=/dev/nfs nfsroot=192.168.1.10:/export/rootfs ip=dhcp rw
4. 提供根文件系统(NFS方式)
假设你已准备好的系统镜像位于 /export/rootfs:
- 将一个已安装好的Linux系统打包后解压至此目录
- 或使用debootstrap/chroot等方式构建最小系统
编辑 /etc/exports 添加共享:
/export/rootfs 192.168.1.0/24(rw,sync,no_root_squash)
启动NFS服务:systemctl start nfs-server && exportfs -a
三、客户端启动与克隆流程
目标机器需支持PXE启动。开机进入BIOS设置网卡为第一启动项,保存重启后:
- 自动获取IP地址
- 下载pxelinux.0并加载引导菜单
- 选择“网络克隆”选项,加载内核与initrd
- 挂载NFS上的根文件系统并启动
此时客户端运行的是服务端提供的统一镜像,可进行个性化配置或用于批量操作。
四、进阶应用:全自动克隆与差异管理
若需实现无人值守部署,可结合Kickstart(Red Hat系)或Preseed(Debian系)实现自动化安装。
- 在引导参数中加入
ks=http://192.168.1.10/ks.cfg - 配置HTTP服务提供应答文件
- 使用工具如Clonezilla、FOG Project简化图形化操作
对于需要保留本地数据的场景,可通过脚本在首次启动时差异化配置主机名、IP、SSH密钥等。
基本上就这些。网络克隆的关键在于服务协同和镜像一致性,一旦搭建完成,能极大提升部署效率。注意防火墙开放对应端口(UDP 67, 69, 2049等),测试阶段建议在隔离网络中进行。不复杂但容易忽略细节,比如TFTP权限、NFS选项、引导文件路径等。










