admin管理员组

文章数量:1130349

Linux-BIOS/UEFI

以下介绍Linux BIOS/UEFI相关知识,包括基础知识、配置示例以及高级用法。

1. BIOS简介

BIOS(Basic Input/Output System,基本输入输出系统)是一种固件,存储在主板上的EEPROM芯片中,负责在计算机启动时进行硬件初始化并引导操作系统。

1.1 BIOS的功能

  • 硬件检测与初始化:在开机时检查CPU、内存、存储设备等硬件的可用性。
  • 引导操作系统:从引导设备(如HDD、SDD、USB)加载引导程序(如GRUB)。
  • 提供系统设置界面:可通过DELF2进入BIOS设置界面,调整时钟、风扇、引导顺序等。

1.2 BIOS的局限性

  • 16位模式:仅支持16位模式,不适合现代64位系统。
  • 启动速度慢:BIOS逐步检测硬件,导致启动较慢。
  • 引导设备限制:传统BIOS使用MBR(最多支持2TB存储)。

2. UEFI简介

UEFI(Unified Extensible Fireware Interface,统一可扩展固件接口)是BIOS的替代品,提供更强大的功能和更快的启动速度。

2.1 UEFI的优势

  • 支持更大的存储设备:采用GPT(GUID分区表),支持超过2TB的存储。
  • 图形化界面:提供鼠标支持和直观的图形化设置界面。
  • 更快的启动速度:并行化硬件初始化过程。
  • 安全启动(Secure Boot):防止未签名的操作系统或恶意软件加载。

2.2 UEFI的启动模式

  • UEFI模式:直接引导EFI分区中的.efi文件。
  • Legacy BIOS兼容模式(CSM):模拟传统的BIOS进行引导。

3. 检查系统当前的启动模式

在Linux系统中,可通过以下命令检查系统使用的是BIOS还是UEFI启动。

ls /sys/firmware/efi

如果目录存在,说明系统使用UEFI启动,否则是传统BIOS。

或者使用以下命令查看引导模式:

efibootmgr -v

4. 进入BIOS/UEFI设置界面

在不同主板厂商下,进行BIOS/UEFI的按键不同,例如:

  • DELL:F2或F12。
  • HP:F10或ESC。
  • Lenovo:F1或F2。
  • ASUS:DEL或F2。

通常在开机时按下相应按键,即可进入BIOS/UEFI界面。

5. Linux下的UEFI工具

5.1 efibootmgr命令

efibootmgr用于管理UEFI启动项,常见用法如下:

查看当前UEFI启动项

efibootmgr

添加新的UEFI启动项

efibootmgr --create --disk /dev/sda --part 1 --loader "\\EFI\\ubuntu\\grubx64.efi" --label "Ubuntu" --verbose

删除启动项

efibootmgr --delete-bootnum --bootnum 0003

6. 设置启动顺序

在BIOS/UEFI界面中,通常可以修改启动顺序,例如:

  1. USB启动
  2. 硬盘启动
  3. 网络启动

在Linux下,也可以使用以下命令修改启动顺序:

efibootmgr --bootorder 0001,0003,0000

7. 在Linux下使用UEFI启动(GPT分区)

7.1 使用gdisk创建GPT分区

gdisk /dev/sda

创建GPT分区并添加EFI分区(通常为512MB,类型代码EF00).

7.2 格式化EFI分区

mkfs.vfat -F32 /dev/sda1

7.3 挂载EFI分区

mkdir -p /boot/efi
mount /dev/sda1 /boot/efi

7.4 安装GRUB引导程序

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Ubuntu update-grub

8. UEFI Secure Boot(安全启动)

安全启动可防止未签名的引导程序加载,启动时需要正确签名Linux引导程序:

8.1 关闭安全启动(手动方式)

进入UEFI设置界面,找到Secure Boot选项,设置为Disabled

8.2 启用安全启动

使用shim引导程序并进行签名:

sudo mokutil --import MOK.cer

9. BIOS更新与恢复

9.1 BIOS更新方式

  • 进入主板厂商UEFI界面,使用USB进行更新。
  • 在Linux下使用fwupd工具更新BIOS:
sudo fwupdmgr get-devices
sudo fwupdmgr refresh
sudo fwupdmgr update

9.2 恢复BIOS默认设置

如果系统无法正常启动,可以尝试以下方法恢复BIOS设置:

  • 在BIOS中找到Restore DefaultsLoad Optimized Defaults选项。
  • 去下CMOS电池等待几分钟,重新安装。

10. 双系统UEFI配置

10.1 配置Windows与Linux双启动

  1. 安装Windows(使用UEFI模式)。
  2. 安装Linux,并将UEFI分区挂载到/boot/efi
  3. 更新GRUB引导菜单:
grub-mkconfig -o /boot/grub/grub.cfg
  1. 重新设置启动顺序,使GRUB为默认引导程序。

11. 解决”boot device not found“错误

  • 确保磁盘正确连接并在BIOS中启用。
  • 检查是否正确安装了引导程序(如grub-install)。
  • 修复EFI分区:
fsck /dev/sda1

12. 修复损坏的GRUB引导

进入Linux恢复模式,执行:

mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot/efi
grub-install --root-directory=/mnt /dev/sda
update-grub

以上为Linux下BIOS/UEFI的基础知识、配置示例。

更多技术分享,关注公众号:halugin

Linux-BIOS/UEFI

以下介绍Linux BIOS/UEFI相关知识,包括基础知识、配置示例以及高级用法。

1. BIOS简介

BIOS(Basic Input/Output System,基本输入输出系统)是一种固件,存储在主板上的EEPROM芯片中,负责在计算机启动时进行硬件初始化并引导操作系统。

1.1 BIOS的功能

  • 硬件检测与初始化:在开机时检查CPU、内存、存储设备等硬件的可用性。
  • 引导操作系统:从引导设备(如HDD、SDD、USB)加载引导程序(如GRUB)。
  • 提供系统设置界面:可通过DELF2进入BIOS设置界面,调整时钟、风扇、引导顺序等。

1.2 BIOS的局限性

  • 16位模式:仅支持16位模式,不适合现代64位系统。
  • 启动速度慢:BIOS逐步检测硬件,导致启动较慢。
  • 引导设备限制:传统BIOS使用MBR(最多支持2TB存储)。

2. UEFI简介

UEFI(Unified Extensible Fireware Interface,统一可扩展固件接口)是BIOS的替代品,提供更强大的功能和更快的启动速度。

2.1 UEFI的优势

  • 支持更大的存储设备:采用GPT(GUID分区表),支持超过2TB的存储。
  • 图形化界面:提供鼠标支持和直观的图形化设置界面。
  • 更快的启动速度:并行化硬件初始化过程。
  • 安全启动(Secure Boot):防止未签名的操作系统或恶意软件加载。

2.2 UEFI的启动模式

  • UEFI模式:直接引导EFI分区中的.efi文件。
  • Legacy BIOS兼容模式(CSM):模拟传统的BIOS进行引导。

3. 检查系统当前的启动模式

在Linux系统中,可通过以下命令检查系统使用的是BIOS还是UEFI启动。

ls /sys/firmware/efi

如果目录存在,说明系统使用UEFI启动,否则是传统BIOS。

或者使用以下命令查看引导模式:

efibootmgr -v

4. 进入BIOS/UEFI设置界面

在不同主板厂商下,进行BIOS/UEFI的按键不同,例如:

  • DELL:F2或F12。
  • HP:F10或ESC。
  • Lenovo:F1或F2。
  • ASUS:DEL或F2。

通常在开机时按下相应按键,即可进入BIOS/UEFI界面。

5. Linux下的UEFI工具

5.1 efibootmgr命令

efibootmgr用于管理UEFI启动项,常见用法如下:

查看当前UEFI启动项

efibootmgr

添加新的UEFI启动项

efibootmgr --create --disk /dev/sda --part 1 --loader "\\EFI\\ubuntu\\grubx64.efi" --label "Ubuntu" --verbose

删除启动项

efibootmgr --delete-bootnum --bootnum 0003

6. 设置启动顺序

在BIOS/UEFI界面中,通常可以修改启动顺序,例如:

  1. USB启动
  2. 硬盘启动
  3. 网络启动

在Linux下,也可以使用以下命令修改启动顺序:

efibootmgr --bootorder 0001,0003,0000

7. 在Linux下使用UEFI启动(GPT分区)

7.1 使用gdisk创建GPT分区

gdisk /dev/sda

创建GPT分区并添加EFI分区(通常为512MB,类型代码EF00).

7.2 格式化EFI分区

mkfs.vfat -F32 /dev/sda1

7.3 挂载EFI分区

mkdir -p /boot/efi
mount /dev/sda1 /boot/efi

7.4 安装GRUB引导程序

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Ubuntu update-grub

8. UEFI Secure Boot(安全启动)

安全启动可防止未签名的引导程序加载,启动时需要正确签名Linux引导程序:

8.1 关闭安全启动(手动方式)

进入UEFI设置界面,找到Secure Boot选项,设置为Disabled

8.2 启用安全启动

使用shim引导程序并进行签名:

sudo mokutil --import MOK.cer

9. BIOS更新与恢复

9.1 BIOS更新方式

  • 进入主板厂商UEFI界面,使用USB进行更新。
  • 在Linux下使用fwupd工具更新BIOS:
sudo fwupdmgr get-devices
sudo fwupdmgr refresh
sudo fwupdmgr update

9.2 恢复BIOS默认设置

如果系统无法正常启动,可以尝试以下方法恢复BIOS设置:

  • 在BIOS中找到Restore DefaultsLoad Optimized Defaults选项。
  • 去下CMOS电池等待几分钟,重新安装。

10. 双系统UEFI配置

10.1 配置Windows与Linux双启动

  1. 安装Windows(使用UEFI模式)。
  2. 安装Linux,并将UEFI分区挂载到/boot/efi
  3. 更新GRUB引导菜单:
grub-mkconfig -o /boot/grub/grub.cfg
  1. 重新设置启动顺序,使GRUB为默认引导程序。

11. 解决”boot device not found“错误

  • 确保磁盘正确连接并在BIOS中启用。
  • 检查是否正确安装了引导程序(如grub-install)。
  • 修复EFI分区:
fsck /dev/sda1

12. 修复损坏的GRUB引导

进入Linux恢复模式,执行:

mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot/efi
grub-install --root-directory=/mnt /dev/sda
update-grub

以上为Linux下BIOS/UEFI的基础知识、配置示例。

更多技术分享,关注公众号:halugin

本文标签: LinuxBIOSUEFI