【问题标题】:How to tell under Linux which disk will be used by BIOS to boot?如何在 Linux 下判断 BIOS 将使用哪个磁盘引导?
【发布时间】:2014-12-28 17:36:52
【问题描述】:

如何从 CMOS 打印重启后哪个设备将用作启动设备?

计算机有几个 sata 磁盘驱动器和几个连接的可引导 USB 设备。

CMOS 内存的布局由所使用的 BIOS 版本定义。 我知道有几种不同版本和制造商的 BIOS。我认为可以通过检查 BIOS 内存来确定使用哪一个。不知何故,就像这个问题一样 - How to check the BIOS version or name in Linux through a command prompt?

我的电脑给了

$ sudo dmidecode -t bios -q
BIOS Information
    Vendor: Award Software International, Inc.
    Version: F4
    ...
Characteristics:
    Boot from CD is supported
    Selectable boot is supported
    USB legacy is supported
    BIOS boot specification is supported
    ...

我无法重新启动计算机,只能查看 BIOS 设置。这就是为什么我需要在不重新启动的情况下了解它们。

# dmidecode --type 32 --dump

Handle 0x0025, DMI type 32, 11 bytes
System Boot Information
Status: No errors detected
Header and Data:
    20 0B 25 00 00 00 00 00 00 00 00
Strings:
    20 00
    " "

找到一些文档,
http://www.scs.stanford.edu/05au-cs240c/lab/specsbbs101.pdf
http://www.dmtf.org/standards/smbios
http://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.8.0.pdf
但它们对我来说还不够。

理想情况下,我需要一些命令行工具(或有关如何编写它的信息)来帮助我了解将启动哪个设备(/dev/sd?)。

关于 windows 有类似的问题,但也没有明确的答案 - How to tell which disk Windows Used to Boot

【问题讨论】:

    标签: linux specifications bios


    【解决方案1】:

    如果是 UEFI,则定义了保存启动顺序的变量和可以帮助您访问它们的工具“efibootmgr”:https://linux.die.net/man/8/efibootmgr

    【讨论】:

      【解决方案2】:

      如果这真的是一个基于 BIOS 的系统,而不是 UEFI,那么就没有普遍可用且可靠的方法来确定从哪个磁盘启动。对于许多 BIOS 版本,默认启动的磁盘甚至可能在从一次启动到下一次启动时看似随机变化,因为设备以不同的顺序枚举。

      如果您想在基于 BIOS 的机器上可靠地引导 GNU/Linux,标准的解决方案是确保将 grub 的引导扇区安装到 BIOS 可能决定从中引导的任何驱动器的 MBR。如果您的发行版在 grub 软件包更新时自动重新安装 grub(它应该这样做,而且大多数都会这样做),那么您应该确保您的发行版也配置为将 grub 的引导扇区重新安装到所有驱动器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 2014-07-23
        • 2018-11-23
        • 1970-01-01
        • 2010-12-25
        • 2016-11-03
        • 2015-03-29
        相关资源
        最近更新 更多