提示:

简单地说,Boot Loader就是在操作系统内核运行之前运行的一段小程序,称为启动引导程序。是加载核心的重要工具,没有 Boot Loader的话,那么kernel根本就没有办法被系统加载的。 而grub是其中的一种启动引导程序的名称。

1、启动引导程序(Boot Loader)简介

启动引导程序我们之间可能见过,比如Windows系统,在你的电脑上安装了两个不同版本的Windows系统时,在开机启动的时候,就会有界面让你选择,你需要进入到哪个系统中,这个就是启动引导程序的作用。如果你的电脑上只有一个操作系统,进入到启动引导程序中也没有的选择,所以就没有显示让你选择进入到哪个系统。

Linux系统的启动引导程序分为两种,早期的Lilo引导程序,现在已经不是很常见了。现在常用的是grub引导程序,与Lilo引导程序比来,grub引导程序有很多优势,主要有:

  • 支持更多的文件系统。
  • grub的主程序可以直接在文件系统中查找内核文件。
  • 在系统启动时,可以利用grub的交互界面编辑和修改启动选项。
  • 可以动态的修改grub的配置文件,这样在修改配置文件之后不需要重新安装grub,而只需要重新启动系统就可以生效了。

如果你在机器上安装了两个版本的Linux系统,或者使用了不同版本的Linux系统内核,在启动系统的时候,就能进入到grub启动引导程序中,选择你需要进入的版本或者内核。

我们这里就学习Linux系统中的grub启动引导程序。

2、启动引导程序grub的作用

  • 第一是加载操作系统的内核。
  • 第二是拥有一个可以让用户选择的菜单,来选择到底启动哪个系统。
  • 第三还可以调用其他的启动引导程序,来实现多系统引导。

3、启动引导程序grub的位置

grub启动引导程序的位置在/boot/grub目录。

1)我们先进入到boot目录下查看里边有什么文件。

如下图所示:

说明:

symvers-2. 6.32- -642.e16.x86_ 64.gz 是系统运行真正加载的内核, 是内核源码编译之后的内核内容,你是不能看到其内容的。如果你想查看Linux内核源码,需要进入到usr/src/kernel目录中,前提你需要安装好内核源码包。所以系统运行加载的内核和系统源码内核的位置是不同的。

2)进入到/grub目录中查看内容。

如下图所示:

/grub目录中,我们主要关注的就三个文件,分别是grub. confmenu.lstsplash.xpm.gz,其他文件是不需要我们动的,是grub加载之后需要用到的一些相关文件。

说明:

grub. conf文件是grub的配置文件,menu.lst文件是grub.conf文件的软链接,所以menu.lst文件也是grub的配置文件。其实grub.conf文件还有一个软链接,/etc/grub.conf文件也是grub.conf文件的软链接,

如下图所示:

三个文件随意用哪个文件都可以,看你个人习惯。

这里还要说明一下splash.xpm.gz文件。

splash.xpm.gz文件里边标识的是grub启动的时候界面的背景图像,如可以自定义颜色。但是编辑格式很不令人输入,一般也没有人修改splash.xpm.gz文件,除非你自己要做一个Linux发行版,并且想我的发行版本和标准的Linux发行版本不太一样,才用修改。

grub. conf配置文件中会有splash.xpm.gz文件的信息。

4、/grub目录中其他的文件简单介绍

  • device.map文件:grub中硬盘的设备文件名与系统的设备文件名的对应文件。
  • e2fs_stage 1_5文件:ext2/ext3文件系统的stage 1.5文件。
  • fat_stage 1_5文件:FAT文件系统的stage 1.5文件。
  • ffs_stage 1_5文件:FFS文件系统的stage 1.5文件。
  • iso9660_stage 1_5文件:iso9660文件系统的stage 1.5文件。
  • jfs_stage 1_5文件:jfs文件系统的stage 1.5文件。
  • minix_stage 1_5文件:minix文件系统的stage 1.5文件。
  • reiserfs_stage 1_5文件:reiserfs文件系统的stage 1.5文件。
  • stage1文件:安装到引导扇区中的stage1的备份文件。
  • stage2文件:stage2的备份文件。
  • ufs2_stage 1_5文件:UFS文件系统的stage 1.5文件。
  • vstafs_stage 1_5文件:vstafs文件系统的Stage 1.5文件。
  • xfs_stage 1_5文件:xfs文件系统的Stage 1.5文件。
  • grub.conf文件:grub的配置文件。
  • menu.lst -> ./grub.conf文件:grub的配置文件。和grub.conf是软链接,所以两个文件修改哪个都可以。
  • splash.xpm.gz文件:系统启动时,grub程序的背景图像。

总结:

其实/grub目录中主要就是grub的配置文件和各种文件系统的stage1.5文件。不过grub的配置文件有三个/boot/grub/grub.conf/boot/grub/menu.lst/etc/grub. conf,这三个配置文件是软链接,所以修改哪一个都可以,我个人更习惯为/etc/grub.conf这个文件。

『学了就忘』Linux启动引导与修复 — 69、启动引导程序(grub)的更多相关文章

  1. 『学了就忘』Linux启动引导与修复 — 72、Linux系统的修复模式(单用户模式)

    目录 1.单用户模式常见的错误修复 2.通过单用户模式修改系统密码 (1)进入grub启动引导程序中 (2)编辑相应的系统启动内容 (3)编辑grub配置文件内容 (4)启动系统 (5)修改root用 ...

  2. 『学了就忘』Linux启动引导与修复 — 74、Linux系统的修复模式(光盘修复模式)

    目录 1.光盘修复模式概念 2.光盘修复模式修复系统问题 (1)准备系统光盘 (2)进入BIOS (3)修改BIOS的启动顺序 (4)进入光盘修复模式 (5)修复系统 (6)修复系统实操 (7)总结 ...

  3. 『学了就忘』Linux启动引导与修复 — 71、grub启动引导程序的加密

    目录 1.什么是grub加密 2.grub加密步骤 3.grub加密的lock属性 1.什么是grub加密 上篇文章说了,系统在开机的时候,有一个5秒的读秒时间,方便你进入到grub界面中. 如下图所 ...

  4. 『学了就忘』Linux文件系统管理 — 60、Linux中配置自动挂载

    目录 1.自动挂载 2.如何查询系统下每个分区的UUID 3.配置自动挂载 4./etc/fstab文件修复 上一篇文章我们说明了手动分区讲解,对一块新硬盘进行了手动分区和挂载. 但是我们发现重启系统 ...

  5. 『学了就忘』Linux文件系统管理 — 64、磁盘配额的配置步骤

    目录 1.手工建立一个5GB的分区 2.建立需要做限制的三个用户 3.在分区上开启磁盘配额功能 4.建立磁盘配额的配置文件 5.开始设置用户和组的配额限制 6.启动和关闭配额 7.磁盘配额的查询 8. ...

  6. 『学了就忘』Linux启动引导与修复 — 68、Linux系统运行级别

    目录 1.Linux系统运行级别介绍 2.查看运行级别 3.修改当前系统的运行级别 4.系统默认运行级别 5./etc/rc.d/rc.local文件说明 1.Linux系统运行级别介绍 Linux默 ...

  7. 『学了就忘』Linux启动引导与修复 — 70、grub启动引导程序的配置文件说明

    目录 1.grub中分区的表示方法 2.grub的配置文件 3.grub的配置文件内容说明 (1)grub的整体设置 (2)CentOS系统的启动设置 1.grub中分区的表示方法 在说grub启动引 ...

  8. 『学了就忘』Linux文件系统管理 — 66、通过图形界面进行LVM分区

    目录 1.选择自定义分区 2.分配boot分区 3.创建LVM物理卷 4.生成卷组 5.创建逻辑卷 6.格式化安装 我们先用新安装Linux系统时的图形化界面,来演示一下LVM逻辑卷如何进行分区. 提 ...

  9. 『学了就忘』Linux基础 — 6、VMware虚拟机安装Linux系统(超详细)

    目录 1.打开VMware虚拟机软件 2.选择Linux系统的ISO安装镜像 3.开启虚拟机安装系统 (1)进入Linux系统安装界面 (2)硬件检测 (3)检测光盘 (4)欢迎界面 (5)选择语言 ...

随机推荐

  1. pycharm基本使用与破解

    一.pycharm基本使用 pycharm这款ide软件虽然功能强大,但正因为他的强大,所以小白在刚使用这款软件时上手会有点难度,今天我们就来介绍一下ptcharm的基本使用. 1.基本配置 我们安装 ...

  2. Matlab+Qt开发笔记(二):Qt打开mat文件显示读取的数据

    前言   介绍了基础环境,最终是为了读取显示.mat文件,本篇读取mat文件并显示.   补充   测试的mat文件是double类型的. Matlab库数据类型 变量类型:matError,错误变量 ...

  3. LeetCode刷题 DFS+回溯

    一.DFS介绍 二.LeetCode 实战 LC 17. 电话号码的字母组合 解法思路 解题步骤 代码 LC 79. 单词搜索 解题思路 解题步骤 代码 LC 46. 全排列 解题思路一 解题步骤 代 ...

  4. c++学习笔记1(引用)

    引用 格式:类型名&引用名=某变量名: 概念 实例:编写交换整型变量的函数对比 不用引用 实机操作 使用引用 实机操作 实例2:用作函数的返回值 可对函数返回值赋值 常引用 使用格式,在引用前 ...

  5. Flask搭建弹幕视频网站(1)

    说在前面 也不知道最后能不能完成网站,所以就想把这十多天来学习到的点点滴滴记录下来.学的越来越多,所谓全栈也是需要前端基础,越来越感受到压力,但是遇到一个问题就解决一个问题,慢慢习惯之后感觉也还行.说 ...

  6. 浏览器调用接口正常,jmeter调不通的可能原因

    首先,还是http状态码介绍(网上都能找到这些简介): 1xx 信息,服务器收到请求,需要请求者继续执行操作 2xx 成功,操作被成功接收并处理 3xx 重定向,需要进一步的操作以完成请求 4xx 客 ...

  7. 部署一个支持Dapr 的Kubernetes APISIX Ingress

    在这篇文章中,我将展示如何创建一个 APISIX控制器,该控制器在 Kubernetes 集群中公开启用 Dapr 的应用程序. 本质上,APISIX控制器将配置相同的标准 Dapr annotati ...

  8. Python基础(使用模块)

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- ' a test module ' __author__ = 'Michael Liao' import ...

  9. vs2012换肤功能,vs2012主题及自定义主题

    vs2012 默认的主题只有浅色和深色两种,深色太黑了,浅色又太亮了!怎么办? 研究不少时间终于找到了怎么编辑vs2012的皮肤 现在开始吧 打开vs2012-工具--扩展和更新 在联机中搜索 The ...

  10. [hdu7011]被EI加0了

    注意到仅关心于权值大小,预处理出$F_{i}(n)$​​​​表示$a_{1},a_{2},...,a_{n}$​​​​中恰填$i$​​​​​​种不同的数的方案数,那么显然答案即为$\sum_{i=1} ...