데이터 파일과 로드 가능한 ISO가 포함된 exFat 파티션 1과 USB 저장 장치에 UEFI 부팅 가능 Grub2가 포함된 파티션 2를 생성하는 방법은 무엇입니까?

데이터 파일과 로드 가능한 ISO가 포함된 exFat 파티션 1과 USB 저장 장치에 UEFI 부팅 가능 Grub2가 포함된 파티션 2를 생성하는 방법은 무엇입니까?

업데이트 2

좋아, Grub2를 통해 작동하는 USB를 얻었습니다.

먼저 GParted를 사용하여 분할된 테이블을 만들고 gpt다음 파티션을 만들었습니다.

  • exfat- [남은 공간] Live CD ISO 및 파일. (GParted가 지원하지 않기 때문에 gnome-disk-utility를 사용하여 생성되었습니다.)
  • ntfs- [5.50 GiB] Windows 10 복구 ISO 파일을 추출했습니다.
  • fat16- [100MiB] Grub2.

나는 팔로우한다이것답변 파티션 번호 순서를 올바른 순서로 변경하는 방법은 무엇입니까? 나는 내 PS4가 그것을 볼 수 없기를 바라면서 fat16을 사용합니다. 그래서 마운트할 파티션을 묻지 않고 자동으로 exfat 파티션을 마운트할 수 있지만 작동하지 않습니다. 나는 fat16과 fat32가 유일하게 호환되는 Grub2 UEFI 부팅 가능 파티션이라는 것만 알고 있습니다.

그런 다음 Grub2를 설치하십시오. Grub2를 설치하려는 파티션을 설치했습니다. "GRUB2"는 GParted 아래에 제공된 레이블이고 "user"는 내 Xubuntu 계정 이름입니다.

sudo grub-install --removable --boot-directory=/media/user/GRUB2/boot --efi-directory=/media/user/GRUB2

/media/user/GRUB2/boot/grub/grub.cfg그런 다음 다음 항목을 사용하여 grub.cfg를 만들었습니다.

menuentry "Lubuntu Boot Recovery Live CD (AMD64)" {
    insmod part_gpt
    insmod exfat
    insmod search_fs_uuid

    set iso=/iso/boot-repair-disk-64bit.iso
    search --no-floppy --set=root --fs-uuid 92AE-07D5

    loopback loop ($root)$iso
    linux (loop)/casper/vmlinuz.efi boot=casper file=/preseed/lubuntu.seed iso-scan/filename=$iso noprompt noeject
    initrd (loop)/casper/initrd.lz
}

menuentry "Windows 10 Installer on SDB2 (AMD64)" {
    insmod part_gpt
    insmod ntfs
    insmod search_fs_uuid
    insmod chain

    search --no-floppy --set=root --fs-uuid 13B187F260B1ACD6
    chainloader ($root)/efi/boot/bootx64.efi
}

menuentry "Xubuntu Live CD (AMD64)" {
    insmod part_gpt
    insmod exfat
    insmod search_fs_uuid

    set iso=/iso/xubuntu-18.04.4-desktop-amd64.iso
    search --no-floppy --set=root --fs-uuid 92AE-07D5

    loopback loop ($root)$iso
    linux (loop)/casper/vmlinuz boot=casper file=/preseed/lubuntu.seed iso-scan/filename=$iso noprompt noeject
    initrd (loop)/casper/initrd
}

조사하는 데 시간이 좀 걸렸지만 제가 이해한 바에 따르면요.

  • insmod- 다음 모듈을 로드하는데 사용됩니다. 아마도 2.02>에서는 이것이 필요하지 않을 것 같지만 만일의 경우에 대비해 추가했습니다. 편리한 목록을 찾았어요여기.
  • set- 변수를 설정하는데 사용됩니다.
  • search- 이는 일치하는 디렉터리, 파티션의 UUID, 파티션 이름 등과 같은 특정 기준을 검색하여 --set 아래의 변수에 저장합니다.

루프백, Linux, initrd, preseed 및 체인로더가 실제로 어떻게, 무엇을 하는지 잘 모르겠습니다. 그런데 파일 경로를 복사했는데 확장자가 다르거나 확장자가 없을 수도 있습니다.


지금까지 원하는 모든 것을 달성했지만 더 복잡한 스크립트 없이는 ISO 파일에서 Windows 10 ISO를 실행하는 것이 불가능하다고 생각합니다. 이것은 메뉴 항목에 대해 지금까지 작성한 코드 조각이지만 작동하지 않습니다.

menuentry "Windows 10 Installer (AMD64) (ISO) (Doesn't work)" --class windows --class os {
    # Load module to be able to read GPT partition table.
    insmod part_gpt

    # Load module to read the partition that ISO is stored.
    insmod exfat

    # Load module to find partition with UUID.
    insmod search_fs_uuid

    # Load module to chain load to another EFI.
    insmod chain

    # Set UUID of partition that has ISO image and store it in variable.
    set uuid="92AE-07D5"
    search --no-floppy --set=root --fs-uuid $uuid

    # Set ISO Directory.
    set iso=/iso/win10-1909-english-x64.iso

    # Mount ISO.
    loopback loop ($root)$iso

    # Boot ISO.
    #chainloader (loop)/efi/microsoft/boot/cdboot.efi
    chainloader (loop)+1
}

#chainloader (loop)/efi/microsoft/boot/cdboot.efi이전에 주석 없이 시도했지만 chainloader (loop)+1성공하지 못했습니다.

남은 질문은 ISO 파일에서 부팅하기 위해 Windows 10 설치 ISO를 시작하는 방법입니다.

관련 정보