i386 LVM Ubuntu 16インストールをUEFIに変換

i386 LVM Ubuntu 16インストールをUEFIに変換

UEFI専用NUCで実行できるように、Ubuntu 16の以前のLVMベースのBIOSインストールを変換しようとしています。私はこれのために旅行しました。

ブート回復 - 動作しない grub-install を使用した chroot が動作しない - 動作しない

多くの変化がありました。詳細は次のとおりです。

3つのパーティション:/dev/sda1 - Linuxイメージを含む現在の/bootパーティション、ext2 /dev/sda2 - LVMを使用する現在の/rootパーティション/dev/sda3 - FAT32を使用してフォーマットされた新しいEPSパーティション、起動フラグセット

ルートパーティションにchrootを試して、sda1を/boot、sda3を/boot/efiとしてインストールし、grub-installを使用しました。成功しましたが起動できません(例:これはまさにそうです)https://www.shellhacks.com/reinstall-grub-from-live-usb-uefi-lvm/)

質問:

  • 私のターゲットシステムはi386ですが、UEFI対応のx64ライブイメージのみを取得できます。これが問題になりますか?
  • 私のターゲットシステムのバージョンはライブバージョンと一致する必要がありますか?
  • /bootパーティションと/boot/efiパーティションの両方があっても問題になりますか?
  • 私のefiパーティションが最初のパーティションではない場合でも問題になりますか?
  • 正しく設定されたシステムがどのように見えるかをどうやって知ることができますか?

どのように動作させるための手がかりはありますか?私はこれに何時間も費やしました

修正する:私のUEFIファームウェアは64ビットのみをサポートし、起動しようとしているシステムは32ビットなので、これはほぼ確実です。すべてをアップグレードする予定なので、まずchrootマルチアーキテクチャのアップグレードを試して、64ビットgrub EFIで起動できることを確認します。

ベストアンサー1

さまざまなシステムアーキテクチャのさまざまなGRUBバージョンがあります。 BIOSベースのシステムでは、オペレーティングシステムにgrub-pcパッケージがインストールされていますgrub-pc-bin

GRUBのUEFIバージョンをインストールするにはパッケージをインストールする必要があり、UEFIファームウェアは64ビット(=通常はそうです)、またはgrub-efi-amd64UEFIファームウェアは32ビット(まれですが可能です)です。grub-efi-amd64-bingrub-efi-ia32grub-efi-ia32-bin

これリンクの説明元のバージョンと同じGRUBアーキテクチャのバージョンを再インストールするという基本的な前提があるようです。あなたの場合はそうではありません。コマンドに明示的にスキーマを指定する必要があるかもしれませんgrub-install

grub-install --force-extra-removable --target=x86_64-efi /dev/sda

これが/dev/sdaシステムディスクであると仮定します(必要に応じて調整)。

32ビットUEFIファームウェアがある場合は、このオプションを使用する必要があります--target=i386-efi

--force-extra-removableブートローダファイルの2番目のコピーをESPパーティションのリムーバブルメディア/バックアップの場所に配置することを示しますgrub-install。これにより、実際の場所でプログラミングのためにUEFIブート変数にアクセスできない場合、初期ブートプロセスを簡素化できます。grub-install

おすすめ記事