「bootctl status」表示オプションは使用できません。

「bootctl status」表示オプションは使用できません。

(2) Linux Mint 20.1 システム(一般ハードウェア 1 個、VMware VM 1 個)を保有します。どちらもインストール/設定しましたが、systemd-bootそれぞれに利用可能な設定が異なります。これまでに指摘できる唯一の違いは、通常のハードウェアシステムからGRUBを削除したことです。

既存のハードウェア

System:
     Firmware: n/a (n/a)
  Secure Boot: disabled
   Setup Mode: user

Current Boot Loader:
      Product: n/a
     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
               ✗ Boot loader sets ESP partition information
          ESP: n/a
         File: └─n/a

Random Seed:
 Passed to OS: no
 System Token: not set
       Exists: yes

Available Boot Loaders on ESP:
          ESP: /boot/efi (/dev/disk/by-partuuid/82492fa6-1969-4569-851b-269909138b7b)
         File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 245.4-4ubuntu3.4)
         File: └─/EFI/BOOT/bootx64.efi (systemd-boot 245.4-4ubuntu3.4)

Boot Loaders Listed in EFI Variables:
        Title: Linux Boot Manager
           ID: 0x0000
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/82492fa6-1969-4569-851b-269909138b7b
         File: └─/EFI/systemd/systemd-bootx64.efi

Boot Loader Entries:
        $BOOT: /boot/efi (/dev/disk/by-partuuid/82492fa6-1969-4569-851b-269909138b7b)

Default Boot Loader Entry:
        title: Linux Mint XFCE 5.4.0-65-generic
           id: linuxmint.conf
       source: /boot/efi/loader/entries/linuxmint.conf
        linux: /linuxmint/vmlinuz
       initrd: /linuxmint/initrd.img
      options: root=UUID=408c53a0-e8d0-417f-8281-eb0eea0a2318 rw rootflags=subvol=@ iommu=pt

仮想デバイス

System:
     Firmware: UEFI 2.31 (VMware, Inc. 1.00)
  Secure Boot: disabled
   Setup Mode: user

Current Boot Loader:
      Product: systemd-boot 245.4-4ubuntu3.4
     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
               ✓ Boot loader sets ESP partition information
          ESP: /dev/disk/by-partuuid/0a3b1b4f-28e9-44ae-a15e-629a3242f8a6
         File: └─/EFI/systemd/systemd-bootx64.efi

Random Seed:
 Passed to OS: no
 System Token: not set
       Exists: yes

Available Boot Loaders on ESP:
          ESP: /boot/efi (/dev/disk/by-partuuid/0a3b1b4f-28e9-44ae-a15e-629a3242f8a6)
         File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 245.4-4ubuntu3.4)
         File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 245.4-4ubuntu3.4)

Boot Loaders Listed in EFI Variables:
        Title: Linux Boot Manager
           ID: 0x0005
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/0a3b1b4f-28e9-44ae-a15e-629a3242f8a6
         File: └─/EFI/systemd/systemd-bootx64.efi

        Title: ubuntu
           ID: 0x0004
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/0a3b1b4f-28e9-44ae-a15e-629a3242f8a6
         File: └─/EFI/ubuntu/shimx64.efi

Boot Loader Entries:
        $BOOT: /boot/efi (/dev/disk/by-partuuid/0a3b1b4f-28e9-44ae-a15e-629a3242f8a6)

Default Boot Loader Entry:
        title: Linux Mint XFCE 5.4.0-65-generic
           id: linuxmint.conf
       source: /boot/efi/loader/entries/linuxmint.conf
        linux: /linuxmint/vmlinuz
       initrd: /linuxmint/initrd.img
      options: root=UUID=c15f5a73-6120-4cfd-81ef-c5891e4dbdf6 rw rootflags=subvol=@

削除してはいけない項目を削除したようですが、GRUBを再利用したくありません(パッケージがアップグレードされた後、以前に一度これを行ったことがあります)。

アップデート#1:仮想マシンからGRUBパッケージを削除し、そのパッケージの/boot/efiがプライマリシステムと同じ(バイナリ)ファイルを持っていることを確認しました。それでも上記のエラーが発生します。

アップデート:2:結果sudo efibootmgr -v

No BootOrder is set; firmware will attempt recovery

アップデート3:結果efivar -l

7b59104a-c00d-4158-87ff-f04d6396a915-SecureBootSetup
77fa9abd-0359-4d32-bd60-28f4e78f784b-Kernel_EntRevokeSiStatus
77fa9abd-0359-4d32-bd60-28f4e78f784b-Kernel_ATPSiStatus
77fa9abd-0359-4d32-bd60-28f4e78f784b-Kernel_WinSiStatus
77fa9abd-0359-4d32-bd60-28f4e78f784b-Kernel_SkuSiStatus
77fa9abd-0359-4d32-bd60-28f4e78f784b-Kernel_RvkSiStatus
77fa9abd-0359-4d32-bd60-28f4e78f784b-Kernel_SiStatus
77fa9abd-0359-4d32-bd60-28f4e78f784b-CurrentPolicy
8be4df61-93ca-11d2-aa0d-00e098032b8c-ConIn
8be4df61-93ca-11d2-aa0d-00e098032b8c-ConOut
97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6-DeploymentModeNv
4599d26f-1a11-49b8-b91f-858745cff824-StdDefaults

答え1

bootctl「一般ハードウェア」システムのコマンドでは、システムが使用中であることを確認できないようですsystemd-boot。これは、システムのUEFIファームウェアにバグや問題があるか、システムがまだ実際に起動していないためですsystemd-boot

「一般ハードウェア」システムで実行し、efibootmgr -v元の投稿に出力を追加します。これにより、UEFIブート変数の実際の内容が表示されます。単に分析するよりも生データを見ると、bootctl何が起こっているのかについてのより多くの手がかりを提供できます。


という変数がないようです8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot*。すべてのUEFIブート変数がクリアされたのと同じです。これは、現在ブートローダが不確実に見える理由を明確に説明しています。ファームウェアが現在システムを起動する方法を記録する起動変数がbootctl status見つかりません。8be4df61-93ca-11d2-aa0d-00e098032b8c-BootCurrent

GRUBを削除すると、すべてのブート変数が削除された場合、これはバグになる可能性があります。これは、他のブートローダに対する不必要に反社会的な動作です。あるいは、UEFIファームウェアのバグかもしれません。一部のベンダーのUEFIファームウェアの実装では、存在しなくなったディスクまたはパーティションを参照するすべてのブート変数を自動的に消去します。しかし、この問題は整理に少し過度に熱心なものかもしれません。 (システムファームウェアアップデートでこの問題を解決することもできます。)

UEFIブート変数がないため、ファームウェアはファームウェアプログラマーだけが既知の順序で見つけることができるすべてのディスク上のESPパーティションを見つけようとします。これが見つかったら/EFI/BOOT/BOOTX64.EFI(ESPパーティションのルートと比較して、Mintではフルパス/boot/efi/EFI/BOOT/BOOTX64.EFI)、それを使用してシステムを起動します。リムーバブルメディアでは、ファームウェアが認識するファイルシステムがあれば、/EFI/BOOT/BOOTX64.EFIそのメディアから起動するのに十分です。

/boot/efiESPパーティション(ファイルシステムなど)を含むディスクは、/dev/sda次のコマンドを実行する必要があります。

sudo efibootmgr -b 0000 -c -d /dev/sda -l \\EFI\\systemd\\systemd-bootx64.efi -L "Linux Mint"

これにより8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot0000ブート変数が作成され、systemd-bootx64.efiブートローダを正しく指す必要があります。また、起動オプションに人間が読める「Linux Mint」という名前を付けます。ファームウェアブート設定で見ることができます(「BIOS設定」として知られています)。

また、自動的に8be4df61-93ca-11d2-aa0d-00e098032b8c-BootOrder変数を作成し、ブートオプション0000(上記で作成した変数)を現在の最初で唯一のアクティブブートオプションとして作成する必要があります。

addを使用しているときにブート変数が「固定」されないような場合は、efibootmgrシステムに奇妙なUEFIファームウェアが必要です。各ベンダーの最初のUEFI実装には、後で修正されるバグがあることがよくあります。 「一般的なハードウェア」システムが新しいものではない場合、以前のUEFI実装の1つがまだ存在する可能性があります。ファームウェア設定メニューからUEFIブートローダパスを追加できることを確認できます。これにより、ファームウェアがで作成したすべての起動変数を拒否する不明な条件が満たされる可能性がありますefibootmgr

この場合、以下を読むこともできます。Roderick W. Smithの「ブートハッキング」ページ- 主にrEFIndブートローダを念頭に置いて書かれていますが、さまざまなUEFIファームウェアの問題と利用可能な解決策をよく説明しています。

関連情報