ブートローダーを探す

ブートローダーを探す

疑問に思うのは、特定のシステムを起動するためにどのブートローダが使用されるのかを調べることは可能ですか?システムは次のように起動します。幼虫リロそれとも別のブートローダがありますか?

同じか/sys変数が必要だと思いますか?/proc

編集する:

起動情報の概要:=> Liloは/ dev / sdaのMBRにインストールされます。

sda1:_________________________________________________

File system:       
Boot sector type:  Unknown
Boot sector info:
Mounting failed: mount: unknown filesystem type ''

/dev/sda起動する必要がある唯一のデバイスです。

利用可能な単一のパーティションに既知のファイルシステムがない場合、どのように起動するのか疑問に思います。

答え1

/sysこの情報は、下または下で意味のある方法で追跡されないと思います/proc。起動後にこの情報にアクセスする唯一の方法は、システムにGRUBまたはLilo設定ファイルがあることを確認するように要求するか、次のスクリプトを使用することです。bootinfoscript

例 - 起動デバイスの確認

システムがどのデバイスから起動しているかを知っている場合は、ddブートローダの内容をダンプしてからgrepGRUBまたはLILOをダンプできます。

                      SS#1

次のコマンドを使用して、GRUBまたはLILOを使用していることを確認できます。

$ sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep GRUB
$ sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep LILO

この文字列を返すのは、使用しているブートローダです。

Binary file (standard input) matches

例 - bootinfoscriptの使用

$ sudo ./bootinfoscript --stdout
                  Boot Info Script 0.61      [1 April 2012]


============================= Boot Info Summary: ===============================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img, but core.img can not be found at this 
    location.

sda1: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  
    Boot files:        /grub2/grub.cfg
    ...

しかし、複数のブートローダが共存できるため、これらの方法のどれも「決定的」ではありませんが、少なくともどのブートローダが「使用中であるか」についてのおおよそのアイデアを提供します。

引用する

答え2

バラよりこれ。ただし、スクリプトはBashで書かれているため、組み込みプラットフォームで実行する必要がある場合は変更する必要があります。このスクリプトをテストした結果、UbuntuではGRUBを、SlackwareではLILOを正しく認識しました。

答え3

ブートローダIDを取得するには、次を使用します。ブートローダタイプ

echo $((`cat /proc/sys/kernel/bootloader_type`>>4)) 

あなたを探してブートローダID

関連情報