UEFI NVRAM에 Grub Entry를 추가하는 bash 스크립트를 작성했습니다. 스크립트는 부팅 가능한 USB Linux에 의해 호출됩니다. 이 명령은 다음 항목을 추가합니다.
efibootmgr -c -d /dev/sda -p 2 -L "Grub2" -l "\EFI\Boot\shimx64.efi"
스크립트가 제대로 작동합니다. 하지만 나중에 Partclone 이미지에서 Windows를 설치했습니다.
Windows는 부팅 순서를 덮어쓰고 새 항목을 추가합니다. Windows 로딩 중에 발생합니다. 재부팅 후 Grub2가 사라집니다.
준비된 이미지(partclone으로 제작)가 있으므로 Windows(bcdedit bootmgr)에서 변경하고 싶지 않습니다.
UEFI NVRAM에 대한 Windows 액세스를 비활성화할 수 있습니까? Windows 부팅 관리자 없이 Grub EFI(보안 부팅)에서 Windows를 실행할 수 있습니다(winload.efi를 직접 의미합니다).
어떤 생각이 있나요?
답변1
Windows가 NVRAM에 쓰고 EFI 변수를 수정하는 것을 방지하는 방법을 모르겠습니다. 그러나 당신이 할 수 있는 다른 일이 있습니다....
내 답변 보기이 질문도움이 될 수 있는 몇 가지 도구에 대해 알아보세요. bcdedit
이 점에서 유용할 가능성이 가장 높습니다. 시도해 볼 수도 있습니다.EasyUEFI, 이전 응답을 작성할 때 사용하지 않은 것입니다.
또 다른 옵션은 원하는 부팅 구성을 자동으로 복원하는 시스템 시작 및/또는 종료 스크립트를 만드는 것입니다. Windows에서 이를 사용하겠지만 bcdedit
세부 정보를 제공하기에는 Windows 사용자가 충분하지 않습니다. Linux가 범인이 아니기 때문에 Linux에서 이 작업을 수행할 필요는 없습니다. 하지만 그렇다면 다음을 사용할 수 있습니다 efibootmgr
. 또는 다소 가벼운 터치를 위해 다음을 사용할 수 있습니다.refind-mkdefault
rEFInd의 다음 버전에 추가할 스크립트입니다. 기본적으로 이 스크립트는 rEFInd를 기본 부팅 프로그램으로 설정하지만 옵션을 통해 다른 도구의 이름(파일 이름 또는 설명)을 전달하면 -L
스크립트가 이를 기본값으로 대신 설정합니다.
최악의 시나리오에서는 Windows 부트 로더 파일( EFI\Microsoft\Boot\bootmgfw.efi
ESP에 있음)의 이름을 바꾸거나 다른 파일로 이동하고 GRUB 복사본과 함께 Shim을 그 자리에 넣을 수 있습니다. 그러면 Windows 부트 로더 대신 GRUB가 시작됩니다. 하지만 Windows 부트 로더를 올바르게 시작하려면 GRUB 설정을 재구성해야 합니다. 그만큼부츠 수리도구는 이 작업을 자동으로 수행할 수 있습니다. 이 옵션은 고급 메뉴에 있으며 "Windows 부팅 파일 백업 및 교체"라는 문구를 따라 호출됩니다(정확한 이름은 기억나지 않습니다). 이 접근 방식의 가장 큰 단점은 Windows가 부트 로더를 업데이트하는 경우 이 수정 사항을 다시 적용해야 한다는 것입니다. 혼란스럽기도 합니다. 디스크 파일 이름과 NVRAM 부팅 항목이 잘못되어 향후 복구가 복잡해질 수 있습니다.