我正在尝试通过 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=
引导参数指定自定义位置。您可能还需要.treeinfo
ISO 根目录中的隐藏文件。
在我的设置中,我有这样的网络启动参数:
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 映像。