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-amd64
UEFIファームウェアは32ビット(まれですが可能です)です。grub-efi-amd64-bin
grub-efi-ia32
grub-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