GRUB2 다중 Linux 이중 부팅(안전 부팅 및 shimx64.efi)

GRUB2 다중 Linux 이중 부팅(안전 부팅 및 shimx64.efi)

저는 2개의 Linux 배포판, Windows 및 여러 개의 ISO를 포함하는 최고의 USB 스틱을 만들려고 노력하고 있습니다.

지금까지 Windows, Ubuntu, Fedora Silverblue를 디스크에 설치했습니다(설치 속도를 높이기 위해 가상 머신에서 테스트해 왔습니다). 머신의 UEFI 부팅 메뉴에서 모든 옵션을 볼 수 있으며 그중 하나를 성공적으로 부팅할 수 있습니다. UEFI BIOS에 모든 옵션이 표시됩니다.

Fedora 또는 Ubuntu GRUB 메뉴에서 Windows를 부팅할 수 있지만 둘 다 다른 메뉴에서는 부팅되지 않습니다. 여기에 이미지 설명을 입력하세요.

결국 ISO 파일을 부팅하고 싶기 때문에 GRUB에서 다른 Linux 설치를 로드할 수 있어야 합니다.

내가 시도한 것들:

보안 부팅 비활성화:

이것은 작동하지만 다른 사람의 컴퓨터에서 사용할 수 있기를 원하고 보안 부팅을 비활성화하는 것이 마음에 들지 않을 수 있으므로 사용하고 싶지 않습니다.

체인 로딩:

GRUB는 체인로더를 통해 Windows를 로드하므로 Linux에서도 동일한 작업을 수행할 수 있다고 생각했습니다.

Fedora의 GRUB 메뉴에서 이 작업을 수행하면 chainloader /EFI/ubuntu/grubx64.efi동일한 심 오류가 발생합니다.

그렇게 하면 chainloader /EFI/ubuntu/shimx64.efi(Fedora의 GRUB 메뉴에서) Ubuntu의 GRUB 메뉴로 이동할 수 있습니다. 하지만 실제로 Ubuntu를 부팅하려고 할 때 여전히 shim 오류가 발생합니다.

내가 올바르게 이해했다면

내가 올바르게 이해했다면 이것이 shimx64.efiUEFI BIOS가 실제로 로드되는 것입니다. 이 파일에는 단일 코어에 대한 보안 부팅 정보만 포함되어 있습니까?

shimx64.efi다른 GRUB 메뉴에 로드할 링크를 선택할 때 UEFI를 다시 로드할 수 있는 방법이 있습니까?

shimx64.efi너무 길어요 . 보안 부팅이 활성화된 동일한 GRUB 메뉴에서 두 개의 Linux 배포판을 이중 부팅할 수 있는지 누군가 설명해 주실 수 있나요?

고마워요, 윌

답변1

내가 올바르게 이해했다면 shimx64.efi는 UEFI BIOS가 실제로 로드하는 것입니다. 이 파일에는 단일 코어에 대한 보안 부팅 정보만 포함되어 있습니까?

거의 맞지만 정확하지는 않습니다. Microsoft는 각 릴리스에 대한 shim 버전에 서명하며 shim에는 해당 릴리스에 대한 보안 부팅 공개 키가 포함되어 있습니다. shim을 사용하면 시스템 부팅에 허용되는 키 목록에 배포판의 보안 부팅 키가 일시적으로(비영구적으로) 추가됩니다. Shim에는 MOK(머신 소유자 키)를 추가할 수도 있습니다.

따라서 Fedora를 로드하면 shimx64.efi보안 부팅이 Fedora 서명 콘텐츠를 허용할 수 있습니다. 그런 다음 로드되고 grubx64.efiFedora에서 서명되며 이제 보안 부팅 펌웨어에서 허용될 수 있습니다. Fedora의 커널이 로드 되면 grubx64.efi커널 파일이 Fedora에 의해 서명되므로 보안 부팅을 통해 커널 코드가 실행될 수 있습니다.

사용자 정의 커널을 구축하려면 MOK를 생성하고 이를 사용하여 사용자 정의 커널에 서명해야 합니다. 또한 사용자 정의 또는 타사 커널 모듈을 구축하려면 보안 부팅 "계약"의 일부가 서명되지 않은 커널 코드를 허용하지 않기 때문에 MOK로 서명해야 합니다. 따라서 부트로더는 커널의 서명을 확인해야 하며, 보안 부팅이 활성화되면 커널은 각 모듈의 서명을 확인해야 합니다.

배포판의 보안 부팅 키로는 어떤 것도 서명할 수 없습니다.사적인배포판 보안 부팅 키의 일부 - 이 키는 배포판 보안 책임자가 매우 안전하게 보관할 수 있습니다.

설치하고당신의다른 사람의 컴퓨터에서 MOK를 사용하는 것은 보안 부팅을 비활성화하는 것만큼이나 나쁩니다.아무것그들의 시스템에서.

분명히 하나의 shim을 로드한 후 이론적으로 shim의 다른 복사본을 체인 로드하는 것이 가능해야 하지만 shim의 소스 코드 설명에 따르면 이것이 완전히 사소한 것은 아닙니다.

관련 정보