저는 항상 UEFI 옵션을 사용하여 네트워크 DHCP/TFTP를 통해 CentOS 7 PXE 서버에서 CentOS 7 및 8로 베어 메탈 서버를 미러링합니다. 또한 Ubuntu 20.04 서버를 구축하려고 합니다.
나는 문서에 따라 Ubuntu ISO의 캐스퍼 디렉토리에서 vmlinuz 및 initrd를 추출하여 기본 tftpboot 디렉토리에 배치했습니다. 모든 것이 순조롭게 진행되어 ISO가 클라이언트에 다운로드되고 BusyBox로 이동하여 initramfs를 시작한 후 ISO 로드가 완료되었지만 "네트워크에서 라이브 파일 시스템을 찾을 수 없습니다."라는 메시지가 표시되면서 중지되었습니다. 문제는 클라이언트를 탐색하여 ISO를 찾을 수 있고 ISO를 마운트하여 거기에 있는 모든 것을 볼 수도 있다는 것입니다.
저는 다른 ISO(예: Ubuntu Desktop)를 사용했습니다. ISO sha와 .
이것은 내가 사용하고 있는 grub.cfg이며 문제를 격리하기 위해 모든 것을 제거했습니다.
timeout=30
timeout_style=menu
menuentry 'Ubuntu 20.04.2' {
linuxefi /vmlinuz ip=dhcp url=http://10.10.10.1/ubuntu-20.04.2-live-server-amd64.iso
initrdefi /initrd
}
menuentry 'CentOS 7.8' {
linuxefi /centos/images/pxeboot/vmlinuz ip=dhcp inst.repo=http://10.10.10.1:/centos
initrdefi /centos/images/pxeboot/initrd.img
}
CentOS 설치가 제대로 작동합니다(/centos는 CentOS ISO 덤프 경로입니다).
내가 놓친 것이 있나요?
답변1
불행하게도 이는 여러 가지 가능한 원인이 있는 포괄적인 실패입니다. 입력한 busybox 쉘을 사용하면 임시 ram 파일 시스템의 casper.log 파일을 볼 수 있습니다. ( debug=
APPEND 라인에 추가하면 추가 디버깅 정보가 활성화되어야 합니다). 이를 통해 문제가 어느 정도 밝혀질 수 있습니다.
또한 tftp 및 http 서버의 로그 파일은 요청하는 다양한 부분에서 무슨 일이 일어나고 있는지 알려줍니다.
한 가지 가능성(제 경우의 문제)은 제공하는 vmlinuz 및 initrd 파일이 로드 중인 .iso 이미지의 파일과 동일해야 한다는 것입니다. (.iso를 새로운 마이너 버전으로 업데이트했는데 이전 버전의 커널/initrd를 사용하고 있었기 때문에 갑자기 이 문제가 발생하기 시작했습니다.)
mount -o loop,ro ubuntu-20.04.2-live-server-amd64.iso /mnt
cp /mnt/casper/initrd /mnt/casper/vmlinuz [destination]
umount /mnt
답변2
다음 매개변수를 사용하여 기본 구성에서 작동하도록 했습니다.
LABEL Ubuntu 20 LTS
MENU LABEL Install Ubuntu 20 LTS
KERNEL ubuntu20/casper/vmlinuz # On PXE server, relative to TFTP Root
INITRD ubuntu20/casper/initrd
IPAPPEND 1
APPEND autoinstall ip=dhcp interface=enp5s0 ds=nocloud-net;s=http://<mywebserver>/ubuntu2004/autoinstall/ucshadoop06/ url=http://<mywebserver>/ubuntu-20/liveserver-iso/ubuntu-20.04.1-live-server-amd64.iso
ds 매개변수 유무에 관계없이 작동합니다. 현재 내 과제는 ds 매개변수가 아무 작업도 수행하지 않는 이유를 알아내는 것입니다. 추가 정보가 있으면 알려주시기 바랍니다.
답변3
.disk
이 오류에서 언급했듯이 파일이 누락되었을 수 있습니다.https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1877618
PXE 설치 파일을 복사할 때 숨겨진 파일을 포함해야 합니다.https://superuser.com/questions/61611/how-to-copy-with-cp-to-include-hidden-files-and-hidden-directories-and-their-con
그런데, 이것은 PXE 설치 설정에 관해 제가 찾은 최고의 기사입니다. Ubuntu 20.04에 대한 지침을 수정하고 복사했는지 확인해야 했습니다 .disk
(기사에는 언급되지 않음).https://linuxhint.com/pxe_boot_ubuntu_server
답변4
나는 썼다Ubuntu용 LTSP를 구축하는 방법에 대한 튜토리얼(이는 16.04에 도입되었지만 최신 버전에도 계속 적용됩니다.)
클라이언트 빌드가 실패할 수 있습니다. 이는 ISO가 분명히 존재하더라도 PXE 옵션에서 부팅할 때 클라이언트에 이 내용이 표시되지 않는 이유입니다.