我正在尝试 PXE 引导 Rocky Linux(与 RHEL 8 相同)安装。与 Fedora 不同的是,没有镜像,所以像这样的 url 和 repo 选项不起作用:
url --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-34&arch=x86_64
repo --name=updates --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f34&arch=x86_64
因此,当 PXE 启动 grub.cfg 时,它没有可以从中提取安装文件的媒体。如果我在安装了 Rocky 安装 ISO 的情况下启动 VM,kickstart 文件可以完美运行 - 所以我知道问题在于引导程序找到 iSO。我希望 kickstart 文件引用具有 ISO 的公共 NFS 共享,而不是配置 VM 以将 ISO 挂载为驱动器... 执行此操作的 kickstart 存储库语法是什么?
这是 grub.cfg 中的条目:
menuentry 'Teichos' {
linuxefi Rocky8/vmlinuz ip=dhcp inst.ks=nfs:192.168.0.100:/pve/kickstart/rocky-minimal.ks
initrdefi Rocky8/initrd.img
}
这是我的 kickstart 文件:
#version=RHEL8
# Use graphical install
# graphical
text
repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream
%packages
@^minimal-environment
@network-server
kexec-tools
%end
# Keyboard layouts
keyboard --xlayouts='au'
# System language
lang en_AU.UTF-8
# Network information
network --bootproto=dhcp --device=ens18 --ipv6=auto --activate
network --hostname=teichos.mydomain.net
# Use CDROM installation media
cdrom
# Run the Setup Agent on first boot
firstboot --enable
# Accept the eula
eula --agreed
ignoredisk --only-use=sda
# Partition clearing information
clearpart --none --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --ondisk=sda --size=600 --fsoptions="umask=0077,shortname=winnt"
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.111 --fstype="lvmpv" --ondisk=sda --size=31142
volgroup rl --pesize=4096 pv.111
logvol swap --fstype="swap" --size=3276 --name=swap --vgname=rl
logvol / --fstype="xfs" --grow --size=1024 --name=root --vgname=rl
# System timezone
timezone Australia/Melbourne --isUtc
#Root password
rootpw --lock
user --groups=wheel --name=admin --password=$6$t23FE4wlPddt68ys$1GfPaRk42VVC4HYFPe9VQAhMjzgA1IYmkTBkMzSdubdBQuCkZp0PAuyzNmABF0n16kiMd7YCD2TNEgr5o/QAX/ --iscrypted --gecos="admin"
%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
安装 CD 位于:
nfs:192.168.0.100:/ISOs/Rocky-8.4-x86_64-dvd1.iso
我还没有测试过 Rocky,所以这个答案是基于 RHEL/CentOS,但我希望它本质上是一样的。
网络启动过程将需要 squashfs 安装程序映像:它应该在安装 CD 上的
images/install.img
.如果您不想挂载 ISO 映像,那么您应该从 ISO 中提取该映像并使其通过 HTTP 可用。可以使用
inst.stage2=
引导参数指定自定义位置。您可能还需要 ISO 根目录中的隐藏.treeinfo
文件。在我的设置中,我有这样的网络启动参数:
当 RHEL 8 安装程序 initramfs 被赋予该
inst.stage=http://boot.server/rhel8
选项时,它首先检查是否存在http://boot.server/rhel8/.treeinfo
. 所以它基本上希望找到 RHEL 8 ISO 映像的完整内容。如果该.treeinfo
文件不存在,它将尝试在http://boot.server/rhel8/images/install.img
. 所以它基本上会附加/images/install.img
到你指定的任何内容。该
.treeinfo
文件将为该install.img
文件指定一个 sha256 哈希,如果它可用,安装程序实际上可能会使用它来进行完整性检查,因此您可能也想提供该.treeinfo
文件。一旦加载了 stage2 映像,安装程序将拥有足够的功能来完成它要做的所有事情,因此它将能够解析 kickstart 文件、挂载 NFS 共享等。在加载 stage2 之前,它只能访问 HTTP、HTTPS 和FTP 服务器。因此,一旦您确定安装程序可以加载 stage2 映像,您就可以添加引导选项
inst.repo=nfs:192.168.0.100:/ISOs/Rocky-8.4-x86_64-dvd1.iso
以使其使用您的 ISO 映像。