systemd-boot는 부팅 메뉴를 건너뛰고 /loader/loader.conf의 설정을 무시합니다.

systemd-boot는 부팅 메뉴를 건너뛰고 /loader/loader.conf의 설정을 무시합니다.

최근에 다중 부팅 시스템으로 몇 가지 작업을 수행한 후 다음을 사용하여 NixOS를 부팅하면 systemd-boot부팅 메뉴가 더 이상 표시되지 않습니다 /loader/loader.conf.

# /loader/loader.conf on the ESP
timeout 2
default nixos-generation-380

이 내 꺼야 /etc/nixos/configuration.nix:

{ # ...
  boot.loader = {
    efi.canTouchEfiVariables = true;
    systemd-boot.enable = true;
    timeout = 2;
  };
}

부팅 메뉴를 보려면 마치 시간 제한이 2초가 아닌 0초로 설정된 것처럼 부팅 중에 키를 눌러야 한다는 사실이 밝혀졌습니다.

systemd-bootx64.efiUSB 플래시 드라이브를 사용하여 ESP에서 nixos-installNixOS를 제거하고 다시 설치해 보았습니다 . 복원되었지만 systemd-bootx64.efi부팅 메뉴는 복원되지 않았습니다.

이 문제는 전혀 드문 일이 아닌 것 같습니다.

두 문제 모두 해결된 것으로 알려졌습니다. 그러나 첫 번째 해결책을 이해하지 못합니다.

편집 3: 해결되었습니다! UEFI를 다시 설치하기만 하면 됩니다.

"UEFI 재설치"는 무엇을 의미합니까?

두 번째는 부팅 메뉴에서 tShift+ 키 t(부팅 중에 키를 누르면 표시됨)를 사용하여 다른 시간 초과를 설정하는 것을 제안하지만 다른 시간 초과만 원하지는 않습니다. systemd-boot존중 하고 싶습니다. /loader/loader.conf의 설정

제 질문은 이렇습니다. systemd-boot설정을 다시 어떻게 사용 합니까 /loader/loader.conf?

해결책을 찾은 후 이 질문을 편집하고 이제 답변을 게시하겠습니다.

답변1

읽고 나서댓글 #6존재하다"systemd-boot, 시간 초과 없음, 선택 메뉴 없음 - LoaderEntryDefault"그리고 보았다"systemd-boot는 /boot/loader/loader.conf의 기본값을 재정의하는 efivar LoaderEntryDefault를 설정합니다." nixpkgsGitHub의 문제, 어떻게든 설정되고 재정의된 EFI 변수로 인해 문제가 발생할 수 있음을 발견했습니다 /loader/loader.conf.

실제로 다음 두 가지 변수 설정으로 인해 문제가 발생합니다.

§ cat /sys/firmware/efi/efivars/LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
0

그리고

§ cat /sys/firmware/efi/efivars/LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
nixos-generation-374

(여기서 " " 값을 만들어냈습니다 374. 중요한 것은 /loader/loader.conf제가 확인했을 때와 다르다는 것입니다.)

사용된 EFI 변수 목록은 systemd-boot끝부분에서 확인할 수 있습니다."systemd-boot UEFI 부팅 관리자"페이지에서무료 데스크탑 위키:

LoaderEntryDefault      entry identifier to select as default at bootup                  non-volatile
LoaderConfigTimeout     timeout in seconds to show the menu                              non-volatile
LoaderEntryOneShot      entry identifier to select at the next and only the next bootup  non-volatile
LoaderDeviceIdentifier  list of identifiers of the volume the loader was started from    volatile
LoaderDevicePartUUID    partition GPT UUID of the ESP systemd-boot was executed from     volatile

변수를 삭제하려면 LoaderEntryDefault-[...]부팅 메뉴에서 키를 두 번 누르기만 하면 됩니다 d. 즉, 새 값을 설정하거나 설정 해제하면 됩니다.

변수를 삭제하려면 시간 초과를 으로 설정할 만큼 +를 여러 번 누르고 한 번 더 누르는 것으로 LoaderConfigTimeout-[...]충분합니다 .Shiftt0

이것은 내 문제를 해결했습니다. 여기에 관련이 있습니다질문EFI 변수를 안전하게 수정하는 방법에 대해 Superuser.SE에 일반적인 질문을 했습니다.

관련 정보