首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

grub引导linux过程

GRUB(GRand Unified Bootloader)是Linux系统中常用的引导加载程序,负责加载内核并启动操作系统。以下是GRUB引导Linux系统的基本过程:

基础概念

  1. MBR(Master Boot Record):硬盘的第一个扇区,包含引导加载程序和分区表。
  2. GRUB配置文件:通常位于/boot/grub/grub.cfg,定义了启动菜单和内核参数。
  3. 内核镜像:Linux内核的可执行文件,通常位于/boot目录下。

引导过程

  1. BIOS/UEFI启动
    • 计算机开机后,BIOS或UEFI固件进行自检,并加载MBR中的引导加载程序。
  • GRUB加载
    • GRUB从MBR加载到内存中,并初始化显示设备,显示启动菜单。
    • 用户可以选择启动项或等待默认设置启动。
  • 加载内核
    • GRUB根据配置文件中的设置,加载指定的内核镜像到内存中。
    • 同时加载必要的内核模块和初始RAM磁盘(initrd),initrd提供启动过程中所需的驱动程序和文件系统。
  • 启动内核
    • 内核接管控制权,初始化硬件设备,挂载根文件系统。
    • 调用init进程,开始系统的常规启动过程。

相关优势

  • 多操作系统支持:GRUB能够管理多个操作系统的启动。
  • 灵活性和可配置性:用户可以根据需要自定义启动菜单和内核参数。
  • 故障恢复:提供启动修复选项,帮助解决系统启动问题。

应用场景

  • 多系统共存:在同一台计算机上安装多个Linux发行版或其他操作系统。
  • 服务器环境:需要稳定可靠的启动管理,以确保服务的连续性。

常见问题及解决方法

  1. GRUB菜单不显示
    • 可能是MBR损坏或GRUB配置文件错误。可以使用Live USB启动系统,然后运行grub-installupdate-grub命令修复。
  • 内核加载失败
    • 检查内核镜像和相关模块是否存在且未损坏。更新GRUB配置文件以确保正确指定了内核路径。
  • 无法启动特定操作系统
    • 确认GRUB配置文件中对应的启动项设置正确,必要时手动编辑或使用os-prober工具检测系统。

示例代码(修复GRUB)

假设你需要从Live USB环境修复GRUB,可以执行以下步骤:

代码语言:txt
复制
sudo mount /dev/sdaX /mnt  # 挂载根文件系统,X为你的Linux分区号
sudo grub-install --root-directory=/mnt /dev/sda  # 重新安装GRUB到MBR
sudo update-grub  # 更新GRUB配置文件

通过以上步骤,你可以确保GRUB正确引导Linux系统。如有更复杂的问题,可能需要进一步检查硬件状态或内核日志。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux启动引导程序(GRUB)加载内核的过程

我们知道启动引导程序(Boot Loader,也就是 GRUB)会在启动过程中加载内核,之后内核才能取代 BIOS 接管启动过程。如果没有启动引导程,那么内核是不能被加载的。...本节,我们就来看看启动引导程序加载内核的过程,当然 initramfs 这个虚拟文件系统也是要靠启动引导程序调用的。...在 CentOS 6.x 中,启动引导程序默认是 GRUB,GRUB 是现在最为流行的启动引导程序,我们也用 GRUB 来说明启动引导程序的作用。...GRUB加载内核的过程GRUB 的作用有以下几个:加载操作系统的内核;拥有一个可以让用户选择的的菜单,来选择到底启动哪个系统;可以调用其他的启动引导程序,来实现多系统引导。...答案是空间不够,GRUB 的功能非常强大,MBRM 空间是不够使用的。那么 Linux 的解决办法是把 GRUB 的程序分成了三个阶段来执行。

54620
  • Windows 10 删除 grub 引导

    曾经在原始Win10下装了双系统,开机时用 grub 选择启动哪个系统。随后又把linux删了,但是grub启动还在,每次开机都要选择一下,很麻烦,本文记录删除grub启动的方法。...工作原理 本文的内容适用于和我一样经历的电脑,一定脱离grub后自己可以启动的那种才行,即:原始Windows -> 双系统,自带 grub -> 需要删除grub 安装双系统时会在Win的启动区安装grub...,这样就算删除了双系统grub也是要运行的 解决思路就是找到这个grub直接删掉,然后就会使用原来的Win引导自动启动系统 操作流程 具象化启动磁盘 我们需要修改系统启动磁盘的信息,这部分磁盘默认都是隐藏的...letter=L:(L是我电脑上没有使用的盘符,不要忘了有冒号) 此时会多一个L磁盘,第一步就成功了 打是打不开的,而且这部分文件最好不要轻举妄动,可能一不小心就启动不起来了 删除ubuntu引导文件夹...我们已经把引导磁盘抓出来了,删除grub引导文件就可以了 以系统管理员身份启动cmd.exe 输入L:,进入L磁盘 输入dir命令,查看当前磁盘目录 这一步就是为了检查我们此时操作是否正确,正常的话应该只有一个名为

    9.7K12

    速读原著-GRUB_多系统引导(通过GRUB引导Windows操作系统)

    六、通过GRUB引导Windows操作系统; 1、通过编辑 menu.lst 来引导Windows 系统; 如果您的Windows所处于的分区在(hd0,0),可以在menu.lst 加如下的一段就能引导起来了...rootnoverify (hd0,0) chainloader +1 如果您的机器有两块硬盘,而Windows 位于第二个硬盘的第一个分区,也就是(hd1,0) 您可以用grub...map (hd1) (hd0) rootnoverify (hd1,2) chainloader +1 makeactive 如果有多个Windows 系统,怎么才能引导出来呢...指令来引导Windows ; 其实我们会写menu.lst了,在menu.lst中的除了title外,都是一条条指令;如果我们启动Windows ,只是输入指令就行了; 比如 Windows的分区在 (...hd0,0),我们在开机后,按ctrl+c ,进入GRUB的命令模式;就可以用下面的 grub> rootnoverify (hd0,0) grub> chainloader +1 grub> boot

    1.7K31

    Linux学习笔记之Linux启动引导过程

    尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行必要的简化。 让我们先从高级的视角来查看 Linux 引导过程,这样就可以看到整个过程的全貌了。...这就是 Linux 引导的整个过程。现在让我们深入挖掘一下这个过程,并深入研究一下 Linux 引导过程的一些详细信息。 系统启动 系统启动阶段依赖于引导 Linux 系统上的硬件。...除了可以存储并引导 Linux 映像之外,这些引导监视器还执行一定级别的系统测试和硬件初始化过程。在嵌入式平台中,这些引导监视器通常会涉及第一阶段和第二阶段的引导加载程序。...内核 GRUB 中的手工引导 在 GRUB 命令行中,我们可以使用 initrd 映像引导一个特定的内核,方法如下: grub> kernel /bzImage-2.6.14.2 [Linux-bzImage...结束语 与 Linux 本身非常类似,Linux 的引导过程也非常灵活,可以支持众多的处理器和硬件平台。最初,加载引导加载程序提供了一种简单的方法,不用任何花架子就可以引导 Linux。

    10.5K41

    速读原著-GRUB_多系统引导(通过GRUB命令行来启动Linux操作系统)

    ;当然您可以不用定义GRUB的菜单 ,直接用命令行来启动系统,比如我现在就是,为了写GRUB的文档,就把menu.lst 删除了,直接用命令来启动系统; 2、用命令行来引导Linux操作系统的步骤; 通过命令行来引导操作系统的流程...,也没有什么难的;无非是把指令手工输入到grub>提示符的后面;在这个过程中,tab键的命令补齐功能就显得很重要了。...-2.6.11-1.1369_FC4.img [Linux-initrd @ 0x2e1000, 0x10e685 bytes] 7)boot 引导系统; grub>boot 前面的几个步骤都弄好...8)引导Linux系统实例全程回放; 实例:/boot和Linux的/处于同一个硬盘分区; grub> cat (hd0,6)/etc/fstab # This file is edited by fstab-sync...的/根所位于的分区和/boot所位于的分区都是(hd0,6),并且我们cat出来的/etc/fstab是Linux的/根分区的文件系统的标签为LABEL=/,引导操作系统的例子如下; grub>kernel

    6.6K21

    速读原著-GRUB_多系统引导(简介)

    GRUB_多系统引导(简介) 摘要: GRUB是多系统引导管理器,简单的说既能引导Linux,同时也能引导Windows;从讨论区近四年的观察来看,大多初学者并不能在短时间内掌握GRUB的用法,为了解决初学者在最短时间内掌...GRUB,重写GRUB入门文档还是有必要的; 本文重点介绍了GRUB的menu.lst的写法,另外通过GRUB命令行引导系统也做了详述;这些无论是对Windows版本的WINGRUB还是Linux版本的...,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引导的其它部份,比如系统的初始化及启动过程则完全由内核来控制完成; Briefly, boot loader is the first software...NTLOADER就是一个多系统启动引导管理器,NTLOADER 同样也能引导Linux,只是极为麻烦罢了; 在Powerpc 架构的机器中,如果安装了Linux的Powerpc 版本,大多是用yaboot...,系统引导管理器不仅仅有GRUB ,而且也有LILO,但对于多重系统引导管理器,你只能选择其一而用;不能两个同时使用; 目前这两个多重系统引导管理器是大家最常用的,也是主流Linux发行版而采用的;有的弟兄喜欢

    1.1K50

    速读原著-GRUB_多系统引导(GRUB软件包版本选择和安装)

    二、GRUB软件包版本选择和安装; 1、GRUB的版本选择,Linux版本的GRUB及Windows版本的GRUB的说明; GRUB不但有Linux版本,也有Windows版本;现我们一一介绍; 如前面所说...,目前在在Unix类的操作系统中,大多是都有GRUB;GRUB几乎能引导所有X86架构的操作系统;功能之强,使用简单是GRUB最大的卖点;由于Windows 操作系统的先入为主的优势,使得大家对Windows...版本WINGRUB; 请参考:《以WINGRUB 引导安装Fedora 4.0 为例,详述用WINGRUB来引导Linux的安装》 3、GRUB的Linux版本软件包的安装; 其实对于Linux的GRUB...,几乎所有的Linux主流发行版都有打包,如果您安装了Linux,并且在开机后出现GRUB字样的,证明您已经安装了GRUB;而无需再次安装;Linux的GRUB软件包安装部份并不是本文的重点; 如果您的...Linux系统没有安装GRUB,或者采用的是LILO,而您想用GRUB,可以用系统安装盘自带GRUB软件包来安装,或者到相关发行版本的软件仓库下载后安装; GRUB 的Linux版本目前在各大发行版中都有打包

    1.6K10

    速读原著-GRUB_多系统引导(GRUB软件包版本选择和安装)

    三、在Linux中,GRUB的配置中的安装和写入硬盘的MBR; 1、在Linux中,GRUB配置过程中的安装grub-install; grub-install 命令有何用呢?...其实就是把我们前面已经安装的软件包中的一些文件复制到 /boot/grub中;对于新安装GRUB软件包后,也是一个必经的过程;我们前面所说的GRUB软件包的安装;而现在我们说的是GRUB配置的过程中的安装...分区是放在第一块硬盘还是第二块硬盘上了,以实际情况为准; 2、设定GRUB的/boot分区并写入MBR;; 在Linux中,GRUB软件包的安装,及在配置过程中安装grub到 /boot中还是不够的,...grub 会出现grub>提示符,这是grub命令行模式 ,如果能在开机中出现提示符,没有引导不起来的系统,除非您的系统破坏的极为严重。...如果仅仅是GRUB被破坏了,GRUB命令行是能让操作系统引导起来的; 接着看例子,我们要找到 /boot/grub/stage1的,在grub>后面输入; grub> find /boot/grub/

    1.6K10
    领券