配置PXE安装系统

开始前工作:客户机和服务器(我是在虚拟机中建立了这两台计算机)

其中客户机的内存至少要大于镜像,不然到了图形安装界面那里会出现“error setting up base repository”

主机提供的安装文件权限一定要给足,不然会出现不能下载的情况。

 

一、用http服务对客户机提供服务

1.yum install httpd

2.systemctl start httpd

3.mkdir /var/www/html/centos7      #/var/www/html这个目录是在安装并启动了httpd后创建的,并非Linux自带

4.把光盘镜像里的文件全部复制到上面第三步的目录中 #根据我们下面的配置,客户机会从这里下载centos的安装文件

5.在浏览器里用http://IP/centos7/里访问(IP地址是本机IP),如果一切顺利,那么浏览器显示如下:

二、我们打算用TFTP来提供文件传输功能(TFTP就是简单文件传输协议)

1.yum install tftp-server    #安装TFTP

2.yum install xinetd           #启动tftp服务

3.cp /etc/xinetd.d/tftp   /etc/xinetd.d/tftp_backup      #备份一下,以防配错

4.vim /etc/xinetd.d/tftp

在里面编写如下信息:

service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot  #这里是默认的,该路径下用来存放想要传输的文件
        disable                 = no  #是这里做了修改
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
三、DHCP服务

1.yum install dhcp

2.cp /etc/dhcp/dhcpd.conf  /etc/dhcp/dhcpd.conf_backup   (注意,要养成良好的备份习惯)

3.vim /etc/dhcp/dhcpd.conf ,编辑如下:

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
subnet 192.168.71.0 netmask 255.255.255.0{
        range 192.168.71.240 192.168.71.254; #available IP range,注意要与本机IP处于同一网段
        option subnet-mask 255.255.255.0;
        default-lease-time 21600;
        max-lease-time 43200;
        next-server 192.168.71.130;           #指定TFTP-server-IP,这里配的是本机IP,因为我打算让本机作为TFTP服务器
        filename "/pxelinux.0";               #download pxelinux.0 from TFTP path(即/var/lib/tftpboot/)

}

4.启动DHCP

systemctl start dhcpd   #这样客户机就能拿到属于自己的IP了

四 配置PXE引导

syslinux可以用来提供pxe引导文件,即pxelinux.0

1.安装syslinux

yum install syslinux

2.复制pxelinux.0到tftp

cp /usr/share/syslinux/pxelinux.0   /var/lib/tftpboot/    #前面讲了,这里的目的路径是tftp的默认路径

cp /var/www/html/centos7/ioslinux/*   /var/lib/tftpboot/

3.新建pxelinux.cfg目录,目的是为了存放配置文件default

mkdir /var/lib/tftpboot/pxelinux.cfg

cd /var/lib/tftpboot/pxelinux.cfg

cp /var/www/html/centos7/isolinux/isolinux.cfg   ./default     #至此,我们生成了default文件

4.编辑default文件

vim default (路径/var/lib/tftpboot/pxelinux.cfg/default

保持大部分内容不变

开头的defalut 默认跟的vesamenu.c32(这个文件用来显示选择菜单),如果你要做无人值守的安装,那default后面要跟你后面设置的label名字(比如下文的"mypxe" ,就要写成default mypxe,这样就会默认走mypxe的相关配置了

在default文件里新建下面内容

label mypxe

menu label ^install my os

kernel vmlinuz

append initrd=initrd.img  inst.repo=http://192.168.71.130/centos7

5 OK 到此为止,配置完毕,建立客户机,让它从pxe启动。即可看到选单,并且可以手动继续往下安装了。

6.注意:上面配置的并非无人值守的系统,只是简单的实验一下pxe的功能。

7.如果你要配置无人值守的安装,那么需要准备一份kickstart文件

cd /var/www/html/

mkdir ksconfig

cp /root/anaconda-ks.cfg  /var/www/html/ksconfig/ks.cfg  #复制配置文件到该路径并改名

chmod 777 ks.cfg  #我的权限设置的草率了,你们可以根据需要调整

vim ks.cfg

  如下:

#version=DEVEL
# System authorization information
auth --useshadow --enablemd5
# Install OS instead of upgrade
install
url --url="http://192.168.71.130/centos7/" #这里改成这样
# Use CDROM installation media
#cdrom           
# Use graphical install
graphical
# Firewall configuration
firewall --enabled
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=ens33 --activate #这里改成这样
network  --hostname=localhost.localdomain  #这里定义你的客户机名字
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$MHB/AjYK$2B2pDyHP9P/F/XGsmdXCq.
# System services
services --enabled="chronyd"
# System timezone
timezone America/Los_Angeles --isUtc
user --groups=wheel --name=gyf --password=$6$tVoLhfwuPTe0O7MF$vgSvm.KupxRJX3QFfjKPPk6vcCEUtuKtaScwMp2isIGkEHKG.R5Ln1VKgbF4Y.mSfVv5Q9MIcoIKvaXthK6ty. --iscrypted --gecos="gyf"
# X Window System configuration information
xconfig  --startxonboot
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=300
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --size=18131

%post
/usr/sbin/adduser pxe
/usr/sbin/usermod -p '$1$MHB/AjYK$2B2pDyHP9P/F/XGsmdXCq.' pxe
/usr/bin/chfn -f "centOS7_pxeserver" pxe
mv /etc/rc.d/rc.local /etc/rc.d/rc.local.00
echo '#!/bin/bash' > /etc/rc.d/rc.local
ln -s ../rc.local /etc/rc.d/rc5.d/S99rclocal
chmod 755 /etc/rc.d/rc.local
echo 'mkdir -p /var/log/vmware' >> /etc/rc.d/rc.local
echo 'exec 1> /var/log/vmware/rc.local.log' >> /etc/rc.d/rc.local
echo 'exec 2>&1' >> /etc/rc.d/rc.local
echo 'set -x' >> /etc/rc.d/rc.local
echo 'echo Installing Open VM Tools' >> /etc/rc.d/rc.local
echo 'set -x' >> /etc/rc.d/rc.local
echo '/bin/eject sr0 || /bin/true' >> /etc/rc.d/rc.local
echo '/bin/eject sr1 || /bin/true' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' \'guest.upgrader_send_cmd_line_args --default\' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' \'upgrader.setGuestFileRoot /tmp\' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' \'toolinstall.installerActive 1\' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' \'toolinstall.installerActive 100\' >> /etc/rc.d/rc.local
echo 'rm -f /etc/rc.d/rc.local' >> /etc/rc.d/rc.local
echo 'rm -f /etc/rc.d/rc5.d/S99rclocal' >> /etc/rc.d/rc.local
echo 'mv /etc/rc.d/rc.local.00 /etc/rc.d/rc.local' >> /etc/rc.d/rc.local
/bin/echo done
%end

%packages
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@print-client
@x11
binutils
chrony
ftp
gcc
kernel-devel
kexec-tools
make
open-vm-tools
patch
python

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

这里完成了对ks.cfg的配置,但是还需要在default文件中加入ks文件的路径,如下:

label mypxe

menu label ^install my os

kernel vmlinuz

append initrd=initrd.img  inst.repo=http://192.168.71.130/centos7 ks=http://192.168.71.130/ksconfig/ks.cfg

然后重启客户机就可以自动安装了 

 

总结:

本文用到了两种传文件的方式,一种是HTTP,另一种是TFTP

HTTP的工作目录是:/var/www/html/,根据我们的配置,其下有centos7和ksconfig两个目录。分别存储了完整的centos7安装文件和自动应答文件。HTTP在本例中只负责传输这些文件(default文件指明了要从这里下载部分文件)。当客户机进入到图形安装界面后,会从这里下载centos7的安装文件(自动应答文件指明要从这里下载centos7的全部安装文件作为安装源)。

TFTP的工作目录是:/var/lib/tftpboot/,根据我们的配置,该目录主要存放了vmlinuz和initrd.img文件,以及用于pxe引导的pxelinuz.0和pxelinux.cfg/default文件。TFTP在本例中只负责传输这些小文件。

大致路线:客户机开机,从开了DHCP服务的主机那里拿到了属于自己的IP以及default、pxelinuz.0文件。然后读取default,根据default的配置,找到vmlinuz和initrd.img并加载。再根据default配置获得安装文件地址以及ks.cfg,通过HTTP获得安装文件,在ks.cfg的加持下,完成自动化的传统式安装(即传统模式下,安装系统时要我们手动填写的部分)。

文章记录仓促,虽已尽力完善,但可能存在描述不当之处,欢迎指正,谢谢。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PXE(Preboot Execution Environment)是一种网络引导技术,可以通过网络从服务器上安装操作系统PXE安装Windows操作系统的过程如下: 1. 配置PXE服务器:首先需要搭建一个PXE服务器,可以使用软件如TFTP、DHCP等来实现。在服务器上准备好Windows操作系统安装文件。 2. 配置DHCP服务器:在DHCP服务器上配置PXE服务器的IP地址和启动文件名。当客户端启动时,会通过DHCP获取到PXE服务器的IP地址和启动文件名。 3. 准备引导文件:在PXE服务器上准备好引导文件,通常是通过网络引导文件(如pxelinux.0)来启动客户端。 4. 配置引导文件:在引导文件中配置好要安装的Windows操作系统的镜像文件路径和参数。 5. 客户端启动:将需要安装Windows操作系统的客户端设置为通过网络引导,并启动客户端。 6. 客户端连接PXE服务器:客户端启动后会通过DHCP获取到PXE服务器的IP地址和启动文件名,并连接到PXE服务器。 7. 下载引导文件:客户端会下载引导文件(如pxelinux.0)并执行,根据配置的参数找到要安装的Windows操作系统的镜像文件。 8. 下载镜像文件:客户端会下载Windows操作系统的镜像文件,并进行安装过程。 9. 安装操作系统:根据镜像文件进行Windows操作系统安装过程,包括选择安装位置、设置用户信息等。 10. 完成安装安装完成后,客户端会重启并进入已安装的Windows操作系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值