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 的情況下啟動 VM,kickstart 文件可以完美執行 - 所以我知道問題在於引導程序找到 iSO。我希望 kickstart 文件引用具有 ISO 的公共 NFS 共享,而不是配置 VM 以將 ISO 掛載為驅動器… 什麼是 kickstart repo 語法來做到這一點?
這是 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
文件。在我的設置中,我有這樣的網路啟動參數:
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
文件不存在,它將嘗試在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 映像。