systemd-boot를 설치하는 올바른 방법은 무엇입니까?

systemd-boot를 설치하는 올바른 방법은 무엇입니까?

궁금해서 보안 부팅 기능이 있는 UEFI가 있는 랩탑에서 systemd-boot를 사용해 보고 있습니다. 기본 GRUB 설치가 제대로 작동합니다.

systemd-boot의 경우 대부분의 검색은 다음으로 이어집니다.이 페이지. 여기에는 systemd-boot를 설치하고 bootctl, 생성하고 loader.conf, 커널 postinst zz-update-systemd-boot스크립트를 생성하는 작업이 포함됩니다. systemd-boot에 커널에 액세스할 수 있는 ext4 fs 드라이버가 없는 이유를 이해하지 못하더라도 여기까지는 모든 것이 괜찮아 보입니다. 어쨌든 예상대로 보안 부팅으로 인해 부팅이 실패합니다.

이 페이지의 보안 부팅 섹션에는 PreLoader.efi& HashTool.efi설정이 있습니다. 단계를 수행한 후 시스템 부팅에 systemd-boot 메뉴가 표시되지만 Ubuntu를 선택하면 다음 오류가 발생합니다.

EFI stub: UEFI Secure Boot is enabled.

내가 아는 한, 이는 PreLoaderUEFI에서 허용되는 서명된 바이너리입니다. 그런 다음 해시가 등록된 loader.efi(이름이 변경된 systemd-bootx64.efi)을 로드합니다. 그러면 vmlinuz해시도 등록된 커널이 로드됩니다 . 따라서 보안 체인은 양호한 것으로 보이지만 부팅은 여전히 ​​실패합니다. 커널에 대한 Canonical의 서명은 여기서 역할을 하지 않는 것으로 보입니다.

이 작업을 수행하는 방법과 보안 측면을 올바르게 이해했습니까?

답변1

보안 부팅 옵션을 제외하고 참조한 페이지의 변형을 따랐습니다.

불행히도 일단 변경이 이루어지면 Ubuntu의 linux-generic, linux-headers-generic 및 linux-image-generic은 GRUB 설치를 고집합니다.게다가systemd-boot 설치를 수행하고 커널의 적절한 업데이트마다 GRUB를 기본 부팅 옵션으로 설정합니다.

결과적으로 상자는 다음 재부팅 시 더 이상 systemd-boot를 사용하여 부팅되지 않습니다. 따라서 필요한 것은 efibootmgr을 실행하여 "ubuntu"를 다시 사용하도록 부팅 순서를 재설정하는 최종 명령입니다.

이러한 번거로움을 방지하려면 Ubuntu의 linux-generic, linux-headers-generic 및 linux-image-generic DEB 패키지가 GRUB 중 하나를 허용하도록 구성해야 한다고 생각합니다.또는GRUB를 강제로 설치하는 대신 systemd-boot를 허용된 부트로더로 사용하세요.

관련 정보