PXE Boot Kickstart - 如何包含安装树

PXE Boot Kickstart - 如何包含安装树

我正在尝试通过 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 的情况下启动虚拟机,则 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
}

这是我的启动文件:

#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

答案1

我还没有测试过 Rocky,所以这个答案是基于 RHEL/CentOS,但我希望它本质上是相同的。

网络引导过程将需要 squashfs 安装程序映像:它应该可以在安装 CD 上找到,网址为images/install.img

如果您不想挂载 ISO 映像,则应从 ISO 中提取该映像并使其通过 HTTP 可用。可以使用inst.stage2=引导参数指定自定义位置。您可能还需要.treeinfoISO 根目录中的隐藏文件。

在我的设置中,我有这样的网络启动参数:

ip=dhcp inst.stage2=http://boot.server/rhel8 inst.lang=en_US inst.keymap=us inst.ks=http://boot.server/rhel8/rhel8config.ks

当 RHEL 8 安装程序 initramfs 被提供该inst.stage=http://boot.server/rhel8选项时,它首先检查http://boot.server/rhel8/.treeinfo.因此它基本上希望找到 RHEL 8 ISO 映像的完整内容。如果该.treeinfo文件不存在,它将尝试在 处查找 squashfs 文件http://boot.server/rhel8/images/install.img。所以它基本上会附加/images/install.img到您指定的任何内容。

.treeinfo文件将为文件指定 sha256 哈希值install.img,安装程序实际上可能会使用它进行完整性检查(如果可用),因此您可能.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 映像。

相关内容