18.04 ISO의 PXE 부팅


12

이전에는 ISO를 NFS 마운트로 추출하고 vmlinuz.efi 및 initrd.gz를 캐스퍼에서 tftpboot 디렉토리로 복사하여 iPXE 스크립팅 마법을 사용하여 Ubuntu LiveCD의 PXE 부팅을 설정했습니다.

이것은 16.04, 16.10 및 17.10 (Artful)에서 완벽하게 작동했습니다.

18.04에서 vmlinuz.efi가 캐스퍼에 더 이상 존재하지 않지만 vmlinuz는 더 이상 있음을 발견했습니다. 그래서 이름을 바꾸고 다시 시도합니다 ...

이제는 여전히 부팅이 완료되지 않습니다. "비상 모드"가 나타납니다. 'journalctl -xb'(비상 모드 프롬프트에서 제안한대로)를 입력하고 탐색하면 다음이 발생합니다.

Unit sys-fs-fuse-connections has begun starting up.
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
sys-kernel-config.mount: Mount process finished, but there is no mount.
sys-kernel-config.mount: Failed with result 'protocol'.
Failed to mount Kernel Configuration File System.

도움!

2018-04-30 추가 :

PXE 마운트 용 ISO를 추출하는 데 사용되는 스크립트 코드 (TARGET은 이미지 이름으로 설정 (예 : 바이오닉)) :

set -e

# Look for bionic.iso as the ISO I am going to extract.
TARGET=invalid.iso
[ -f bionic.iso ] && TARGET=bionic
echo TARGET=$TARGET

# Mount the ISO to the /tmp directory
sudo rm -rf /var/nfs/$TARGET/*
sudo rm -rf /tmp/$TARGET
mkdir /tmp/$TARGET
sudo mount -o loop ~/$TARGET.iso /tmp/$TARGET

# Clear up the NFS directory where things will be copied (and copy them)
sudo rm -rf /var/nfs/$TARGET
sudo mkdir /var/nfs/$TARGET
sudo rsync -avH /tmp/$TARGET/ /var/nfs/$TARGET

# I've not had luck with iPXE changing filesystems to find
# vmlinuz, vmlinuz.efi, or initrd.gz... so I copy those files
# specifically to the tftp directory structure so the boot loader
# can load them.
sudo rm -rf /var/lib/tftpboot/$TARGET
sudo mkdir /var/lib/tftpboot/$TARGET
sudo cp /tmp/$TARGET/casper/vmlinuz* /var/lib/tftpboot/$TARGET/.
sudo cp /tmp/$TARGET/casper/initrd.lz /var/lib/tftpboot/$TARGET/.

# Cleanup: unmount the ISO and remove the temp directory
sudo umount /tmp/$TARGET/
sudo rm -rf /tmp/$TARGET/
echo Done.

커널이있는 드라이브가 새로 포맷 된 "깨끗한"설치입니까? 아니면 다른 OS와 함께 / 위에 있습니까?
Jonathan

1
문제의 대상 시스템에는 하드 드라이브가 없으며 네트워크 부팅을 통해 18.04 데스크탑 LiveCD를로드하고 있습니다. 이전 구성이 없습니다. USB 키나 CD를 사용하는 대신 liveCD를 부팅하는 대신 네트워크를 통해 iPXE를 사용하여 라이브 CD를 부팅하는 시스템 그룹을 상상해보십시오.
Joe Marley

답변:


7

런치 패드 버그 추적기 에서 "Woodrow Shen"의 조언에 따라 iPXE에서이 문제를 해결했습니다 .

기본적으로 우분투 16.04.3에 대한 이전 항목을 수정했습니다.

:deployUbuntu-x64-16.04.3
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-16.04.3
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz.efi || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz.efi initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet -- || read void
boot || read void

우분투 18.04에서 이와 같이 보이려면 :

:deployUbuntu-x64-18.04
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-18.04
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet toram -- || read void
boot || read void

다음 변경 사항에 유의하십시오.

  • 줄 4와 6에 이름 vmlinuz.efi을 바꿉니다vmlinux
  • toram6 행에 옵션 추가
  • 분명히을 변경 nfs_path새로운 추출 ISO의 위치를 일치

Launchpad에서 지적했듯이이 toram옵션에는 추가 RAM 이 필요합니다. 테스트에서 가상 머신에 4GB의 RAM이 할당되어 있는지 확인해야했습니다.

이는 EFI 및 레거시 BIOS 시스템에서도 작동합니다.


1
감사합니다 DrGecko- toram옵션은 민트 19와 함께 나를 위해 일했습니다!
Brian Sidebotham

이것은 lubuntu 18.04.1 (LTS)에서도 작동합니다. 감사합니다!
Joe Marley

1
필요로하지 않는 다른 옵션이 있습니다 toram에 6 행의 끝을 변경하고 훨씬 적은 RAM이있는 컴퓨터를 부팅 할 수 있습니다ip=dhcp systemd.mask=tmp.mount ro -- || read void
Ricflomag

@Ricflomag 정말 감사합니다. 2GB의 RAM이 장착 된 컴퓨터가 있습니다. Ubuntu MATE 18.04.1 및 Linux Mint 19.1에서 테스트되었으며 Ubuntu 18.04를 기반으로 한 이후 동일한 문제가 발생합니다.
Skylar Ittner

2

주말 후에, 나는 나의 정확한 증상을 설명하고보고 된 버그를 발견했다.

https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1755863

분명히 나는 ​​18.04.1을 기다리고 있습니다. 적어도 나는 지금 내가 (전적으로) 미쳤다는 것을 안다!


나는 전에 링크를 클릭해야했었다. 꽤 많은 시간을 보냈다. AIO Boot를 사용하고있었습니다. 감사.
Regmi

0

아래에서 업데이트하십시오-라이브 ISO를 사용하지 말고 기존의 PXE 부팅 방식을 사용하십시오.


우분투 14.04 및 16.04의 경우 웹 서버를 통해 액세스 할 수 있도록 전체 서버 DVD ISO를 루프백 마운트하고 일반적인 방법으로 PXE 부팅을 설정합니다 (커널과 initrd를 tftp 데몬으로 복사, DHCP 다음 서버 옵션) , pxe 메뉴 등).

노드 배치를 완전히 자동화하기위한 킥 스타트 프로세스가 있습니다.

이것은 단순히 18.04에서 작동하지 않으며 설치 디렉토리에 커널이 없으며 install / netboot / ubuntu-installer / amd64 디렉토리가 없습니다! 그래서 casper 디렉토리에서 커널과 initrd를 사용해 보았지만 쓸모가 없습니다. netinstall DVD iso를 잡고 커널과 initrd를 사용했습니다. 실제로 텍스트 설치 프로그램을 실행하지만 미러에 파일이 누락되었다고 주장하지만 내 http 서버의 로그에 404가 제공되지 않습니다!

전반적으로, 나는 우분투 18.04 서버 ISO가 자동 설치를 원하는 사람들에게 역행 단계라고 생각합니다.


나는 또한 이것을 킥 스타트에 추가하려고 시도했다.

미리 설정 한 라이브 설치 프로그램 / 넷 이미지 문자열 http : //myreposerver/ubuntu-18.04-live-server-amd64/casper/filesystem.squashfs

우분투 14.04 PXE 부팅을 자동으로 만들려면

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.