当前位置:首页 » 《休闲阅读》 » 正文

【Linux】使用GRUB和EFI:深入理解GRUB和EFI引导过程,配置和调试引导程序

9 人参与  2024年10月12日 08:01  分类 : 《休闲阅读》  评论

点击全文阅读


GRUB(GRand Unified Bootloader)和EFI(Extensible Firmware Interface)是现代计算机系统中常用的引导程序。GRUB是一个多功能的引导程序,支持多种操作系统。EFI是一个标准的固件接口,用于在操作系统和平台固件之间提供交互。本文将深入探讨GRUB和EFI的引导过程,并介绍如何配置和调试引导程序。


? 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:gylzbk

? 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【Linux】使用GRUB和EFI:深入理解GRUB和EFI引导过程,配置和调试引导程序

? 1. 基本概念? 1.1 什么是GRUB? 1.2 什么是EFI ?️ 2. GRUB引导过程? 2.1 GRUB引导阶段? 2.2 GRUB配置文件示例grub.cfg ? 3. EFI引导过程? 3.1 EFI引导阶段? 3.2 EFI系统分区示例ESP结构 ? 4. 安装和配置GRUB? 4.1 安装GRUB在BIOS模式下安装GRUB在UEFI模式下安装GRUB ? 4.2 配置GRUB ? 5. 调试GRUB? 5.1 启用GRUB调试? 5.2 进入GRUB命令行常用GRUB命令 ? 5.3 修复GRUB使用chroot修复GRUB ? 6. 总结

在这里插入图片描述

? 1. 基本概念

? 1.1 什么是GRUB

GRUB是一个强大的引导加载程序,广泛用于Linux系统。它支持多种文件系统和操作系统,可以在启动时显示一个菜单,让用户选择要启动的操作系统。

? 1.2 什么是EFI

EFI是一个标准的固件接口,取代了传统的BIOS。UEFI(Unified Extensible Firmware Interface)是EFI的改进版本,广泛应用于现代计算机系统。UEFI提供了更好的硬件初始化和引导能力,支持更大的硬盘和更复杂的系统配置。

?️ 2. GRUB引导过程

? 2.1 GRUB引导阶段

GRUB引导过程分为以下几个阶段:

Stage 1:GRUB的第一阶段引导程序通常位于MBR(Master Boot Record)或EFI系统分区中,负责加载Stage 1.5或Stage 2。Stage 1.5(可选):位于MBR之后的空闲扇区中,负责加载文件系统支持模块。Stage 2:位于文件系统中,负责加载GRUB配置文件和操作系统内核。

? 2.2 GRUB配置文件

GRUB的主要配置文件是/boot/grub/grub.cfg。这个文件通常由grub-mkconfig命令自动生成,但也可以手动编辑。

示例grub.cfg

set default=0set timeout=5menuentry 'Ubuntu' {    set root=(hd0,1)    linux /vmlinuz root=/dev/sda1 ro quiet splash    initrd /initrd.img}menuentry 'Windows' {    set root=(hd0,2)    chainloader +1}

? 3. EFI引导过程

? 3.1 EFI引导阶段

EFI引导过程分为以下几个阶段:

Pre-EFI Initialization(PEI):固件初始化基本硬件和内存。Driver Execution Environment(DXE):加载和执行EFI驱动程序。Boot Device Selection(BDS):选择引导设备并加载引导程序。Transitional Boot Loader(TBL):执行引导程序(如GRUB)。

? 3.2 EFI系统分区

EFI系统分区(ESP)是一个特殊的分区,存储EFI引导程序和应用程序。通常格式化为FAT32文件系统。

示例ESP结构

/boot/efi/├── EFI/│   ├── BOOT/│   │   └── BOOTX64.EFI│   └── ubuntu/│       └── grubx64.efi

? 4. 安装和配置GRUB

? 4.1 安装GRUB

在BIOS模式下安装GRUB

sudo grub-install /dev/sdasudo update-grub

在UEFI模式下安装GRUB

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

? 4.2 配置GRUB

编辑/etc/default/grub文件,修改GRUB配置:

GRUB_DEFAULT=0GRUB_TIMEOUT=5GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX=""# 启用图形终端GRUB_TERMINAL=console

应用配置更改:

sudo update-grub

? 5. 调试GRUB

? 5.1 启用GRUB调试

编辑/etc/default/grub文件,启用GRUB调试:

GRUB_TERMINAL=consoleGRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX=""# 启用GRUB调试信息GRUB_DEBUG="all"

应用配置更改:

sudo update-grub

? 5.2 进入GRUB命令行

在启动时按下Esc键或Shift键进入GRUB菜单,然后按下c键进入GRUB命令行模式。在命令行模式下,可以使用GRUB命令进行调试和引导操作系统。

常用GRUB命令

ls:列出设备和分区。set:查看和设置GRUB环境变量。linux:加载Linux内核。initrd:加载initrd镜像。boot:启动操作系统。

? 5.3 修复GRUB

如果GRUB损坏,无法引导系统,可以使用Live CD或USB进行修复。

使用chroot修复GRUB

启动Live CD或USB,打开终端。挂载根文件系统和EFI系统分区:
sudo mount /dev/sda1 /mnt  # 挂载根文件系统sudo mount /dev/sda2 /mnt/boot/efi  # 挂载EFI系统分区
进入chroot环境:
sudo chroot /mnt
安装和更新GRUB:
sudo grub-install /dev/sdasudo update-grub
退出chroot环境并重启系统:
exitsudo reboot

? 6. 总结

通过深入理解GRUB和EFI引导过程,可以更好地配置和调试引导程序,确保系统的稳定性和可用性。希望本文能对读者有所帮助,提升引导程序配置和调试的技能。

通过合理地使用这些工具和方法,可以大大简化引导程序的配置和调试过程,提高调试效率,确保系统的稳定性和可靠性。无论是新手还是有经验的系统管理员和开发者,都能从中受益。


点击全文阅读


本文链接:http://zhangshiyu.com/post/170846.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1