Debian Linuxボックスで、電源を入れた後、GRUBが「そのようなパーティションがありません」というエラーで失敗するという非常に奇妙な状況に遭遇していますが、リセットボタンを押すと、正常に起動します。状況を診断しようとしていますが、どのブートローダーのどのバージョンがどこにインストールされているのかわからないことに気付きましたか?どうすればわかりますか?つまり、どうすればよいですか?各ディスクのMBRにインストールされているブートローダーを確認し、さまざまなパーティションにインストールされている第2段階のブートローダーを確認するにはどうすればよいですか?
自分が何を持っているのか正確にわからない場合は、どのバージョンのGRUBがどこにインストールされているかを正確に知ることができます。
GRUB(1または2)がddでMBRにインストールされているかどうかを確認できます。
dd if=/dev/sda bs=512 count=1 2> /dev/null | grep -q GRUB && echo "GRUB found"
GRUB署名が見つかった場合は、次を実行できます。
file -s /dev/sda
出力が次のようなものである場合:
/ dev/sda:x86ブートセクター。 GRand Unified Bootloader、stage1バージョン0x3.........。
次に、MBRにGRUB1をインストールします。次のように、Grubについての言及がない場合:
/ dev/sda:x86ブートセクター;パーティション1:ID = 0x83、アクティブ、スタートヘッド32、スタートセクター2048......。
次に、そのディスクのMBRにGRUB2がインストールされています。
重要なGRUBファイル(GRUB1の場合は「ステージ」、GRUB2の場合は「イメージ」)を見つけるには:
GRUB1:
設定ファイル:
find / -name menu.lst
ステージ:
find / -name stage1
または
find / -name stage2
GRUB2:
設定ファイル:
find / -name grub.cfg
画像:
find / -name core.img
または
find / -name boot.img
http://bootinfoscript.sourceforge.net を使用すると、起動ステータスに関する詳細情報が表示され、どのブートローダーがどこにインストールされているかがわかります。また、起動に関連するその他の詳細情報も多数表示されます。 debianでは、パッケージboot-info-scriptとして入手できます。