疑問に思うのは、特定のシステムを起動するためにどのブートローダが使用されるのかを調べることは可能ですか?システムは次のように起動します。幼虫、リロそれとも別のブートローダがありますか?
同じか/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
ブートローダの内容をダンプしてからgrep
GRUBまたはLILOをダンプできます。
次のコマンドを使用して、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を正しく認識しました。