引导程序的功能

引导程序的功能,第1张

简单说是用于启动。

Windows XP在引导过程中将经历预引导、引导和加载内核三个阶段在 Windows 的较早版本中,引导文件bootini是系统文件,它包含有关计算机上安装的 Windows *** 作系统的信息。当您打开计算机时,在启动的过程中显示该信息。它在多重引导配置中或者对于需要自定义 Windows 启动方式的高级用户或管理员最有用。

当系统首次引导时,或系统被重置时,处理器会执行一个位于已知位置处的代码。在个人计算机(PC)中,这个位置在基本输入/输出系统(BIOS)中,它保存在主板上的闪存中。嵌入式系统中的中央处理单元(CPU)会调用这个重置向量来启动一个位于闪存/ROM 中的已知地址处的程序。在这两种情况下,结果都是相同的。因为 PC 提供了很多灵活性,BIOS 必须确定要使用哪个设备来引导系统。

当找到一个引导设备之后,第一阶段的引导加载程序就被装入 RAM 并执行。这个引导加载程序在大小上小于 512字节(一个扇区),其作用是加载第二阶段的引导加载程序。

当第二阶段的引导加载程序被装入 RAM 并执行时,通常会显示一个动画屏幕,并将 Linux 和一个可选的初始 RAM磁盘(临时根文件系统)加载到内存中。在加载映像时,第二阶段的引导加载程序就会将控制权交给内核映像,然后内核就可以进行解压和初始化了。在这个阶段中,第二阶段的引导加载程序会检测系统硬件、枚举系统链接的硬件设备、挂载根设备,然后加载必要的内核模块。完成这些 *** 作之后启动第一个用户空间程序(init),并执行高级系统初始化工作。

这就是 Linux 引导的整个过程。

首先楼主需要懂得一些事情,Linux系统引导程序mbr这个说法是错误的~

MBR是表示主引导记录,并不是Linux系统引导程序,因为小于2GB的硬盘基本上是MBR,而大于2GB的硬盘是属于GPT。

按照你的情况,Linux系统引导程序应该是位于MBR区域,也就是说Linux系统变成了你的主引导记录,如果要删除的话,进入Windows系统,使用“分区助手”或者“EasyBCD”里面的“重生成MBR”就行了。

或者使用Windows的安装光盘,进入安装界面后,按下快捷键:Shift+F10打开命令行,输入:bootrecexe /mbr

bootrecexe /fixboot

bootrecexe /RebuildBcd

希望可以帮到楼主~~~

把grub引导程序写入mbr。

如果原来的引导程序是nt5/6,你想用windows引导grub,可以先安装grub到mbr,再备份grubmbr,然后恢复nt5/6引导,然后添加bcd,引导备份的grubmbr。

如果原来就是grub,想引导新的grub启动的系统,那直接更新grub就可以了。

Linux系统的启动引导程序有LiLo和grub,但由于LILO的缺陷——只能识别0-1023范围内的柱面构成的分区中的内核文件,因此目前已逐渐被grub所取代,本篇主要围绕grub legacy开展描述。

grub全称为Grand Unified Bootloader,grub的版本经过多年的发展,其现有版本分为grub 0X(grub legacy) 和grub 1X(grub 2)。其中目前Centos 7已经采用grub2位启动引导程序,Centos6和Centos5 普遍沿用grub legacy版本。

grub引导程序分为三个阶段:

1、stage1:用于启动Boot loader来加载stage2的内容至内存中;

2、stage1_5:其能够识别内核和stage2所在的分区的文件系统格式类型,帮助引导stage2

3、stage2:读取grubconf 配置文件,并实现引导功能的扩展;

在Linux系统中,与系统启动相关的文件均存储在/boot目录下,如grub、vmlinuz、initramfs等等。

与grub相关的配置文件包括:/etc/grubconf和/boot/grub/grubconf,其实/etc/grubconf是指向/boot/grub/grubconf的软链接,grub程序在引导启动时会读取这个配置文件并按照该文件的配置参数引导启动系统。

通常其内容为:

default=0 :表示有多个grub引导菜单时,选择哪一个作为默认启动引导菜单,default=0表示默认使用第一个title菜单中的配置;

timeout=5 :在grub选择菜单中,5秒内,如果用户没有选择任何一个title,则使用default中指定的titile菜单中的配置进行启动。

splashimage :指定引导菜单中的背景的路径;

titile :指定title菜单到的名称;

root :表示kernel和initrd文件所在的分区路径,而不是“根分区”;其设置格式为:root (hd#,#),硬盘均会被识别为hd,第一个#表示第几个硬盘,从0开始;地第二个#表示同一个硬盘上的不同分区,也使用数字标识,从0开始;

kernel :通常用于指定要运行的内核文件路径,如:/vmlinuz-2632-642el6x86_64;另外也可在其后设置相关的内核参数,如:ro表示只读,root表示指定根分区所在路径,关闭selinux等等;

initrd :为内核运行指定其可用的ramdisk文件,其版本须与内核版本相一致;

1、提供引导菜单,并提供交互式的命令行接口;在菜单界面,按e可进入编辑模式,用于编辑菜单,按c可以进入命令模式;

2、加载用户选择的内核或 *** 作系统,并允许传递相应的内核参数给内核;可选择隐藏此菜单;

3、为菜单提供保护机制,可为编辑菜单设置认证或为启用内核或 *** 作系统进行认证;

在系统开机启动过程中,有几秒的过渡页面,此时按任意键可进入到菜单页面中:

进入到菜单页面后,如果存在着多个内核,此时可按上下键选择需要启动的内核,或者按e进入内核编辑模式,按c可进入grub的命令行模式。

在菜单页面按c即可进入命令行接口,在此命令行接口, 我们可以配置相关的grub设置,如指定root 路径、kernel文件的路径等等。grub命令行接口的常用指令有:

grub程序提供了相关的认证机制用于系统保护,如防止恶意用户随意通过单用户模式修改root密码或启动其他内核。

设置认证的方法为:在相应的grubconf配置文件中,添加passwd -md5 STRING。

如下图为提供grub菜单的编辑认证:

下述为为对应的内核启动提供密码认证:

1、使用grub-install命令

DEVICE:安装的目标磁盘;

--root-directory=DIR:指grub映像文件的存放位置,默认为当前系统根目录。grub-install会在指定的目录下创建boot/grub/的层级目录,并生成相关的grub文件生成在DIR/boot/grub/下。

2、在grub命令行下安装grub

输入命令grub进入grub命令行:

在grub程序出现损坏时,我们还可以利用上述方法对其进行修复:

也可以通grub命令行来修复grub程序:

方法一:利用安装光进入救援模式进行grub修复

插入光盘,进入救援模式。

在完成相关的硬件检测及引导程序,依次设置语言、键盘及是否启动网络,接着系统会查找根分区,随后选择continue以读写的方式挂载根文件系统。

点击OK,最后选择start shell。

至此grub已修复完成,系统应能正常启动。

方法二:将损坏的硬盘拆卸挂载到其他Linux系统上进行修复

修复完成后,将对应硬盘拆卸挂载回原来的系统,再启动验证即可。

补充:如何在Linux系统不重启下添加或移除硬盘。

添加命令为:

移除命令为:

这两个命令的成功与否在于对应的数字ID是否正确,其格式为:

以上就是关于引导程序的功能全部的内容,包括:引导程序的功能、如何删除linux系统引导程序mbr、mbr如何引导grub等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9795782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存