配置PXE网络安装服务器实现网络安装CentOS系统
配置PXE网络安装服务器实现网络安装CentOS系统
一、服务器设置
使用的一台CentOS 7虚拟机,网卡选择桥接模式,IP地址是192.168.199.129。
1. 挂载系统镜像
把要安装的CentOS镜像放到VMware的CD驱动器里。如图所示。
在虚拟里创建挂载点,并挂载ISO镜像。
mkdir -p /media/mydvd/
mount /dev/cdrom /media/mydvd
2. 安装服务器软件
sudo yum install -y dhcp tftp-server vsftpd syslinux xinetd
3. 编辑虚拟机网络的配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改以下内容:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.199.129
PREFIX=255.255.255.0
GATEWAY=192.168.199.1
DNS1=192.168.199.1
目的是防止这个作为服务器的机器IP地址发生变化。
4. 配置dhcp服务器
vi /etc/dhcp/dhcpd.conf
,在文件后面增加以下内容:
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.199.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.199.129;
option time-offset -10000;
option netbios-node-type 2;
range dynamic-bootp 192.168.199.1 192.168.199.254;
default-lease-time 21600;
max-lease-time 43200;
filename "pxelinux.0";
next-server 192.168.199.129;
}
重启dhcp服务并加入开机启动。
systemctl restart dhcpd
systemctl enable dhcpd
5. 配置tftp服务
vi /etc/xinetd.d/tftp
,把disable=yes
改为disable=no
。
然后重启服务并加入开机启动。
systemctl restart xinetd
systemctl enable xinetd
6. 设置防火墙开放tftp服务端口
firewall-cmd --permanent --add-port=69/udp
firewall-cmd --reload
7. 设置syslinux
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 ./
cp /media/mydvd/images/pxeboot/{vmlinuz,initrd.img} ./
cp /media/mydvd/isolinux/{vesamenu.c32,boot.msg} ./
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /media/mydvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
编辑配置文件:
vi /var/lib/tftpboot/pxelinux.cfg/default
将第一行的default vesamenu.c32
修改为default vesamenu.c32
将第64行的append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
修改为:
append initrd=initrd.img inst.stage2=ftp://192.168.199.129 ks=ftp://192.168.199.129/pub/ks.cfg quiet
8. 配置vsftpd服务
把挂载的镜像中的文件都复制到vsftpd服务程序的工作目录中
cp -r /media/mydvd/* /var/ftp
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
setsebool -P ftpd_connect_all_unreserved=on
systemctl start vsftpd
systemctl enable vsftpd
9. 配置kickstart
cp /root/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg
vi /var/ftp/pub/ks.cfg
,把第5行的cdrom
修改为
url --url=ftp://192.168.199.129
第25行显示的是时区,我的这里是
timezone Asia/Shanghai --isUtc
我把它改成了
timezone Asia/Shanghai --isUtc --nontp
也就是不使用ntp服务。如果这里的时区不是上海,应修改成上海。
第32行左右,清除分区的方式,我这里是
clearpart --none --initlabel
应该是不清除的意思,修改成了
clearpart --all --initlabel
应该是清除所有分区的意思。这里要再做做实验,观察一下。
通过在system-config-kickstart图形工具中测试不同的选项,发现它的意思是是否清除现有的分区,--all
是清除所有分区,--linux
是清除所有已有的linux分区,--none
是不清除分区,也就保留已有的分区。这个参数和安装系统时新建分区操作没有关系。
然后重启这个虚拟机。
二、通过网络安装系统
在VMware中新建一个虚拟机,要注意两点:
- 网卡的模式要选对,使新的虚拟机在启动时能够和服务器虚拟机通信,我两个虚拟机都是桥接模式。
- 新的虚拟机内存要大一点。我一开始使用的是1G,结果报错(后面有截图)。我后来改成了10G,可以正常安装。
安装的时候显示已经选择了gnome桌面,并且已经设置了root密码,并且要创建用户wd
,这个用户是我作为服务器的那个虚拟机里的用户。所以我猜想,root用户的密码以及wd
用户的密码应该和我服务器的一样。
1. 遇到的问题
1-1. dhcp.conf配置错误
出现的问题是:
因为我在/etc/dhcp/dhcpd.conf
中把filename
配成了pexlinux.0
,名字写错了,改成pxelinux.0
,然后重启dhcpd
服务就可以了。
1-2. 内存太小
因为我在/var/lib/tftpboot/pxelinux.cfg/default
中的第64行忘了按照上面说的进行修改了。重新按照上面说的进行修改。然后重启这个新的虚拟机,重启安装就可以了。
网上说内存没给够,修改一下内存,给它10G,重启安装。就可以了。