如何在Linux下告诉BIOS将使用哪个磁盘启动?

时间:2014-11-01 15:48:26

标签: 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

2 个答案:

答案 0 :(得分:2)

如果这确实是基于BIOS的系统,而不是UEFI,则没有普遍可用且可靠的方法来确定将从哪个磁盘引导。对于许多BIOS版本,默认启动的磁盘甚至可能在一次启动时随机改变,因为设备按不同的顺序进行枚举。

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

答案 1 :(得分:1)

如果它的UEFI有定义的变量保持引导顺序和工具" efibootmgr"可以帮助您访问它们:http://linux.dell.com/files/efibootmgr/efibootmgr-0.5.4/efibootmgr.txt