abstract:一、前言安装过linux的人都知道,在只对一台机器进行linux的安装,很容易,我们只需要把光驱放进去就可以了,一步步的安装就ok!但是当我们在一个机房,多台机器同时安装是就不可能这样做了,那有没有简单的方法呢?我们可以通过PXE实现远程安装二、PXE简介PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Serve
一、前言
安装过linux的人都知道,在只对一台机器进行linux的安装,很容易,我们只需要把光驱放进去就可以了,一步步的安装就ok!但是当我们在一个机房,多台机器同时安装是就不可能这样做了,那有没有简单的方法呢?我们可以通过PXE实现远程安装
二、PXE简介
PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,Server提供镜像,Client通过Server提供的镜像安装Linux系统
三、PXE远程安装Linux
Server端配置:
1. 配置静态IP:vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
IPADDR=192.168.74.128 NETMASK=255.255.255.0
GATEWAY=192.168.74.1
DNS1=192.168.74.1
DNS2=8.8.8.8
2. 修改主机名为PXE:
① 临时修改:hostname PXE ; bash
② 永久修改:编辑/etc/sysconfig/network,修改NETWORKING=yes ; HOSTNAME=PXE
3. 搭建本地yum源
① 挂载光盘:mount /dev/cdrom /media/
② 编辑:vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os //注释该行
baseurl=file:///media //修改光盘挂载点;
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
③ 清除yum缓存:yum -y clean all
4. 重启网络服务:service network restart
5. 安装PXE所需服务:yum -y install dhcp tftp-server xinetd syslinux httpd
说明:
dhcp:给客户端提供IP地址
tftp-server:提供系统安装所需文件,如镜像
xinetd:tftp服务的超级守护进程, 用于唤醒tftp服务;
httpd:基于http服务提供安装源;
syslinux:此文件用于引导系统, 相当于bootloader
6. 配置dhcp服务
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
subnet 192.168.74.0 netmask 255.255.255.0 { #提供dhcp服务的网段;
range 192.168.74.130 192.168.74.140; #地址池;
option domain-name "internal.example.org"; #分配dns域;
option routers 192.168.74.1; #网关;
next-server 192.168.74.1; #tftp服务器地址;
filename "pxelinux.0"; #PXE引导文件;
default-lease-time 600; #默认租约时长;
max-lease-time 7200; #最大租约时长;
option domain-name-servers 192.168.74.1; #分配dns地址;
}
7. 测试dhcp语法是否有误:service dhcpd configtest
8. 启动dhcp服务:service dhcpd start
9. 设置开机启动:chkconfig dhcpd on
10. 配置tftp服务:vim /etc/xinetd.d/tftp 确保disable = no
11. 启动xinetd服务:service xinetd start
12. 设置开机启动:chkconfig tftp on
13. 提供相关文件
① 提供引导内核、镜像等文件:
cp /media/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cd /media/isolinux/
cp boot.msg /var/lib/tftpboot/
cp splash.jpg /var/lib/tftpboot/
cp vesamenu.c32 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
② 提供PXE工作环境:cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
③ 提供安装源:
mkdir /var/www/html/yum
mount --bind /media/ /var/www/html/yum/
service httpd start
chkconfig httpd on
④ 提供kickstart文件:
cp anaconda-ks.cfg /var/www/html/ks.cfg
chmod +r /var/www/html/ks.cfg
vim /var/www/html/ks.cfg
⑤ 添加以下两项, 目标指向安装源:
url --url=http://192.168.74.128/yum
repo --name="Centos" --baseurl=http://192.168.74.128/yum --cost=100
⑥ 修改:vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.74.128/ks.cfg //指定ks文件
14. 关闭iptables、selinux防火墙:
iptables -F
service iptables save
setenforce 0
编辑vim /etc/sysconfig/selinux,修改SELINUX=disabled
Client端配置:
将客户机设置为网卡启动:
2. 开机启动引导:
3. 引导成功开始安装各种包: