デュアルブートでGRUB設定を作成すると、GRUBはLinuxイメージを見つけることができません。

デュアルブートでGRUB設定を作成すると、GRUBはLinuxイメージを見つけることができません。

数日前、いくつかのゲームのためにラップトップにWindowsを再インストールする必要がありました。私は数ヶ月前にArch Linuxを使用してきましたが、問題はありませんでした。ただし、Windowsがインストールされたら起動可能とみなされる唯一のものはWindowsです。

いくつかのチュートリアル(数ヶ月前にアーチをインストールしたときにこのインストールチュートリアルを含む)の指示に従いましたが、何も機能しないようです。

これまで、私はこのチュートリアルに従って新しいグラブを再インストールしてインストールしてみました。 https://youtu.be/C3D_qzw94v8

デフォルトでは、彼はWindows用の/ mntと/ mnt2を作成してEFIパーティションにインストールしましたが、grub makeconfigを実行したときに「linuxイメージが見つかりました... Windowsイメージが見つかりました」という出力を得ましたが、makeconfigを実行すると「Windowsイメージ見つかりました。「完了しました」というメッセージが表示されます。

午前2時に設定しようとしたので、プロセス全体にわたってすべてが混乱しているはずです。

すべてを再構成してインストールしたくない重要なドキュメントがあるため、Linuxを再インストールすることは実際にはオプションではありません。

どんな情報が他の人に役立つのか分からないので、役に立つと思うので、いくつかの情報を添付します。

これは df、lsblk、fdisk の出力です。 https://ibb.co/1MYjyYd

/mntと/mnt/bootのフォルダ構造です。 https://ibb.co/BZ7zSyh

安定したテーブル: https://ibb.co/6s6vCg1

答え1

コメントで始点を明確にした後:

パート1:fstabが提案するインストールはUUIDに基づいています。パーティションを再作成すると変更されます。シェルコマンドblkidまたはlsblk -o PATH、UUID、LABELを使用してもう一度確認してください。一部のパーティションのUUIDが変更された場合は、fstabに書き込みます。 (これを削除してディストリビューション関連の項目を再実行するか、ユーティリティを再生成すると、この回答の範囲外です。)

/bootフォルダがFAT32パーティションであり、一般的なEFIリソースを含む可能性はほとんどありません。パーティションスキーマにはこのような内容は表示されません。

したがって、2番目の重要な点は、Linuxパーティション上のLinuxの/ bootフォルダを確認することです。その後、Grubが必要なローダーをコピーできるように、EFIパーティションの1つをこの/ boot-folderに/ boot / efiとしてマウントする必要があります。 (grub installコマンドは/ boot / efiなどのデフォルト値と/ boot自体を持つEFIパーティションで--efi-directoryを引数として使用します。後者は機能できますが、システム機能は他の形式に公開されるため推奨されません)、FAT32は信頼性が低下します。)

Grubは通常、vmlinuz/kernel-imagesとramdiskに基づいて/bootの内容を検出します。他のすべてのトリック(他のオペレーティングシステムの起動など)の場合は、外部パーティションの内容を見つけます。 (ここには、grubのインストール中に接続されたUSBディスクも含まれています。)

私は個人的に別の/bootパーティションを好みます。したがって、初期ユーザースペースをマウントした後は不要で、fstabから削除できます。これはまた、Grubなどで誤って構成を上書きするのを防ぎます。ただし、新しいカーネルイメージをアップグレード/インストールする場合は(手動で)インストールする必要があります。

関連情報