ブートローダとして使用される実際のファイルを「確認」するにはどうすればよいでしょうか?

ブートローダとして使用される実際のファイルを「確認」するにはどうすればよいでしょうか?

Ubuntu の「ディスク」プログラムを使用して、友人のラップトップのパーティションのイメージを作成し、復元しようとしましたが、うまくいきませんでした。外付けハード ドライブにバックアップを作成し、ラップトップのすべてのパーティションを削除し、元のバイト数と同じ数の空のパーティションを作成し、外付け HDD からイメージを復元しましたが、Windows は独自のブートローダーを見つけることすらできず、起動できません。

そこで、私は別の方法を試しています。彼女は Windows を使わないので、Windows パーティションはそのままにして、Ubuntu 16.04 ブートローダーのインストールに sda7 を選択しました。

ここに画像の説明を入力してください

これで、BIOS で別の Windows ブートローダーと、ブートロード用の信頼できる UEFI ファイルとして選択した Ubuntu grub64 ファイルを確認できます。これでデュアルブート システムが完成しました。

ここで、sda7 のクローンを作成 (Ubuntu の「ディスク」アプリを使用) して、パーティション sda7、sda5、sda6 を削除して再作成し、sda7 のクローンを復元した場合でも、BIOS から sda7 のブートローダーを信頼できるブートローダーとして選択し、以前と同じようにデュアル ブート システムを使用できるようにしたいと思います。

しかし、その前に、ブートローダが本当に sda7 にあるかどうかを確認したいと思います。grep -r "grub" .ルート フォルダから実行しようとしましたが、おそらくそれは間違った確認方法だと思いますので、この点について助けていただけないでしょうか。ブートローダが sda7 にあることを確認するにはどうすればよいですか。それらのファイルはどれですか。

答え1

UEFI BIOS によって実行されるブートローダは、/dev/sda7 からではなく、EFI パーティション /dev/sda2 からロードされます。現在のシステムでは、このパーティションは /boot/efi/ にマウントされています。このパーティションを root として検索し、grub バイナリと grub cfg ファイルを見つけます。

この cfg ファイルは grub をブート パーティションにポイントし、次に /boot/grub/grub.cfg で確認できる別の自動生成された cfg ファイルを参照します。この cfg ファイルには grub ブート メニューの構築に使用されるすべてのデータが含まれており、Linux 内から「sudo grub-install」と入力すると書き込まれます。

答え2

まず、実際に起動しているかどうかを再確認しましょう。電子フィそして古いBIOS:

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

実際に EFI で起動している場合、GRUB ファイルは次の場所に保存されます。

  • ESPパーティション内(/EFI/ubuntu
  • /boot/grub
  • /etc/grub

はい、/dev/sda7いくつか保持しますグラブ/etc/grubおよびのファイルに最も類似したファイル/boot/grub

それについては 100% 確信はありませんが、/dev/sda7消去されると/boot/grub/grub.cfg失われ、GRUB は正常に動作しなくなります。

関連情報