bootctl - EFI 펌웨어 부팅 설정 제어 및 부트 로더 관리
bootctl [OPTIONS...] {COMMAND}
bootctl은 EFI 펌웨어 및 부트 로더 상태를 확인하고, 사용 가능한 부트 로더 및 부트 로더 항목을 나열 및 관리하고, systemd-boot(7)를 설치, 업데이트 또는 제거할 수 있습니다. 현재 시스템의 부트 로더.
이러한 명령은 사용된 부트 로더에 관계없이 모든 EFI 시스템에서 사용할 수 있습니다.
시스템 펌웨어, 시스템을 부팅하는 데 사용된 부트 로더, ESP에서 현재 사용 가능한 부트 로더, 펌웨어의 부트 로더 목록에 나열된 부트 로더 및 현재 기본 부트 로더 항목에 대한 간략한 정보를 표시합니다. 명령을 지정하지 않으면 묵시적 기본값입니다.
출력에 대한 자세한 내용은 아래 예를 참조하십시오.
EFI 펌웨어의 "Reboot-Into-Firmware-Setup" 플래그를 쿼리하거나 설정합니다. 다음 시스템 재부팅 시 펌웨어 설정을 표시할지 여부를 제어하는 부울 인수를 사용합니다. 인수가 생략된 경우 플래그의 현재 상태 또는 플래그 지원 여부를 표시합니다. 이것은 systemctl reboot --firmware-setup과 동일한 플래그를 제어하지만 더 낮은 수준이며 실제로 재부팅을 요청하는 것과 독립적으로 플래그를 설정할 수 있습니다.
힌트: systemctl reboot --firmware-setup을 사용하여 펌웨어 설정으로 한 번 재부팅합니다. 자세한 내용은 systemctl(1)을 참조하세요.
선택적 인수 없이 호출하면 "SystemdOptions" EFI 변수의 현재 값을 인쇄합니다. 인수와 함께 호출하면 변수를 해당 값으로 설정합니다. 해당 변수의 의미는 systemd(1)를 참조하세요.
이러한 명령은 systemd-boot와 같은 부트 로더 사양[1]을 구현하는 모든 부트 로더에서 사용할 수 있습니다.
부트 로더 사양[1]을 구현하는 사용 가능한 모든 부트 로더 항목과 부트 로더 인터페이스[2를 구현하는 부트 로더가 발견하거나 자동으로 생성한 기타 항목을 표시합니다. ]. JSON 출력은 --json=로 요청할 수 있습니다.
출력에 대한 자세한 내용은 아래 예를 참조하십시오.
참조하는 파일을 포함하여 부트 로더 항목을 제거합니다. 단일 부트 로더 항목 ID 문자열 또는 glob 패턴을 인수로 사용합니다. kernel 또는 initrd와 같은 참조 파일은 참조하는 다른 항목이 없는 경우에만 제거됩니다.
항목 토큰에 속하지만 부트 로더 항목에서 참조되지 않는 ESP 및 XBOOTLDR 파티션에서 파일을 제거합니다.
이러한 명령은 systemd-boot와 같이 부트 로더 사양[1] 및 부트 로더 인터페이스[2]를 구현하는 모든 부트 로더에 사용할 수 있습니다. 강한>.
기본 부트 로더 항목을 설정합니다. 단일 부트 로더 항목 ID 문자열 또는 glob 패턴을 인수로 사용합니다. set-oneshot 명령은 다음 부팅에 대해서만 기본 항목을 설정하고 set-default는 이후의 모든 부팅에 대해 영구적으로 설정합니다.
bootctl list는 사용 가능한 부트 로더 항목과 해당 ID를 나열하는 데 사용할 수 있습니다.
또한 부트 로더 항목 ID는 @default, @oneshot 또는 @current 중 하나로 지정할 수 있습니다. 향후 모든 부팅에 대한 기본 부트 로더 항목, 다음 부팅에 대한 현재 기본 부트 로더 항목 및 현재 부팅된 부트 로더 항목. 이러한 특수 ID는 EFI 변수 LoaderEntryDefault, LoaderEntryOneShot 및 LoaderEntrySelected의 현재 값으로 확인됩니다. 부팅 로더 사양 을 참조하세요. [1] 자세한 내용은 이러한 특수 ID는 현재 부팅된 부트 로더 항목을 기본 선택으로 지속적으로 만들거나 다음 부팅을 위한 기본 부트 로더 항목을 향후 모든 부팅을 위한 기본 부트 로더 항목으로 업그레이드하는 빠른 방법으로 주로 유용하지만 사용할 수도 있습니다. 다른 작업에도.
@saved로 설정하면 선택한 항목이 부팅할 때마다 EFI 변수로 저장되고 다음에 부트로더가 시작될 때 자동으로 선택됩니다.
빈 문자열("")이 ID로 지정되면 해당 EFI 변수가 설정 해제됩니다.
힌트: systemctl reboot --boot-loader-entry=ID를 사용하여 특정 부팅 항목으로 재부팅하고 systemctl reboot --boot-loader-menu=<timeout 부트로더 메뉴로 한 번 재부팅합니다. 자세한 내용은 systemctl(1)을 참조하세요.
부트 로더 메뉴 제한 시간을 초 단위로 설정합니다. set-timeout-oneshot 명령은 다음 부팅에 대해서만 시간 제한을 설정합니다. 시간 범위 구문에 대한 자세한 내용은 systemd.time(7)을 참조하세요.
menu-hidden 또는 0으로 설정하면 메뉴가 표시되지 않고 기본 항목이 즉시 부팅되지만 menu-force로 설정하면 > 항상 메뉴를 표시하면서 시간 초과를 비활성화합니다. 빈 문자열("")이 지정되면 부트로더는 기본 메뉴 시간 제한으로 되돌아갑니다.
이러한 명령은 systemd-boot EFI 부트 로더를 관리하며 다른 부트 로더와 함께 작동하지 않습니다.
EFI 시스템 파티션에 systemd-boot를 설치합니다. systemd-boot의 사본은 EFI 기본/폴백 로더로 ESP/EFI/BOOT/BOOT*.EFI에 저장됩니다. 그런 다음 부트 로더가 펌웨어 부트 로더 목록의 맨 위에 추가됩니다.
사용 가능한 버전이 EFI 시스템 파티션에 설치된 버전보다 최신인 경우 systemd-boot(7)의 설치된 모든 버전을 업데이트합니다. 여기에는 ESP/EFI/BOOT/BOOT*.EFI에 있는 EFI 기본/폴백 로더도 포함됩니다. 그러면 부트 로더가 누락된 경우 펌웨어 부트 로더 목록 끝에 추가됩니다.
EFI 시스템 파티션과 펌웨어 부트 로더 목록에서 systemd-boot의 설치된 모든 버전을 제거합니다.
systemd-boot가 ESP에 설치되어 있는지 확인합니다. 단일 ESP는 여러 부트 로더를 호스팅할 수 있습니다. 따라서 이것은 systemd-boot가 설치된 부트 로더 중 하나(아마도 많은 것 중 하나)인지 확인하고 이것이 기본값인지 또는 EFI 변수에 등록되어 있는지 여부를 확인합니다.
임의의 시드를 생성하고 systemd-boot 부트 로더에서 사용할 수 있도록 EFI 시스템 파티션에 저장합니다. 또한 임의의 시스템 토큰을 생성하고 이전에 설정하지 않은 경우 EFI 변수로 영구적으로 저장합니다. 부트 로더가 ESP에서 임의 시드를 찾고 EFI 변수에서 시스템 토큰을 찾으면 OS에 전달할 임의 시드와 ESP에 저장할 새 시드를 둘의 조합에서 파생합니다. OS에 전달된 임의의 시드는 초기 부팅 중에 시스템 관리자가 커널 엔트로피 풀에 할당하고 초기에 완전히 초기화된 엔트로피 풀로 사용자 공간을 부팅할 수 있도록 합니다. systemd-boot-random-seed.service(8)도 참조하세요.
자세한 내용은 랜덤 시드[3]를 참조하세요.
커널 이미지를 인수로 사용합니다. 이미지가 어떤 종류의 커널인지 확인합니다. "uki", "pe" 및 "unknown" 중 하나를 반환합니다.
커널 이미지를 인수로 사용합니다. 이미지에 대한 세부 정보를 인쇄합니다.
다음 옵션이 이해됩니다.
EFI 시스템 파티션(ESP)의 경로입니다. 지정하지 않으면 /efi/, /boot/, /boot/efi/를 차례로 확인합니다. 가능하면 ESP를 /efi/에 마운트하는 것이 좋습니다.
부트 로더 사양[1]에 정의된 확장 부트 로더 파티션의 경로입니다. 지정하지 않으면 /boot/가 확인됩니다. 가능한 경우 확장 부트 로더 파티션을 /boot/에 마운트하는 것이 좋습니다.
디렉터리 경로를 인수로 사용합니다. 구성 검색 경로를 포함하여 모든 경로에는 주어진 대체 루트 경로가 접두사로 붙습니다.
디스크 이미지 파일 또는 블록 장치 노드에 대한 경로를 사용합니다. 지정된 경우 모든 작업이 표시된 디스크 이미지의 파일 시스템에 적용됩니다. 이 옵션은 --root=와 유사하지만 디스크 이미지 또는 블록 장치에 저장된 파일 시스템에서 작동합니다. 디스크 이미지는 검색 가능한 파티션 사양[4]에 따라 파일 시스템만 포함하거나 GPT 파티션 테이블 내의 파일 시스템 집합을 포함해야 합니다. 지원되는 디스크 이미지에 대한 자세한 내용은 같은 이름의 systemd-nspawn(1) 스위치를 참조하세요.
--root= 또는 --image=를 사용하여 바이너리를 설치할 때 소스를 가져올 위치를 선택합니다. "auto"(기본값), "image" 또는 "host" 중 하나를 사용합니다. "자동"을 사용하면 지정된 디렉토리 또는 이미지에서 바이너리가 선택되고, 발견되지 않으면 호스트에서 선택됩니다. "이미지" 또는 "호스트"를 사용하면 선택한 소스에서 바이너리를 찾을 수 없는 경우 대체 검색이 수행되지 않습니다.
이 옵션은 상태의 동작을 수정합니다. EFI 시스템 파티션(ESP)의 경로만 표준 출력으로 출력하고 종료합니다.
이 옵션은 상태의 동작을 수정합니다. 확장 부트 로더 파티션이 있는 경우에만 경로를 인쇄하고 그렇지 않은 경우 ESP의 경로를 표준 출력 및 종료로 인쇄합니다. 이 명령은 부트 로더 항목이 있는 경우 확장 부트 로더 파티션에 배치되고 그렇지 않으면 ESP에 배치되는 것이 바람직하기 때문에 부트 로더 항목을 배치할 위치를 결정하는 데 유용합니다.
부트 로더 사양 유형 #1 항목은 일반적으로 "$ (bootctl -x)/loader/entries/" 디렉토리에 있어야 합니다. 해당 디렉토리의 존재는 부트 로더 항목 지원이 시스템에서 사용 가능하다는 표시로 사용될 수도 있습니다. 마찬가지로 부트 로더 사양 유형 #2 항목은 "$ (bootctl -x)/EFI/Linux/" 디렉토리에 있어야 합니다.
이 옵션(위에서 언급한 --print-booth-path 옵션과 유사)은 사용된 부트 로더와 독립적으로 사용할 수 있습니다. 설치되었습니다.
EFI 변수에 저장된 펌웨어 부트로더 목록을 건드리지 마십시오.
EFI 시스템 파티션을 찾을 수 없거나 EFI 변수를 쓸 수 없거나 다른 부트 로더 또는 최신 부트 로더가 이미 설치된 경우 오류를 무시하십시오. 현재 is-installed, update 및 random-seed 동사에만 적용됩니다.
다양한 명령의 결과 및 ESP를 사용할 수 없다는 힌트의 인쇄를 억제합니다.
부팅 로더 사양[1] 설치 및 제거 동안 커널 및 initrd 이미지와 같은 리소스를 포함하는 파일 시스템의 유형 #1 항목 디렉토리의 생성 및 삭제를 제어합니다. , 각각. 디렉토리는 아래에 설명된 --entry-token= 매개변수로 지정된 대로 항목 토큰의 이름을 따서 지정되며 $BOOT 루트 디렉토리 바로 아래(즉, --print-boot-path 옵션에 의해 반환된 파일 시스템, 위 참조). 기본값은 "아니오"입니다.
이 OS 설치에 대한 부트 로더 항목의 이름을 지정하고 식별하는 방법을 제어합니다. 설치 중에 허용되며 "auto", "machine-id", "os-id", "os-image-id" 또는 접두사 "literal:"이 붙은 임의의 문자열 중 하나를 인수로 사용합니다. .
machine-id로 설정하면 실행 중인 시스템의 컴퓨터 ID를 따라 항목 이름이 지정됩니다(예: "b0e793a9baf14b5fa13ecbe84ff637ac"). 컴퓨터 ID 개념 및 파일에 대한 자세한 내용은 machine-id(5)를 참조하세요.
os-id로 설정하면 실행 중인 시스템의 OS ID, 즉 os-release의 ID= 필드에 따라 항목 이름이 지정됩니다( 5) (예: "페도라"). 마찬가지로 os-image-id로 설정하면 실행 중인 시스템의 OS 이미지 ID, 즉 os-release의 IMAGE_ID= 필드(예: " vendorx-캐셔-시스템').
auto(기본값)로 설정하면 /etc/kernel/entry-token 파일이 있으면 읽고 저장된 값을 사용합니다. 그렇지 않으면 로컬 컴퓨터 ID가 초기화되면 사용됩니다. 그렇지 않으면 설정된 경우 os-release의 IMAGE_ID=이 사용됩니다. 그렇지 않으면 os-release의 ID=가 사용됩니다(설정된 경우).
"machine-id"로 설정하지 않거나 --make-entry-directory=yes를 사용하는 경우 선택한 토큰 문자열이 /etc/kernel/entry-token 파일에 기록되어 이를 확인합니다. 향후 항목에 사용됩니다. 이 파일은 또한 kernel-install(8)에 의해 읽히는데, 새로 설치된 커널에 대한 부트 로더 항목을 생성할 이름을 식별하거나 이전 커널을 제거하기 위한 항목 이름을 결정하기 위해서입니다.
항목 이름을 지정하기 위해 컴퓨터 ID를 사용하는 것이 일반적으로 바람직하지만 다른 식별자를 사용하는 것이 좋은 옵션인 경우도 있습니다. 특히: 컴퓨터 ID가 수반하는 식별 데이터가 (암호화되지 않은) $BOOT 파티션에 저장되지 않아야 하거나 ID가 처음 부팅 시 생성되어야 하고 항목이 준비될 때 알 수 없는 경우 . 컴퓨터 ID를 사용하면 동일한 OS의 여러 병렬 설치가 동일한 미디어에 공존할 수 있고 부트 로더 항목을 독립적으로 업데이트할 수 있다는 이점이 있습니다. 다른 식별자(예: OS ID 또는 OS 이미지 ID)를 사용하는 경우 동일한 OS의 병렬 설치는 동일한 항목 이름을 사용하려고 합니다. 병렬 설치를 지원하려면 설치 프로그램이 두 번째 설치를 추가할 때 다른 항목 토큰을 사용해야 합니다.
지원되는 모든 EFI 아키텍처용 바이너리를 설치합니다(--no-variables를 의미함).
기본 항목 이름인 "Linux Boot Manager"를 사용하는 것이 일반적으로 단일 ESP 파티션에 설치된 하나의 부트로더만 사용하여 시스템에 설치된 다양한 디스크에 있는 여러 OS 설치를 부팅하는 데 사용해야 합니다. 특히 배포판은 부팅 옵션 목록에 브랜드 항목을 설치하기 위해 이 플래그를 사용해서는 안 됩니다. 그러나 각각 자체 ESP 파티션이 있는 여러 개의 디스크가 있는 상황에서는 펌웨어 부팅 옵션 메뉴에서 사용 중인 부트로더를 쉽게 식별할 수 있도록 하는 것이 좋습니다.
--unlink 및 --cleanup에 대한 테스트 실행.
테스트 실행 모드에서 연결 해제 및 정리 작업은 실제로 파일을 삭제하지 않고 삭제될 파일만 인쇄합니다.
출력을 호출기로 파이프하지 마십시오.
JSON 형식의 출력을 표시합니다. "short"(중복 공백이나 줄 바꿈 없이 가능한 가장 짧은 출력), "pretty"(들여쓰기 및 줄 바꿈이 있는 동일한 버전의 경우) 또는 "off"(JSON 출력 끄기) 중 하나를 예상합니다. 기본값).
짧은 도움말 텍스트를 인쇄하고 종료합니다.
짧은 버전 문자열을 출력하고 종료합니다.
bootctl install 및 update는 ".efi.signed" 접미사로 끝나는 systemd-boot 파일을 찾습니다. 먼저 일반 ".efi" 파일 대신 복사합니다. 이를 통해 배포판 또는 최종 사용자는 UEFI SecureBoot에 대해 서명된 이미지를 제공할 수 있습니다.
성공하면 0이 반환되고 그렇지 않으면 0이 아닌 실패 코드가 반환됩니다.
$SYSTEMD_RELAX_ESP_CHECKS=1이 설정되면 ESP에 대한 유효성 검사가 완화되고 --esp-path=로 지정된 경로는 모든 종류의 파일 시스템을 참조할 수 있습니다. 어떤 종류의 파티션.
마찬가지로 $SYSTEMD_RELAX_XBOOTLDR_CHECKS=1은 확장 부트 로더 파티션에 대한 일부 유효성 검사를 끕니다.
예 1. 상태 및 목록의 출력
$ bootctl status System: Firmware: UEFI 2.40 (firmware-version) ← firmware vendor and version Secure Boot: disabled (setup) ← Secure Boot status TPM2 Support: yes Boot into FW: supported ← does the firmware support booting into itself Current Boot Loader: ← details about sd-boot or another boot loader Product: systemd-boot version implementing the Boot Loader Interface[2] Features: ✓ Boot counting ✓ Menu timeout control ✓ One-shot menu timeout control ✓ Default entry control ✓ One-shot entry control ✓ Support for XBOOTLDR partition ✓ Support for passing random seed to OS ✓ Load drop-in drivers ✓ Boot loader sets ESP information ESP: /dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000 File: └─/EFI/systemd/systemd-bootx64.efi Random Seed: ← random seed used for entropy in early boot Passed to OS: yes System Token: set Exists: yes Available Boot Loaders on ESP: ESP: /boot/efi (/dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000) File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 251 File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 251 Boot Loaders Listed in EFI Variables: Title: Linux Boot Manager ID: 0x0001 Status: active, boot-order Partition: /dev/disk/by-partuuid/... File: └─/EFI/systemd/systemd-bootx64.efi Title: Fedora ID: 0x0000 Status: active, boot-order Partition: /dev/disk/by-partuuid/... File: └─/EFI/fedora/shimx64.efi Title: Linux-Firmware-Updater ID: 0x0002 Status: active, boot-order Partition: /dev/disk/by-partuuid/... File: └─/EFI/fedora/fwupdx64.efi Boot Loader Entries: $BOOT: /boot/efi (/dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000) Default Boot Loader Entry: type: Boot Loader Specification Type #1 (.conf) title: Fedora Linux 36 (Workstation Edition) id: ... source: /boot/efi/loader/entries/entry-token-kernel-version.conf version: kernel-version machine-id: ... linux: /entry-token/kernel-version/linux initrd: /entry-token/kernel-version/initrd options: root=...
$ bootctl list Boot Loader Entries: type: Boot Loader Specification Type #1 (.conf) title: Fedora Linux 36 (Workstation Edition) (default) (selected) id: ... source: /boot/efi/loader/entries/entry-token-kernel-version.conf version: kernel-version machine-id: ... linux: /entry-token/kernel-version/linux initrd: /entry-token/kernel-version/initrd options: root=... type: Boot Loader Specification Type #2 (.efi) title: Fedora Linux 35 (Workstation Edition) id: ... source: /boot/efi/EFI/Linux/fedora-kernel-version.efi version: kernel-version machine-id: ... linux: /EFI/Linux/fedora-kernel-version.efi options: root=... type: Automatic title: Reboot Into Firmware Interface id: auto-reboot-to-firmware-setup source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
목록에서 "(기본값)"은 기본적으로 사용될 항목을 지정하고 "(선택됨)"은 마지막으로 선택된 항목(즉, 현재 실행 중인 항목)을 지정합니다.
systemd-boot(7), Boot Loader Specification[1], Boot Loader Interface[2], systemd-boot-random-seed.service(8)
부트로더 사양: https://uapi-group.org/specifications/specs/boot_loader_specification
부트로더 인터페이스: https://systemd.io/BOOT_LOADER_INTERFACE
무작위 시드: https://systemd.io/RANDOM_SEEDS
검색 가능한 파티션 사양: https://uapi-group.org/specifications/specs/discoverable_partitions_specification