grub-install은 올바른 모듈로 EFI 바이너리를 생성하지 않습니다.

grub-install은 올바른 모듈로 EFI 바이너리를 생성하지 않습니다.

KDE Neon 시스템에서 전체 디스크 암호화를 설정하려고 합니다(물론 다음과 같습니다).아치 위키 가이드 이 주제에 대해). 설정에 대한 일부 관련 정보:

  • 시스템에는 두 개의 최상위 볼륨이 있습니다.
    • ESP와 마찬가지로 EFI 시스템 파티션
    • 를 포함한 전체 시스템을 호스팅하기 위해 LVM이 중첩된 LUKS2 볼륨 /boot.
  • 시스템은 제한된 LUKS2 지원을 포함하는 GRUB 2.06을 사용합니다. LUKS2 볼륨은 이 GRUB 버전과 호환되도록 설정되었습니다.
  • 보안 부팅은 현재 비활성화되어 있지만 나중에 활성화될 수 있습니다.

다음 지침에 따르면 기본적으로 예상대로 작동하는 시스템이 있습니다. GRUB는 드라이브 암호를 요청하고 올바른 암호가 입력되면 부팅 순서를 완료하고 운영 체제를 로드하여 사용 가능한 그래픽 세션으로 부팅합니다.

내 유일한 문제는 런타임 시 grub-install(사용자가 수동으로 또는 aptGRUB 업데이트가 설치될 때 자동으로) 이 설정을 지원하기 위해 만든 GRUB 수동 EFI 바이너리가 다음을 수행하는 EFI 바이너리로 덮어쓰여진다는 것입니다. 지원됩니다(구체적으로 위에 링크된 후자의 Arch Wiki 기사에서 언급했듯이 모듈이 없습니다 luks2). 올바른 GRUB 바이너리를 다시 빌드하고 설치하는 스크립트를 가질 수 있고 실제로는 있지만 grub-install처음에는 이 바이너리를 올바르게 빌드 하고 싶습니다 . ESP에 저장된 EFI 바이너리를 제어하는 ​​데 사용할 수 있는 일종의 후크가 있습니까?

답변1

다음을 사용하여 dpkg-divert패키지 관리자에게 패키지를 grub-install비표준 위치로 이동하도록 지시할 수 있습니다.

dpkg-divert --local --rename --add /usr/sbin/grub-install

grub-install이는 으로 이동되며 /usr/sbin/grub-install.divert, 패키지 관리자가 GRUB를 업데이트할 때마다 업데이트된 파일이 변경된 위치에 배치됩니다. 이렇게 하면 래퍼 스크립트를 /usr/sbin/grub-install.

grub-install사용자 정의 옵션을 사용하여 호출만 하면 된다고 가정하면 --modules=래퍼 스크립트는 다음과 같습니다.

#!/bin/sh
/usr/sbin/grub-install.divert --modules=<your custom set of modules here> "$@"

grub-install패키지가 중간에 업데이트될 때 사용자 정의 옵션(또는 귀하의 사례에 필요한 모든 것)이 자동화에 주입되도록 허용하는 패키지 구성 설정 추가를 제안하기 위해 "위시리스트" 우선순위 버그 보고서를 제출할 수도 있습니다.

이것이 너무 복잡하다고 생각되면 패키지 구성 옵션을 사용하여 grub-install패키지 업데이트의 자동 실행을 비활성화하는 것도 대안이 될 수 있습니다. automatic 의 동작을 수정하는 debconf 옵션 grub2/force_efi_extra_removable(default=false) 및 (default=true) 이 이미 있으므로 선례가 있습니다.grub2/update_nvramgrub-install

관련 정보