linux系统启动过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统启动过程相关的知识,希望对你有一定的参考价值。

--

 

 

 

 

 

 

 

 

 

 centos7 grub配置文件在grub2中

 

GNU GRUB 和GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器。用来引导不同系统,如windowslinux

X86架构的机器中,Linux、BSD 或其它Unix类的操作系统中GRUB、LILO 是大家最为常用,应该说是主流。

Windows也有类似的工具NTLOADER;比如我们在机器中安装了Windows 98后,我们再安装一个Windows XP ,在机器启动的会有一个菜单让我们选择进入是进入Windows 98 还是进入Windows XP。NTLOADER就是一个多系统启动引导管理器,NTLOADER 同样也能引导Linux,只是极为麻烦罢了。

PowerPC 架构的机器中,如果安装了Linux的Powerpc 版本,大多是用yaboot 多重引导管理器,比如Apple机用的是IBM PowerPC处理器,所以在如果想在Apple机上,安装Macos 和Linux Powerpc 版本,大多是用yaboot来引导多个操作系统

因为X86架构的机器仍是主流, 所以GRUB和LILO 仍然是我们最常用的多重操作系统引导管理器。

引导过程

编辑

由硬盘启动时,Bios通常是转向第一块硬盘的第一个扇区,即主引导记录(MBR)。

装载GRUB和操作系统的过程,包括以下几个操作步骤:

装载记录

基本引导装载程序所做的的事情就是装载第二引导装载程序。

装载Grub

这第二引导装载程序实际上是引出更高级的功能,以允许用户装载一个特定的操作系统

装载系统

linux内核。GRUB把机器的控制权移交给操作系统

不同的是,微软操作系统都是使用一种称为链式装载的引导方法来启动的,主引导记录仅仅是简单地指向操作系统所在分区的第一个扇区

设备名称

GRUB不区分IDE硬盘和SCSI硬盘,统一使用hdx来标识。软盘使用fdx来标识,x为硬盘号,x从0开始计数。

GRUB使用(hdx,y)标识某个硬盘中的某个分区,x表示硬盘号,y表示分区号,x和y都从0开始计数。

在windows中,系统的第一个硬盘驱动器表示为(hd0),其中的第一个分区表示为(hd0,0),以此类推。

(hd0,0)。表示C盘。

(hd0,4)。表示D盘。当然这里指的是(第一个逻辑分区,如果D盘也是主分区,应该写成hd0,1)

由于主分区只能有四个,所以第一硬盘的四个主分区分别用(hd0,0)~(hd0,3)来表示;逻辑分区则从(hd0,4)开始算,即第一逻辑分区用(hd0,4),第二逻辑分区用(hd0,5)来表示,依次类推。

一般windwos的分区都是一个主分区,其余是逻辑分区。因此C盘用(hd0,0),D盘用(hd0,4)来表示。 光盘用(fd)标识,第一个软驱用(fd0)表示。

Win7 的引导分两部分:MBR 程序和 BCD (Vista 之前称为 NTLDR ,其实他们是一个东西,但改进了很多)。MBR 程序就是 MBR 里面前 446 字节。Windows 每次用官方安装盘安装系统,都会强行覆盖这里的程序为自己的 MBR 程序,这个 MBR 的程序功能很简单,就是启动分区表里面标记为激活的分区。
之后 MBR 程序启动激活分区里面的 BCD (BCD 在分区特殊位置安装有特殊程序)。BCD 实现 F8 功能和正式启动 Windows7 。

Linux 这里不能启动,是因为 MBR 前 446 字节里面本来是 Linux 的引导程序 GRUB 。Win7 安装完,会覆盖 MBR 这里的 GRUB 程序,导致不能启动 GRUB 而是启动 BCD 来启动 Windows。
但 BCD 本身不支持直接启动 Linux ,所以你的 Linux 现在不能启动了。只能用 BCD 启动一个可以引导 Linux 的程序来过渡。这种软件其实不多现在基本也就 GRUB 可以选择。

解决办法有两个:
1、修复 GRUB 的 MBR 程序,这个实现很简单,只要能启动 Linux 就能修复,不管你是启动一个 GRUB for DOS 还是找个 Linux LiveCD 只要进入了 Linux 就能进行修复。这种修复文章网上一大堆。
2、用 Win7 的 BCD 启动 GRUB 来过渡启动到 Linux 。但 BCD 设置起来很麻烦,不如 XP 直接修改 boot.ini 方便,直观。这里的 GRUB 用 GRUB for NTLDR 版本就可以,但需要单独找 for BCD 的安装方法。不能照抄 XP 的修改 boot.ini 方法。

以上是关于linux系统启动过程的主要内容,如果未能解决你的问题,请参考以下文章

Linux 系统启动过程

Linux 系统启动过程

LINUX操作系统的启动过程

linux学习-Linux系统启动过程

简述Linux系统启动过程

Linux 系统启动过程