オペレーティングシステムを複製すると、GRUBは起動用に別のパーティションを選択した場合でも常にソースsda1パーティションから起動します。

オペレーティングシステムを複製すると、GRUBは起動用に別のパーティションを選択した場合でも常にソースsda1パーティションから起動します。

/sda/私は、2つのディスク、ハードドライブ、および新しいソリッドステートドライブでDebian 9 2個、Debian 11 1個、Windows 10 1個を実行する必要があるノートブックを持っています/nvme0n1/

私はgpartedを使って/sda1/Debian 9をSDDに複製して拡張しました/nvme0n1p5/

/nvme0n1p5/GRUB2(4つのオペレーティングシステムをすべて認識)を使用してDebian 9()を起動すると、常に/sda1/レガシー起動モードでソースパーティションが起動します。 Debian 11は起動時にインストールされ/sda5/ます/nvme0n1p1/

最新のSSDは/nvme0n1/パーティショニングにGPTを使用しますが、HDDはまだMBRを使用します。

ソースパーティションを複製した後、grub2をgrub-efi-amd64として再インストールし、それに合わせてgrub-pcを削除する必要がありました。UEFIデュアルブート/マルチブートここで提案されているように

マシンからソースパーティションを持つHDDを削除し、GRUBがどのように反応するかを確認しませんでしたが、必要はありません。


編集1

新しいUUIDを提供し、GRUBを更新しようとしましたが、/nvme0n1p5/問題は解決されませんでした。

その後、ハードドライブを取り外し、何が起こるかを確認しました。結果を第4図に示す。 Windows Open が/nvme0n1p1/表示されなくなりました。/sda1/またはで起動できません/nvme0n1p5/。最初のものが予想されます。 2番目はそうではありません。


SDAパーティション

nvme0n1パーティション

GRUB2 ブート

ハードディスクなしのGRUB2

ベストアンサー1

UnixとLinux StackExchangeへようこそ!

私はDebian 9ブートオプションがあなたが説明したように動作するいくつかの考えられる理由を考えることができます。

Debian 11 GRUBの写真には、GRUBのUEFIバージョンが正常に起動したことを示す「システム設定」ブートオプションがあると表示されます。また、WindowsはGPTフォーマットディスクから正しく起動できますが、これはUEFIモードでのみ発生する可能性があると述べました。

GRUBが独自にUEFIからレガシーモードに切り替えることはできないと思います。したがって、「常にレガシー起動モードを使用してDebian 9を起動しますsda1」という症状は、UEFIバージョンのGRUBがDebian 9カーネルを起動しようとしたときに失敗したことを意味します。システムファームウェアは、実行する操作を1つのステップとして決定します。試すことができる他の有効なUEFIブートオプションがない場合は、従来のブートオプションを試し始め、最終的に起動可能なMBRを見つけ、sdaGRUBのBIOSバージョンを起動し、最終的にはDebian 9を起動しますsda1

Debian 9インストールを複製するときにnvme0n1p5ファイルシステムのUUIDを変更しましたか?同じUUIDを持つ2つのファイルシステムがあり、ファームウェアがUEFIモードのNVMeからのみ起動できる場合、これはDebian 9のUEFIモードの起動に失敗しますが、レガシーモードが機能する理由を説明できます。 UEFIモードのブートローダは両方を見ることができます。 Debian 9のルートファイルシステムに期待されているのと同じUUIDであり、レガシーモードのブートローダでのみ表示されますsda1

Linuxカーネルが起動すると、起動モードに関係なく独自にNVMeドライブをサポートするため、誤ってレガシー起動モードにある以外は異常な症状が発生しません。

もう1つの可能性は、Debian 9が32ビット版でインストールされていることです。レガシーモードの起動16ビットモード(!)で起動し、レガシーモードの起動でカーネルの最初の操作の1つは、互換性機能を無効にしてプロセッサの32ビットおよび64ビット機能を表示することです。ただし、UEFIはデフォルトの64ビットモードで起動し、32ビットカーネルの起動を許可するかどうかはわかりません。 32ビットUEFIが64ビットカーネルを起動できることを知っていますが、その逆がサポートされているかどうかはわかりません。 32ビットカーネルのロード試行がUEFI GRUBの起動に失敗した場合、ファームウェアはレガシーモードの起動を試みて最終的にsda1

Debianは、セキュアブートを有効にした場合、Debian 10以降でのみセキュアブート互換性を実装します。 (もちろん、セキュアブートを有効にしたと主張してから、UEFIブートが失敗した場合、スムーズにレガシーBIOSブートに戻ることはそれほど安全ではありません...)

したがって、Debian 9 の UEFI ブートが失敗する理由に関する追加情報が必要です。最初にできることは、スプラッシュ画面を一時的に無効にし、詳細な起動メッセージを有効にすることです。 GRUBブートメニューのハイライトを「Debian 9 on nvme0n1p5」ブートオプションに移動し、(非永続)キーブートEエントリを編集します。多くの行が表示されます。次の単語で始まる行を見つけます。

linux /boot/vmlinuz-<kernel version number here> <kernel boot options...>

カーネル起動オプションにquiet/または単語が含まれている場合はsplash削除します。安全のためにverboseandという単語を書くこともできますnosplash。これでLinuxカーネルが出力されます。たくさん開始に関する詳細。一時的に変更された起動オプションで始めるには、F10またはControl+を押しますX

まだ一般的なDebian 9ブートスプラッシュ画面が表示され、システムがレガシーモードで終了すると、これは画面が表示モードを切り替えるよりもレガシーモードでのエラーと再起動がより速くなることを意味します。これは、次の場合、GRUBの起動中に問題が発生することを意味します。カーネルを起動しようとしています。

Debian 9と入力してログインし、コマンドプロンプトを開き、と入力しますuname -m。応答にx86_64、またはi386orと同様の内容が表示されますかi686? 1つ目は、オペレーティングシステムに64ビットカーネルがあることを意味し、残りはすべて32ビットバージョンを意味します。

おすすめ記事