PXE 부팅 킥스타트 - 설치 트리를 포함하는 방법

PXE 부팅 킥스타트 - 설치 트리를 포함하는 방법

PXE를 통해 Rocky Linux(RHEL 8과 동일) 설치를 부팅하려고 합니다. Fedora와 달리 미러가 없으므로 다음과 같은 URL 및 저장소 옵션은 작동하지 않습니다.

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를 찾는 부트로더에 문제가 있다는 것을 알고 있습니다. ISO를 드라이브로 마운트하도록 VM을 구성하는 대신 킥스타트 파일이 ISO가 있는 공용 NFS 공유를 참조하도록 하고 싶습니다. 이를 수행하기 위한 킥스타트 저장소 구문은 무엇입니까?

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 이미지가 로드되면 설치 프로그램은 모든 작업을 수행할 수 있는 충분한 기능을 갖게 되므로 킥스타트 파일을 구문 분석하고 NFS 공유를 마운트하는 등의 작업을 수행할 수 있습니다. stage2가 로드되기 전에는 HTTP, HTTPS 및 FTP 서버에만 액세스할 수 있습니다. 따라서 설치 프로그램이 stage2 이미지를 로드할 수 있다고 확신하면 inst.repo=nfs:192.168.0.100:/ISOs/Rocky-8.4-x86_64-dvd1.isoISO 이미지를 사용하도록 부팅 옵션을 추가할 수 있습니다.

관련 정보