mkisofs 및 -eltorito-boot efiboot.img를 사용하여 UEFI 부팅 가능 이미지 만들기

mkisofs 및 -eltorito-boot efiboot.img를 사용하여 UEFI 부팅 가능 이미지 만들기

현재 BIOS를 통해 부팅되는 기존 사용자 정의 USB ISO 설치 프로그램 이미지를 UEFI를 통해 부팅되는 이미지로 변환하려고 합니다. ISO를 사용하여 mkisofsISO isohybrid를 만들고 ISOLINUX를 통해 부팅합니다. UEFI 부팅을 활성화하는 옵션을 사용해야 한다는 것을 알고 있지만 -eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot isolinux/efiboot.img평생 찾기 힘든 efiboot.img소스 파일을 어디서 구할 수 있는지 알려주는 페이지를 Google에서 찾을 수 없습니다. 모두가 그것을 언급하지만 모두는 당신이 이미 그것을 가지고 있다고 가정합니다. 이것은 어떻게 구축되거나 획득됩니까? 해당 man페이지는 mkisofs도움이 되지 않습니다. 꼭 사용해야 하나요 xorriso?

참고로 libvirt/kvm/qemu/virt-manager를 통해 부팅하려고 합니다. 하지만 결국에는 실제 하드웨어에서 부팅해야 합니다. 개발 환경은 openSUSE Leap 42.1입니다. BIOS나 여러 플랫폼을 지원할 필요가 없습니다. 나는 너무 많은 기존 빌드 코드를 수정하고 싶지 않지만 적어도 하나의 의견(@mikeserv)은 ISO가 이에 대한 완전히 잘못된 메커니즘이라고 제안했습니다(즉, 이는 총체적인 해킹이며 완전히 불필요하다는 의미입니다). 하지만 그러려면 빌드를 완전히 개편해야 하므로 시간이 많이 걸립니다.

이 주제에 대해 튜토리얼이나 기타 잘 작성된 페이지에 대한 링크를 주시면 감사하겠습니다. 나는 이미 Syslinux 웹사이트와 Rod Smith의 페이지를 살펴봤고 다른 모든 것을 살펴보느라 완전히 지쳤습니다.

답변1

xorriso를 사용해야 하나요?

반드시 그런 것은 아닙니다. EFI 시스템 파티션을 El Torito 부팅 이미지로 표시할 수 있는 ISO 생산자가 필요합니다. mkisofs아마도 당신이 언급한 옵션과 관련이 있을 것입니다. isohybrid --uefi나중에 하드 디스크와 같은 장치에서 부팅할 수 있도록 적용할 수 있습니다. (ISOLINUX BIOS 부팅 이미지도 있어야 isohybrid 작동할 수 있습니다.)

주요 문제는 FAT 이미지 또는 포함된 ISO 9660 파일 시스템에 있는 운영 체제 파일을 불러오는 데 필요한 프로그램이 포함된 FAT 파일 시스템 이미지여야 하는 EFI 시스템 파티션 파일이 필요하다는 것입니다.

SYSLINUX EFI 소프트웨어는 광학 미디어에서 부팅되지 않습니다. 따라서 대부분의 프로젝트에서는 해당 목적으로 GRUB 2(GRUB 레거시 아님)를 사용하고 이를 ISOLINUX BIOS 소프트웨어와 결합합니다. 데비안 netinst amd64 ISO예를 들어 ISO의 GRUB 구성으로 이동할 수 있을 만큼 GRUB 두뇌가 충분한 작은 FAT 이미지가 있습니다. 에 있는 것오픈수세 NET-x86_64 ISO더 크다.

데비안의 EFI 장비를 검사하려면 ISO로 마운트한 다음 파일을 /boot/grub/efi.imgFAT로 마운트하세요. 내부에서 /efi/boot/bootx64.efi프로그램이 검사한 파일 strings에 포함된 GRUB 구성이 포함되어 있음이 밝혀 졌습니다.

search --file --set=root /.disk/info
set prefix=($root)/boot/grub
source $prefix/x86_64-efi/grub.cfg
(memdisk)/boot/grub

FAT 이미지 파일은 GRUB 프로그램으로 생성된 것으로 알고 있습니다 mkimage. 파일은 /.disk/infoDebian ISO에만 존재하는 것으로 간주되므로 searchISO 파일 시스템을 찾는 데 사용할 수 있습니다.

SuSE ISO에서 FAT 이미지의 이름은 입니다 /boot/x86_64/efi. 데비안보다 더 많은 내용이 포함되어 있습니다. EFI 부팅 파일 외에도 GRUB 지식을 넘어서는 다른 파일이 bootx64.efi 있습니다 .grub.cfg

부팅 가능한 ISO 개발을 처음부터 시작하는 경우 GRUB 프로그램으로 ISO를 생성하는 것을 고려하십시오 grub-mkrescue. (그때가 정말 필요한 때입니다 xorriso. 그 중 제가 개발자입니다.)

Debian에서는 BIOS 및 x86_64 EFI용 패키지 grub-pc를 설치해야 합니다 . 디렉터리 트리에서 페이로드를 준비하고 실행하세요.grub-efi-ia32-bingrub-efi-amd64-bin

grub-mkrescue -o output.iso my_prepared_dir

grub-mkrescue나는 SuSE가 BIOS 및/또는 EFI 장비를 생성하도록 실행 하도록 구성하는 Debian과 유사한 GRUB 패키지를 제공한다고 가정합니다 .

관련 정보