『学了就忘』Linux启动引导与修复 — 69、启动引导程序(grub)
提示:
简单地说,
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. conf
、menu.lst
、splash.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)的更多相关文章
- 『学了就忘』Linux启动引导与修复 — 72、Linux系统的修复模式(单用户模式)
目录 1.单用户模式常见的错误修复 2.通过单用户模式修改系统密码 (1)进入grub启动引导程序中 (2)编辑相应的系统启动内容 (3)编辑grub配置文件内容 (4)启动系统 (5)修改root用 ...
- 『学了就忘』Linux启动引导与修复 — 74、Linux系统的修复模式(光盘修复模式)
目录 1.光盘修复模式概念 2.光盘修复模式修复系统问题 (1)准备系统光盘 (2)进入BIOS (3)修改BIOS的启动顺序 (4)进入光盘修复模式 (5)修复系统 (6)修复系统实操 (7)总结 ...
- 『学了就忘』Linux启动引导与修复 — 71、grub启动引导程序的加密
目录 1.什么是grub加密 2.grub加密步骤 3.grub加密的lock属性 1.什么是grub加密 上篇文章说了,系统在开机的时候,有一个5秒的读秒时间,方便你进入到grub界面中. 如下图所 ...
- 『学了就忘』Linux文件系统管理 — 60、Linux中配置自动挂载
目录 1.自动挂载 2.如何查询系统下每个分区的UUID 3.配置自动挂载 4./etc/fstab文件修复 上一篇文章我们说明了手动分区讲解,对一块新硬盘进行了手动分区和挂载. 但是我们发现重启系统 ...
- 『学了就忘』Linux文件系统管理 — 64、磁盘配额的配置步骤
目录 1.手工建立一个5GB的分区 2.建立需要做限制的三个用户 3.在分区上开启磁盘配额功能 4.建立磁盘配额的配置文件 5.开始设置用户和组的配额限制 6.启动和关闭配额 7.磁盘配额的查询 8. ...
- 『学了就忘』Linux启动引导与修复 — 68、Linux系统运行级别
目录 1.Linux系统运行级别介绍 2.查看运行级别 3.修改当前系统的运行级别 4.系统默认运行级别 5./etc/rc.d/rc.local文件说明 1.Linux系统运行级别介绍 Linux默 ...
- 『学了就忘』Linux启动引导与修复 — 70、grub启动引导程序的配置文件说明
目录 1.grub中分区的表示方法 2.grub的配置文件 3.grub的配置文件内容说明 (1)grub的整体设置 (2)CentOS系统的启动设置 1.grub中分区的表示方法 在说grub启动引 ...
- 『学了就忘』Linux文件系统管理 — 66、通过图形界面进行LVM分区
目录 1.选择自定义分区 2.分配boot分区 3.创建LVM物理卷 4.生成卷组 5.创建逻辑卷 6.格式化安装 我们先用新安装Linux系统时的图形化界面,来演示一下LVM逻辑卷如何进行分区. 提 ...
- 『学了就忘』Linux基础 — 6、VMware虚拟机安装Linux系统(超详细)
目录 1.打开VMware虚拟机软件 2.选择Linux系统的ISO安装镜像 3.开启虚拟机安装系统 (1)进入Linux系统安装界面 (2)硬件检测 (3)检测光盘 (4)欢迎界面 (5)选择语言 ...
随机推荐
- BQ40Z50固件怎么升级?告诉你BQ系列芯片内部结构和升级方法
一 BQ芯片初步认识 包括BQ40Z50在内,BQ系列电池管理芯片看起来是一个芯片,其实芯片里面封装了两个die.一个是MCU部分负责计算和控制,其采用的是bqBMP内核的16位处理器:另外一个die ...
- tcp 三次握手建立连接难点总结
所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包. 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号 ...
- Redis源码分析(adlist)
源码版本:redis-4.0.1 源码位置: adlist.h : listNode.list数据结构定义. adlist.c:函数功能实现. 一.adlist简介 Redis中的链表叫adlist( ...
- C++ new 运算符 用法总结
C++ new 运算符 用法总结 使用 new 运算符 分配内存 并 初始化 1.分配内存初始化标量类型(如 int 或 double),在类型名后加初始值,并用小括号括起,C++11中也支持大括号. ...
- 图文详解 Java 字节码,让你秒懂全过程
原文地址:https://blog.csdn.net/AliceSmith1/article/details/80051153 即便对那些有经验的Java开发人员来说,阅读已编译的Java字节码也很乏 ...
- Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置
Django 小实例S1 简易学生选课管理系统 第2节--新建项目(project)并进行设置 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 0 ...
- MySQL配置参数innodb_flush_log_at_trx_commit
innodb_flush_log_at_trx_commit 此参数有3个值可设置:0.1.2 0表示每秒刷写一次日志到硬盘,极端情况下MySQL或操作系统挂了最多丢1秒的数据更新 1表示每次事务提交 ...
- [bzoj5340]假面
修改:维护g[i][j]表示第i个数为j的概率,从前往后转移 转移方程:g[id][i]=g[id][i-1]*p+g[id][i]*(1-p),初始g[i][a[i]]=1 询问:对于每一个人i,输 ...
- oracle 创建空间索引
1. 首先进行查询,判断数据是否已经建立相应的空间元数据 select * from user_sdo_geom_metadata t where t.table_name like '%表名%'; ...
- 千呼万唤,web人脸识别登录完整版来了,这样式我爱了
大家好,我是小富~ 在我最开始写文章的时候曾经写过一篇文章 基于 Java 实现的人脸识别功能,因为刚开始码字不知道写点什么,就简单弄了个人脸识别的Demo. 但让我没想到的是,在过去的一年里有好多好 ...