我如何才能发现哪个引导加载程序安装在哪里?

我如何才能发现哪个引导加载程序安装在哪里?

在 Debian Linux 机器上,我遇到了一种非常奇怪的情况,开机后,GRUB 出现错误“没有这样的分区”,但如果我按下重置按钮,它就会正常启动。我试图诊断这种情况,然后我意识到我不知道哪个版本的引导加载程序安装在哪里? 我如何才能知道? 也就是说,我如何才能找出我的每个磁盘的 MBR 上安装了什么引导加载程序,以及如何找出各个分区上安装了哪些第二阶段引导加载程序?

如果我不能确切地知道我拥有什么,我愿意只知道哪个版本的 GRUB安装在哪里。

答案1

您可以查看 GRUB(1 或 2)是否安装在膜生物反应器

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 上安装了 GRUB 2。

要查找必要的 GRUB 文件(GRUB 1 的“阶段”、GRUB 2 的“图像”):

GRUB 1:

配置文件:

find / -name menu.lst

阶段:

find / -name stage1

或者

find / -name stage2

GRUB 2:

配置文件:

find / -name grub.cfg

图片:

find / -name core.img

或者

find / -name boot.img

答案2

您可以使用启动信息脚本它为您提供有关启动状态的详细信息,并告诉您哪个引导加载程序安装在何处,以及与启动相关的大量其他详细信息。它在 Debian 中以软件包形式提供启动信息脚本

相关内容