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

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

현재 BIOS를 통해 부팅되는 기존 사용자 지정 USB ISO 설치 프로그램 이미지를 UEFI를 통해 부팅되는 이미지로 변환하려고 합니다. ISO를 만들고 ISOLINUX를 통해 부팅하는 데 mkisofs및 를 사용합니다 . UEFI 부팅을 활성화하는 옵션을 isohybrid사용해야 한다는 것을 알고 있지만 -eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot isolinux/efiboot.img찾기 어려운 소스 파일을 어디서 구할 수 있는지 알려주는 페이지를 Google에서 찾을 수 없습니다 efiboot.img. 모두가 그것을 언급하지만 모두가 당신이 이미 그것을 가지고 있다고 가정합니다. 이것은 어떻게 만들어졌거나 획득되었나요? 이 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그런 다음 이를 적용하여 하드 드라이브와 같은 장치에서 부팅 가능하게 만들 수 있습니다. (이 기능이 isohybrid 작동 하려면 ISOLINUX BIOS 부팅 이미지가 필요할 수도 있습니다 .)

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

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

Debian의 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이 Debian보다 더 많습니다. EFI 부팅 파일 외에도 내 GRUB 지식 범위를 벗어나는 파일이 bootx64.efi 하나 있습니다 .grub.cfg

부팅 가능한 ISO를 처음부터 개발하는 경우 GRUB 프로그램을 통해 ISO를 생성하는 것이 좋습니다 grub-mkrescue. (그때 정말 필요합니다 xorriso. 제가 개발자입니다.)

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

grub-mkrescue -o output.iso my_prepared_dir

grub-mkrescueSuSE는 BIOS 및/또는 EFI 장치를 생성하기 위해 실행 되도록 구성된 Debian과 유사한 GRUB 패키지를 제공한다고 생각합니다 .

관련 정보