grub-mkrescue를 사용하여 다시 스핀하여 라이브 USB 만들기

grub-mkrescue를 사용하여 다시 스핀하여 라이브 USB 만들기

Ubuntu 20.04.1을 기반으로 Linux respin을 만들고 있습니다. 최종 .iso를 생성하기 위해 distroshare(더 이상 지원되지 않음)라는 스크립트를 실행하고 있습니다. 생성된 .iso는 작동하지만 몇 가지 이상한 점이 있습니다.

  • .iso를 열면 모든 것이 대문자 8.3 스타일입니다.
  • Rufus를 사용하여 USB에 쓸 때 BIOS(또는 UEFI-CSM)에 대한 대상 시스템 옵션만 표시됩니다.
  • Rufus를 사용하여 USB에 쓸 때 강제로 dd 모드로 써야 합니다.
  • SecureBoot 모드에서 시스템을 부팅할 수 없습니다.

공식 Ubuntu .iso를 다운로드하면 상황이 다르다는 것을 알았습니다.

  • 모든 것이 혼합된 경우입니다.
  • BIOS 또는 UEFI에 대한 대상 시스템 옵션이 표시됩니다.
  • ISO 모드를 사용하여 USB에 쓸 수 있습니다
  • SecureBoot에서 부팅하기

이러한 것들이 관련되어 있는지는 확실하지 않지만 스크립트의 중요한 명령은 다음과 같습니다.

grub-mkrescue -o "${WORK}"/live.iso "${CD}"

이 명령의 출력은 다음과 같습니다.

Creating the iso
xorriso 1.5.2 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:/home/distroshare/live.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 11.2g free
Added to ISO image: directory '/'='/tmp/grub.PGtTeI'
xorriso : UPDATE :     574 files added in 1 seconds
Added to ISO image: directory '/'='/home/distroshare/CD'
xorriso : UPDATE :     590 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 512 bytes from file '/usr/lib/grub/i386-pc/boot_hybrid.img'
libisofs: NOTE : Automatically adjusted MBR geometry to 1021/165/32
xorriso : UPDATE :  1.13% done
xorriso : UPDATE :  11.48% done
xorriso : UPDATE :  19.02% done
xorriso : UPDATE :  28.71% done, estimate finish Thu Sep 10 16:43:07 2020
xorriso : UPDATE :  38.24% done, estimate finish Thu Sep 10 16:43:08 2020
xorriso : UPDATE :  45.26% done, estimate finish Thu Sep 10 16:43:08 2020
xorriso : UPDATE :  56.44% done, estimate finish Thu Sep 10 16:43:08 2020
xorriso : UPDATE :  65.32% done, estimate finish Thu Sep 10 16:43:08 2020
xorriso : UPDATE :  74.83% done, estimate finish Thu Sep 10 16:43:08 2020
xorriso : UPDATE :  83.64% done, estimate finish Thu Sep 10 16:43:08 2020
xorriso : UPDATE :  92.53% done
ISO image produced: 1346790 sectors
Written to medium : 1346790 sectors at LBA 0
Writing to 'stdio:/home/distroshare/live.iso' completed successfully. 

grub-mkrescue에 다른 스위치를 사용해야 합니까? 대신 grub-mkimage를 사용해야 합니까? 이것이 의미하는 바가 있나요?

편집: Thomas의 의견 이후 추가 정보

-J 스위치를 사용해 보았더니 제대로 작동했습니다. 실제로 grub-mkrescue 스위치가 아니라 통과 xorriso 스위치이기 때문에 혼란스럽습니다.

나는 여전히 전체 EFI/SecureBoot 문제에 대해 매우 혼란스러워합니다. 현재 ISO의 루트 디렉터리에 efi.img라는 파일이 있습니다. grub-efi-amd64-signed를 설치한 것 외에는 어떻게 거기에 도달했는지 잘 모르겠습니다. 서명되었다고 말하고 SecureBoot가 Ubuntu 제품을 신뢰한다는 것을 알았기 때문에 작동할 것이라고 생각했지만 그렇지 않습니다.

md5 합계를 계산하기 전에 간단히 Ubuntu iso에서 /EFI/BOOT 디렉토리를 복사하여 내 iso의 루트에 넣을 수 있습니까? 아니면 /EFI 디렉토리를 얻으려면 다른 작업을 수행해야 합니까?

답변1

.iso를 열면 모든 것이 대문자 8.3 스타일입니다.

MS-Windows에서 이런 일이 발생하면 ISO에 Joliet 트리가 없기 때문일 수 있습니다. 이를 얻으려면 grub-mkrescue에 -J 옵션을 추가하세요.

Linux 및 기타 Unix 계열 시스템에서는 ISO의 Rock Ridge 데이터로 인해 원래 파일 이름이 표시됩니다.

Rufus를 사용하여 USB에 쓸 때 강제로 dd 모드로 써야 합니다.

이는 Rufus가 GRUB의 BIOS 부팅 장치를 인식하지 못하기 때문일 수 있습니다. Rufus 지원팀에 설명이나 개선 사항을 요청해 보세요.

SecureBoot 모드에서 시스템을 부팅할 수 없습니다.

이를 위해서는 Microsoft Inc.에서 서명한 부트로더가 필요합니다. 우분투는 이런 과정을 거쳤습니다. (ubuntu-19.04-desktop-amd64.iso EFI 파티션의 /EFI/BOOT/BOOTX64.EFI에 "Microsoft"라는 단어가 46번 나타나는 것으로 계산했습니다.)

아마도 프로그램에 직접 서명하고 EFI에 서명을 수락하도록 지시할 수도 있습니다. 하지만 그건 제 능력 밖의 일이라 걱정됩니다.

대신 grub-mkimage를 사용해야 합니까?

대신에. grub-mkrescue는 grub-mkimage를 사용하여 EFI 파티션을 생성합니다. 일반적으로 grub-mkrescue는 GRUB 부팅 장치를 사용하여 ISO를 만드는 데 권장되는 GRUB 도구입니다.

좋은 하루 보내세요 :)

도마

관련 정보