配置kickstart服务器| PXE引导服务器| RHEL/CentOS 8
在本文中,我们将使用RHEL/CentOS 8 ISO镜像设置PXE引导服务器。
为了执行基于网络的安装,我们还将配置kickstart服务器。
以下是设置PXE引导服务器所涉及的步骤的简要列表
使用Red Hat 8.1 ISO设置安装存储库
设置PXE引导服务器环境
配置kickstart服务器以自动执行安装
配置DHCP服务器分配IP地址
配置TFTP服务器以传输PXE文件
配置NFS服务器以共享安装库和kickstart文件
步骤1:安装程序安装库
我们将设置PXE引导服务器以使用基于网络的安装来安装RHEL 8. 创建一个新目录,我们将其中放置所有RHEL图像文件
[root@centos-8 pxelinux]# mkdir /images
我已经在虚拟机上虚拟安装了RHEL 8 ISO,要访问该ISO,我会将镜像安装到/mnt
。
提示:
RHEL和CentOS 8具有相同的目录结构和配置kickstart服务器的要求,因此我们可以使用其中任何一个。
我们知道如何识别和访问U盘,连接到Linux服务器的ISO镜像吗?
[root@centos-8 ~]# mount /dev/sr0 /mnt mount: /mnt: WARNING: device write-protected, mounted read-only.
将所有文件从RHEL 8 ISO镜像复制到/images
目录
[root@centos-8 ~]# cp -apr /mnt/* /images/
请注意,这里将忽略隐藏文件的复制,而有效安装源必需的.treeinfo
文件将被忽略,因此请手动复制这些隐藏文件。
提示:
我们将需要~8GB的可用空间来复制完整的RHEL 8 ISO镜像
[root@centos-8 ~]# cp -apr /mnt/.discinfo /mnt/.treeinfo /images/
验证存储库内容
[root@centos-8 ~]# ls -al /images/ total 92 drwxr-xr-x 7 root root 4096 Apr 19 20:33 . dr-xr-xr-x. 33 root root 4096 Apr 19 19:57 .. dr-xr-xr-x 4 root root 4096 Oct 15 2019 AppStream dr-xr-xr-x 4 root root 4096 Oct 15 2019 BaseOS -r--r--r-- 1 root root 60 Apr 19 20:33 .discinfo dr-xr-xr-x 3 root root 4096 Oct 15 2019 EFI -r--r--r-- 1 root root 8266 Oct 15 2019 EULA -r--r--r-- 1 root root 1455 Oct 15 2019 extra_files.json -r--r--r-- 1 root root 18092 Oct 15 2019 GPL dr-xr-xr-x 3 root root 4096 Oct 15 2019 images dr-xr-xr-x 2 root root 4096 Oct 15 2019 isolinux -r--r--r-- 1 root root 103 Oct 15 2019 media.repo -r--r--r-- 1 root root 1669 Oct 15 2019 RPM-GPG-KEY-redhat-beta -r--r--r-- 1 root root 5134 Oct 15 2019 RPM-GPG-KEY-redhat-release -r--r--r-- 1 root root 1796 Oct 15 2019 TRANS.TBL -r--r--r-- 1 root root 1566 Apr 19 20:33 .treeinfo
步骤2:安装和配置TFTP服务器
接下来,我们将配置TFTP服务器将PXE镜像文件传输到客户端,以进行基于网络的安装。
使用dnf
安装tftp-server
和xinetd
说明:
在RHEL系统上,我们必须具有RHN的有效订阅,或者我们可以配置本地脱机存储库,通过该本地脱机存储库,yum
软件包管理器可以安装提供的rpm及其依赖项。
[root@centos-8 ~]# dnf install tftp-server xinetd -y
在早期的RHEL/CentOS 7中,tftp
服务由xinetd
管理。
尽管即使使用RHEL/CentOS 7,我们也可以选择禁用xinetd
并使用systemd
分叉TFTP进程。
说明:
我们可以通过" xinetd"或者" systemd"来分叉TFTP进程,但不能同时使用两者。
有关更多详细信息,请检查:TFTP服务在RHEL7中自动变为非活动状态
在这个例子中,我们将使用systemd
来分叉TFTP进程。
tftp-serverrpm安装将创建
/usr/lib/systemd/system/tftp.service`单位文件
以下是此服务单元文件的内容
[root@centos-8 pxelinux.cfg]# cat /usr/lib/systemd/system/tftp.service [Unit] Description=Tftp Server Requires=tftp.socket Documentation=man:in.tftpd [Service] ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot StandardInput=socket [Install] Also=tftp.socket
从
ExecStart
我们可以看到TFTP服务器的默认位置是/var/lib/tftpboot
。因此,我们必须将所有PXE引导服务器文件放在此位置下
我们也可以使用任何其他目录,但是随后我们将不得不修改此服务单元文件以使用tftp服务的自定义路径
接下来启动tftp
服务,并使其在重启后自动启动
[root@centos-8 pxelinux.cfg]# systemctl enable tftp.service --now Created symlink /etc/systemd/system/sockets.target.wants/tftp.socket → /usr/lib/systemd/system/tftp.socket.
TFTP服务用于
tftp.socket
服务TFTP请求因此,如果没有传入的TFTP请求,则
tftp
服务本身将变为不活动状态但是,一旦TFTP请求发送到
tftp.socket
,套接字将启动tftp.service
并处理该请求
检查tftp.socket
的状态
[root@centos-8 ~]# systemctl status tftp.socket ● tftp.socket - Tftp Server Activation Socket Loaded: loaded (/usr/lib/systemd/system/tftp.socket; enabled; vendor preset: disabled) Active: active (listening) since Sun 2017-04-19 19:32:40 IST; 7h ago Listen: [::]:69 (Datagram) CGroup: /system.slice/tftp.socket Apr 19 19:32:40 centos-8.example.com systemd[1]: Listening on Tftp Server Activation Socket.
步骤3:设置PXE引导服务器
接下来要执行基于PXE网络的安装,我们必须配置PXE引导服务器。
我们将需要Linux引导镜像以最少的配置引导RHEL 8 OS
这是通过
initrd
和vmlinuz
执行的。
我希望我们熟悉涵盖这部分的Linux引导过程。在实际内核加载之前,
initrd
和vmlinuz
将从内存中加载必要的驱动程序以启动服务器。
我们将在/var/lib/tftpboot下创建另一个目录pxelinux来存储PXE镜像
[root@centos-8 ~]# mkdir -p /var/lib/tftpboot/pxelinux
步骤3.1:解压syslinux-tftpboot
对于RHEL/CentOS 8,pxelinux
文件是syslinux-tftpboot` rpm的一部分,因此我们将从RHEL 8 ISO复制该文件到一个临时位置。
[root@centos-8 ~]# cp /mnt/BaseOS/Packages/syslinux-tftpboot-6.04-4.el8.noarch.rpm /tmp/
接下来解压缩syslinux-tftpboot rpm。
我们不会使用此rpm的所有内容,而只会使用必需的文件
[root@centos-8 ~]# cd /tmp/ [root@centos-8 tmp]# rpm2cpio syslinux-tftpboot-6.04-4.el8.noarch.rpm | cpio -idm
上面的命令将在/tmp
下提取syslinux-tftpboot
。
接下来,我们将pxelinux.0和ldlinux.c32复制到设置PXE引导服务器所需的/var/lib/tftpboot/pxelinux /中。
提示:
如果我们希望在引导菜单中使用图形用户界面,那么我建议我们将此rpm的所有内容复制到/var/lib/tftpboot/pxelinux /
中。
[root@centos-8 tmp]# cp /tmp/tftpboot/ldlinux.c32 /var/lib/tftpboot/pxelinux/ [root@centos-8 tmp]# cp /tmp/tftpboot/pxelinux.0 /var/lib/tftpboot/pxelinux/
步骤3.2:复制initrd和vmlinuz
我们还需要其他PXE引导镜像,这些镜像将位于RHEL/CentOS 8镜像的" isolinux"文件夹下。
由于我们已将ISO内容复制到/images
中,因此我们会将所需的PXE引导镜像从/images/isolinux复制到/var/lib/tftpboot/pxelinux /
中。
[root@centos-8 tmp]# cp /images/isolinux/initrd.img /var/lib/tftpboot/pxelinux/ [root@centos-8 tmp]# cp /images/isolinux/vmlinuz /var/lib/tftpboot/pxelinux/
列出所有PXE引导镜像文件:
[root@centos-8 tmp]# ls -l /var/lib/tftpboot/pxelinux/ total 58880 -r--r--r-- 1 root root 62248424 Apr 19 19:14 initrd.img -rw-r--r-- 1 root root 116096 Apr 19 19:47 ldlinux.c32 -rw-r--r-- 1 root root 42821 Apr 19 19:01 pxelinux.0 -r-xr-xr-x 1 root root 8106848 Apr 19 19:14 vmlinuz
接下来导航到" pxelinux"文件夹
[root@centos-8 tmp]# cd /var/lib/tftpboot/pxelinux
步骤3.3:创建启动菜单
我们将创建可用于安装多个镜像的PXE启动服务器,因此我们将创建启动菜单。
将显示此引导菜单,以启动安装以供用户输入。
在
/var/lib/tftpboot/pxelinux
下创建一个新文件boot.msg
。我们可以根据需要为此文件使用任何名称。
由于我仅打算为单个镜像配置Kickstart服务器,因此我仅创建了两个菜单项。
[root@centos-8 pxelinux]# cat boot.msg Welcome to the installation of "My Linux Server" ! Red Hat Enterprise linux 8.1 (x86_64) Version: 1.0 Architecture: x86_64 To start the installation enter : '1', '2' and press . Available boot options: 1 - Install Red Hat Enterprise Linux 8.1 2 - Boot from Harddisk (this is default) Have a lot of fun...
步骤3.4:创建PXE配置文件
客户端检索并执行" pxelinux.0"后,将对其进行硬编码以从" pxelinux.cfg /"子目录中查找与找到" pxelinux.0"相对的文件。
在大型部署中,我们为每个节点创建单独的PXE配置文件。
这些PXE配置文件的命名语法非常重要。
首先,它将查找以" MAC地址"命名的文件,格式为" 01-xx-xx-xx-xx-xx-xx"。
例如,在此示例中,我的客户端的NIC MAC地址为" 08:00:27:83:1e:2a",因此我的PXE配置文件将为" 01-08-00-27-83-1e-2a"
接下来,它将查找由DHCP服务器提供的名为" IP地址"的文件。
IP地址以十六进制格式查找。
我们可以使用
printf
获取IP地址的十六进制格式,例如,获取10.10.10.12
的十六进制值。
# printf "%02x%02x%02x%02xn" 10 10 10 12 0a0a0a0cn
由于我没有分配任何静态IP地址,因此无法使用十六进制格式的文件。
虽然我可以使用基于MAC地址的文件。如果在" pxelinux.cfg"下未找到MAC地址和十六进制格式的文件,则"安装程序将查找默认文件"。
在此示例中,我将使用"默认"文件,但也已使用基于MAC的文件" 01-08-00-27-83-1e-2a"验证了PXE网络安装。
我们将创建一个新目录" pxelinux.cfg"
[root@centos-8 ~]# mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
创建PXE配置文件/var/lib/tftpboot/pxelinux/pxelinux.cfg/default
[root@centos-8 ~]# cat /var/lib/tftpboot/pxelinux/pxelinux.cfg/default timeout 600 display boot.msg default 1 prompt 1 label 1 menu label ^Install Red Hat Enterprise Linux 8 kernel vmlinuz append initrd=initrd.img showopts ks=nfs:10.10.10.12://ks/kickstart.conf ip=dhcp net.ifnames=0 biosdevname=0 label 2 menu label Boot from ^local drive localboot 0x80 menu end
我已经根据我们的"启动菜单"创建了两个标签
标签1:将用于安装Red Hat Linux 8
标签2:继续从硬盘启动
我提供了标签2作为"默认"选项。
因此,如果直到"超时"值即600才提供用户输入,安装程序将选择标签2并继续从硬盘引导
我将使用NFS服务器配置kickstart服务器以执行基于网络的安装。
我的kickstart文件将在
/ks
目录下提供,我们将在后续步骤中创建ip = dhcp是可选的,因为客户端无论如何都会从DHCP服务器获取IP地址。
net.ifnames和biosdevname也是可选的,因为我不希望对客户端节点使用一致的网络设备命名方案。
确保PXE配置文件对其他用户具有读取权限
[root@centos-8 ~]# ls -l /var/lib/tftpboot/pxelinux/ total 68880 -rw-r--r-- 1 root root 325 Apr 19 19:10 boot.msg -r--r--r-- 1 root root 62248424 Apr 19 19:14 initrd.img -rw-r--r-- 1 root root 116096 Apr 19 19:47 ldlinux.c32 -rw-r--r-- 1 root root 42821 Apr 19 19:01 pxelinux.0 drwxr-xr-x 2 root root 4096 Apr 20 01:47 pxelinux.cfg -r-xr-xr-x 1 root root 8106848 Apr 19 19:14 vmlinuz [root@centos-8 ~]# ls -l /var/lib/tftpboot/pxelinux/pxelinux.cfg/default -rw-r--r-- 1 root root 307 Apr 20 01:47 /var/lib/tftpboot/pxelinux/pxelinux.cfg/default
步骤4:安装和配置DHCP服务器
我们也可以使用DNSMASQ服务器分配IP地址,但是在此示例中,我们将使用DHCP服务器在Linux中执行基于网络的安装。
[root@centos-8 pxelinux.cfg]# dnf install dhcp-server -y
以下是DHCP服务器配置的非常基本的示例
PXE文件名由
filename
定义。
由于将" tftp"配置为使用"/var/lib/tftp"作为默认位置,我们提供了" pxelinux/pxelinux.0"。"下一个服务器"定义TFTP服务器的IP地址
range用于为DHCP请求分配IP地址
提示:
我们也可以在dhcpd.conf中将MAC地址映射到静态IP地址。
[root@centos-8 pxelinux.cfg]# cat /etc/dhcp/dhcpd.conf allow bootp; allow booting; max-lease-time 1200; default-lease-time 900; log-facility local7; option ip-forwarding false; option mask-supplier false; subnet 10.10.10.0 netmask 255.255.255.0 { option routers 10.10.10.1; option domain-name-servers 127.0.0.1; range 10.10.10.100 10.10.10.140; next-server 10.10.10.12; filename "pxelinux/pxelinux.0"; }
启用并启动dhcpd
服务
[root@centos-8 pxelinux.cfg]# systemctl enable dhcpd --now Created symlink /etc/systemd/system/multi-user.target.wants/dhcpd.service → /usr/lib/systemd/system/dhcpd.service.
确保dhcpd服务状态为活动且正在运行
[root@centos-8 ~]# systemctl status dhcpd ● dhcpd.service - DHCPv4 Server Daemon Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2017-04-19 19:45:45 IST; 6h ago Docs: man:dhcpd(8) man:dhcpd.conf(5) Main PID: 30897 (dhcpd) Status: "Dispatching packets..." Tasks: 1 (limit: 26213) Memory: 5.1M CGroup: /system.slice/dhcpd.service └─30897 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
步骤5:配置kickstart服务器
要配置kickstart服务器,我们需要一个kickstart文件来自动化安装。
在每次安装Red Hat和CentOS时,都会在root用户的主文件夹下创建一个默认的kickstart文件,即/root/anaconda-ks.cfg。
此anaconda kickstart文件包含用于安装服务器的值
我们可以使用此anaconda文件来创建我们的kickstart配置文件并配置kickstart服务器
我们还可以使用Red Hat提供的在线kickstart生成器工具。
尽管我不太喜欢这个工具的选项非常有限,但kickstart支持更多功能
- 在此示例中,我将使用默认的
anaconda.cfg
模板来配置kickstart服务器
创建/ks
目录,我们将其中存储我们的kickstart文件
[root@centos-8 pxelinux.cfg]# mkdir /ks
复制" anaconda-ks.cfg"的内容,然后重命名为" /ks/kickstart.conf"
[root@centos-8 pxelinux.cfg]# cp /root/anaconda-ks.cfg /ks/kickstart.conf
确保ks目录已经读取并执行了others的许可,而其他用户可以读取kickstart文件。
[root@centos-8 ~]# ls -l /ks/kickstart.conf -rw-r--r-- 1 root root 1688 Apr 19 20:55 /ks/kickstart.conf
步骤5.1:示例kickstart配置文件
以下是我的kickstart配置文件示例。
我更喜欢执行"基于文本的网络安装"(自从我开始使用Linux的那天起,我有点沉迷于CLI而不是图形)
由于篇幅太长,我将无法在本文中解释kickstart文件的全部内容,我计划写另一篇文章,详细介绍kickstart文件中的所有值。
[root@centos-8 pxelinux]# cat /ks/kickstart.conf #version=RHEL8 ignoredisk --only-use=sda # Partition clearing information clearpart --all # Use text install text # Create APPStream Repo repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream # Use NFS Repo nfs --server=10.10.10.12 --dir=/images/ # Keyboard layouts keyboard --vckeymap=us --xlayouts='us' # System language lang en_US.UTF-8 # Network information network --bootproto=dhcp --device=eth0 --ipv6=ignore --activate network --bootproto=dhcp --device=eth1 --onboot=off --ipv6=ignore --activate network --hostname=centos8-4.example.com # Root password rootpw --iscrypted $w7El/FYx9mbTG6x9$Te.Yg6dq0TsQwGpdSjeDGSw4J9ZBAkLXzT9ODMV7I7lHvX3n5.9PCS4jIkS2GbVLZOpVRLvrua3wwbwA.cfWX. # Run the Setup Agent on first boot firstboot --enable # Do not configure the X Window System skipx # System services services --enabled="chronyd" # System timezone timezone Asia/Kolkata --isUtc # Reboot after installation completes reboot # Disk partitioning information autopart --type=plain --fstype=ext4 # Packages to be installed %packages @^virtualization-host-environment kexec-tools %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end %anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end
步骤6:安装和配置NFS
提示:
我们还可以使用其他服务(例如HTTPS,FTP等)共享kickstart和Repo内容,以执行基于网络的安装。
在上一篇文章中,我在RHEL/CentOS 7中使用了HTTP tp设置PXE启动服务器,因此其中我决定使用NFS。
我已经写了另一篇文章,其中包含详细的说明以及安装和配置NFSv4和NFSv3服务器的步骤。
因此,我其中将非常简短:
安装配置NFS所需的nfs-utils
rpm
[root@centos-8 ~]# dnf -y install nfs-utils
以下是我计划为Linux kickstart服务器共享的目录。
这里的/ks包含kickstart配置文件,而/images包含用于安装的RHEL 8 ISO内容
[root@centos-8 ~]# cat /etc/exports /ks *(ro,sync,no_root_squash) /images *(ro,sync,no_root_squash)
再出口股票
[root@centos-8 ~]# exportfs -r
打印可用的共享
[root@centos-8 ~]# exportfs -v /ks (sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,no_root_squash,no_all_squash) /images (sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,no_root_squash,no_all_squash)
启用并启动nfs-server.service
。
其中因为我们正在使用NFSV4,所以我们尚未启动或者安装rpcbind。
我们可以在以下位置阅读更多信息:在RHEL/CentOS 7/8中安装和配置NFSv4和NFSv3服务器和客户端的循序渐进指南
[root@centos-8 ~]# systemctl enable nfs-server --now
确保nfs-server
服务已启动并正在运行
[root@centos-8 ~]# systemctl status nfs-server ● nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled) Drop-In: /run/systemd/generator/nfs-server.service.d └─order-with-mounts.conf Active: active (exited) since Sun 2017-04-19 19:49:17 IST; 6h ago Process: 31119 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS) Process: 31117 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS) Process: 31116 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS) Process: 31144 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS) Process: 31132 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS) Process: 31131 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS) Main PID: 31144 (code=exited, status=0/SUCCESS) Apr 19 19:49:17 centos-8.example.com systemd[1]: Starting NFS server and services... Apr 19 19:49:17 centos-8.example.com systemd[1]: Started NFS server and services.
我们已经完成了设置PXE引导服务器以在Linux中执行基于网络的安装的步骤。
使用kickstart作为安装方式,我们还在同一节点上配置了kickstart服务器。
接下来,我们将在客户端虚拟机上执行VirtualBox PXE引导安装
步骤7:执行VirtualBox PXE引导安装
我将分享执行VirtualBox PXE引导安装的步骤,因为这里我没有使用物理硬件。
打开客户端虚拟机电源,然后按" F12"选择启动设备
提示:
根据硬件类型,执行基于网络的安装的组合键会有所不同。
在大多数情况下,F12用于PXE引导安装,但是如果此键不起作用,请查阅硬件指南以获取更多信息。
我们将获得要从中启动的启动设备选项列表,我将按" l"键从局域网启动
在下一个屏幕中,使用第一个NIC卡发送DHCP请求。
客户端将向网络中的所有服务器发送广播请求,以查找IP地址。
一旦广播请求到达我们的PXE引导服务器(也配置为DHCP服务器),它将释放IP地址。
我们可以在PXE引导服务器上看到以下消息集。
我正在使用journalctl查看系统消息
Apr 20 01:49:14 centos-8.example.com dhcpd[30897]: DHCPOFFER on 10.10.10.100 to 08:00:27:83:1e:2a via eth1 Apr 20 01:49:15 centos-8.example.com dhcpd[30897]: DHCPDISCOVER from 08:00:27:83:1e:2a via eth1 Apr 20 01:49:15 centos-8.example.com dhcpd[30897]: DHCPOFFER on 10.10.10.100 to 08:00:27:83:1e:2a via eth1 Apr 20 01:49:17 centos-8.example.com dhcpd[30897]: Wrote 2 leases to leases file. Apr 20 01:49:17 centos-8.example.com dhcpd[30897]: DHCPREQUEST for 10.10.10.100 (10.10.10.12) from 08:00:27:83:1e:2a via eth1 Apr 20 01:49:17 centos-8.example.com dhcpd[30897]: DHCPACK on 10.10.10.100 to 08:00:27:83:1e:2a via eth1
客户端获得IP地址后,接下来它将使用TFTP搜索PXE引导文件。
在此阶段,我们应该在PXE引导服务器(也用作TFTP引导服务器)上的/var/log/messages
中看到以下日志
Apr 20 01:49:17 centos-8.example.com systemd[1]: Started Tftp Server. Apr 20 01:49:17 centos-8.example.com in.tftpd[19710]: Client ::ffff:10.10.10.100 finished pxelinux/pxelinux.0 Apr 20 01:49:17 centos-8.example.com in.tftpd[19711]: Client ::ffff:10.10.10.100 finished pxelinux/ldlinux.c32 Apr 20 01:49:17 centos-8.example.com in.tftpd[19722]: Client ::ffff:10.10.10.100 finished pxelinux/pxelinux.cfg/default Apr 20 01:49:17 centos-8.example.com in.tftpd[19723]: Client ::ffff:10.10.10.100 finished pxelinux/boot.msg Apr 20 01:49:30 centos-8.example.com in.tftpd[19732]: Client ::ffff:10.10.10.100 finished pxelinux/vmlinuz Apr 20 01:49:36 centos-8.example.com in.tftpd[19734]: Client ::ffff:10.10.10.100 finished pxelinux/initrd.img
如果一切正确,则应该获得使用boot.msg文件创建的BOOT MENU。
按下1时,基于网络的安装将开始使用kickstart配置文件。
这是成功安装后我的客户端虚拟机的屏幕截图。