我怎样才能找出我使用的引导加载程序?

我知道Grub是在安装Ubuntu时默认安装的,但我面对的是一个运行9.10桌面版的嵌入式系统。以下是lsb-release文件的内容。
ubuntu@ubuntu-desktop:/boot$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.10
DISTRIB_CODENAME=karmic
DISTRIB_DESCRIPTION="Ubuntu 9.10"

但是这个系统没有Grub引导程序,我想找出它在使用哪一个。那么有什么建议吗?

http://wiki.debian.org/BootLoader 列出了Debian中所有可用的引导加载程序,如果您想要检查每个引导加载程序。系统是什么架构?只是留下一个评论,因为这不是一个正确的答案... - andrewsomething
5个回答

如果你有/etc/lilo.conf文件,那么你正在使用LILO(Linux Loader)。 这意味着如果你输入lilo,你应该会看到lilo引导程序的命令对话框。
如果你有/boot/grub/目录,那么你正在使用GRUB(Grand Unified Boot Loader)。 这意味着你应该能够使用所有的grub文件,比如grub-install、grub-reboot等。
Ubuntu 9.10是第一个使用GRUB2的版本https://help.ubuntu.com/community/DualBoot/Grub
更新:
下面是一个脚本,用于检查硬盘的第一个扇区中使用的引导管理器:
假设你的硬盘是SDA,那么: sudo dd if=/dev/sda bs=512 count=1 2>/dev/null | strings | grep -Eoi 'grub|lilo|acronis|reboot' 将告诉你正在使用哪个引导加载程序。
你可以想象剩下的部分... 引导加载程序列表在这里:http://en.wikipedia.org/wiki/Comparison_of_boot_loadershttp://wiki.debian.org/BootLoader(适用于基于Debian的发行版) 另外,如果你想要查看真实的二进制输出,请在grep部分添加-a选项。例如: sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep -a GRUB 这将显示第一个块中的数据。
现在有了这些新信息,你必须找到你正在使用的引导管理器。

3没有,没有这些东西。 - binW
为您更新了一个小的命令行。 - Luis Alvarado
如果您设置了救援分区,还可以尝试循环使用sda1sda2等进行操作。 - opyate
如何确定我是否使用的是VPS,而且这种方法不起作用?(设备为/dev/simfs,命令没有输出结果) - thegeko
@thegeko 这是一个非常大的问题,因为它取决于您的服务提供商、他们使用的软件以及他们提供的服务(IaaS、PaaS、MaaS、云计算、专用服务器、虚拟服务器等等)。 - Luis Alvarado
1如果我有/boot/grub,但也有/boot/efi呢?EFI到底是什么?如果EFI也是一个引导加载程序,我怎样才能知道实际使用的是这两个中的哪一个呢? - BitTickler



grub软件包安装了帮助安装grub引导程序的工具,但使用这些工具并不能完全确定引导加载程序已经安装在启动磁盘上。例如,可以从grub引导,然后安装lilo _软件包_并删除grub _软件包_。 - Joe A

使用dd命令读取引导扇区,然后使用grep命令查看您的引导加载程序。
dd if=/dev/hda bs=512 count=1 2>&1 | grep GRUB
dd if=/dev/hda bs=512 count=1 2>&1 | grep LILO

不行,完全不起作用。这返回的是一大堆二进制数据,里面没有任何字符串可以进行搜索。可能只适用于非常特定类型的硬件和BIOS组合。 - feeela

通过向工具本身查询版本,您的安全性更高(而不是使用低级别的dd或其他工具)。

例如,测试lilo:

root# lilo -V
bash: lilo: command not found

root# grub-install --version
grub-install (GRUB) 2.02~beta2-22

当然,如果你两者都安装了,这是行不通的。如果是这种情况,为了避免混淆,请卸载你不需要的那个。

1引导加载程序软件包安装工具,以帮助安装引导加载程序,但使用这些工具并不能确定引导加载程序已安装在启动磁盘上。例如,您可以从grub引导,然后安装lilo软件包并删除grub软件包。 - Joe A
1我猜“从grub启动”也不能回答问题,因为这正是原帖中所问的。无论如何,这有点棘手,但我更喜欢使用简单的命令来避免可能的破坏性错误。如果不行的话,那么这个答案对你来说就不合适了,我建议你尝试阅读其他答案中的其他建议。 - DrBeco