BIOS 부팅 가능 ISO에서 UEFI 부팅 가능 USB 디스크를 만드는 방법

BIOS 부팅 가능 ISO에서 UEFI 부팅 가능 USB 디스크를 만드는 방법

BIOS 부팅 가능 파티션이 포함된 iso 이미지가 있다고 가정해 보겠습니다. 이 이미지를 USB 플래시 드라이브에 쓸 수 있습니다

Linux에서는 다음과 같은 작업을 수행할 수 있습니다.

dd if=pmagic_2013_02_28.iso of/dev/sdc1

이제 BIOS가 있는 컴퓨터에서 USB 디스크를 부팅할 수 있습니다. 하지만 UEFI 시스템에서는 USB 드라이브가 부팅되지 않습니다. EFI 부팅 가능하게 만들려면 어떻게 해야 합니까?

답변1

ISO 이미지를 생성하려면 El Torito의 마법이 필요합니다. 바라보다이것.

답변2

이미지를 (U)EFI 부팅 가능하게 하려면 경로 아래에서 부팅할 initramfs 이미지 파일이 포함된 기본 VFAT32 파티션이 있어야 합니다 /efi/boot/bootx64.efi.

답변3

유일한 기회는 ISO 이미지를 다시 빌드하고 필요한 UEFI 파일을 추가하는 것입니다. 당신 과 함께 xorriso라면 이 일을 할 수 있습니다.

먼저 원본 ISO 파일의 내용을 추출합니다.

xorriso -osirrox on -indev IMAGE.ISO -extract / ISO_DIR

그런 다음 FAT 파티션이어야 하는 ESP(EFI 시스템 파티션)를 생성해야 합니다. 우리는 그러한 파티션을 포함하는 파일을 생성할 것입니다:

BOOT_IMG=efi.img

grub-mkimage \
    -C xz \
    -O x86_64-efi \
    -p /boot/grub \
    -o bootx64.efi \
    boot linux normal configfile \
    part_gpt btrfs fat iso9660 loopback \
    test keystatus gfxmenu regexp \
    efi_gop efi_uga all_video gfxterm font \
    echo read ls cat png jpeg halt

mkfs.vfat -C $BOOT_IMG \
    $(( ($(stat -c %s bootx64.efi) / 1024 + 511) / 32 * 32 ))

mmd -i $BOOT_IMG ::/efi
mmd -i $BOOT_IMG ::/efi/boot
mmd -i $BOOT_IMG ::/boot
mmd -i $BOOT_IMG ::/boot/grub

mcopy -Q -i $BOOT_IMG bootx64.efi ::/efi/boot

# You may create a grub.cfg file if you want.
[ -f grub.cfg ] &&
    mcopy -Q -i $BOOT_IMG grub.cfg ::/boot/grub

ESP를 생성한 후 다음 명령을 사용하여 UEFI 부팅 가능 ISO 이미지를 빌드할 수 있습니다.

xorriso -as mkisofs \
    -r -J -l \
    -iso-level 3 \
    -joliet-long \
    -append_partition 2 0xef $BOOT_IMG \
    -partition_cyl_align all \
    -o uefi-bootable.iso \
    ISO_DIR

uefi-bootable.isoISO 이미지가 현재 디렉터리에 생성됩니다.


부팅 가능한 ISO 이미지에 대한 다음 리소스를 읽을 수 있습니다.

관련 정보