linux - Linux下如何判断BIOS使用哪个磁盘启动?

标签 linux specifications bios

如何从 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

最佳答案

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

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

关于linux - Linux下如何判断BIOS使用哪个磁盘启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26690942/

相关文章:

linux - 无法安装 "code": classic confinement requires snaps under/snap or symlink from/snap to/var/lib/snapd/snap

字符串上的 JavaScript 增量一元运算符 (++)

x86 - int 13h 42h 在 Bochs 中不加载任何东西

bios - BIOS是如何编译的

c - 以秒为单位获取当前日期和时间

python - 关于python脚本的备份

linux - Linux 时间命令输出的差异

design-patterns - 实现 NotSpecification : isSpecialCaseOf? 的好方法

javascript - blink() 方法真的被弃用了吗?

c++ - BIOS 类 UI 与 C++