GRUB(bootloader)
GRUB
- grub legacy版本 (grub 0.x:grub(legacy) Centos 5,6)
- stage2及内核等通常放置于一个基本磁盘分区(boot分区)
- 配置文件:/boot/grub/grub.conf
grub legacy版本 (grub 0.x:grub(legacy) Centos 5,6)
要加载grub所在的磁盘时,会读取这个磁盘的MBR,同时会加载stage1stage1会尝试读取后扇区的stage1_5阶段,
stage1_5阶段会帮助stage1中的bootloader识别stage2所在的分区上的文件系统,然后加载stage2所在的磁盘分区,这个分区不但有stage2阶段,还有内核和ramdisk等。
- stage1:运行Boot Loader主程序,这个程序必须要安装在启动区(即MBR中)。因为MBR空间有限,因此在MBR当中仅安装Boot Loader的最小程序,并没有安装Boot Loader的相关配置文件
- stage1_5:MBR之后的扇区,让stage1中的BootLoader能识别stage2所在的分区上的文件系统(相当于文件系统的驱动)
- stage2:boot目录所在的磁盘分区(/boot/grub)
配置文件:/etc/grub.conf软链接到/boot/grub/grub.conf
/boot/grub/menu.lst软链接到/boot/grub/grub.conf
stage2及内核等通常放置于一个基本磁盘分区(boot分区)
boot单独分区是用来存放与Linux系统启动有关的程序,比如内核文件、启动引导装载程序,启动菜单配置文件等;
boot作为一个单独的分区,也就意味着这个单独分区下有一个grub,因为grub刚启动的时候,操作系统还没有启动(真正的根文件系统还没有被加载),所以,不能通过访问/boot/grub来实现,但是我们又需要访问这个文件来执行stage2 阶段。所以,grub中就有一个root命令,指明的就是把stage2 阶段直设为根,而grub自带有文件系统驱动(stage 1.5),所以就可以直接访问分区及根下的所有文件即kernel,initrd等来选择内核启动;
boot目录,有没有单独分区(或者说引导分区是不是一个独立的分区),决定了在grub中的访问路径是否一样。而grub中的root命令,指明的就是这个根分区是谁,如果boot被单独分区了,那么就直接指向这个新分区,访问路径就直接把boot给去掉了;如果boot没有被单独分区,就是挂在根分区上,那就意味着/boot目录是绕不过去的,访问的时候只能先访问根,在访问根下的boot。
grub要想访问某一分区,这个分区必须是基本磁盘分区,不可能是提供了非常复杂的驱动程序(RAID或LVM)。如果想把根做的复杂些(比如LVM)但又不对boot做单独分区,那把逻辑卷往分区上一放,就找不到grub中的stage2阶段了,所以,要想把根做的复杂,就只能把boot作为一个单独的基本磁盘分区;
如果不使用逻辑卷,boot是可以不用单独分区的。
stage2的主要功能:
1、提供菜单、并提供交互式接口
e:编辑模式,用于编辑菜单
c:命令模式,交互式接口
2、 加载用户选择的内核或操作系统
允许传递参数给内核
可隐藏此菜单
3、为菜单提供了保护机制
为编辑菜单进行认证
为启用内核或操作系统进行认证
GRUB识别硬盘设备:(hd#,#)表示第几块磁盘的第几块分区
hd# 磁盘编号用数字表示,从0开始编号
# 分区编号用数字表示,从0开始编号
例如(hd0,0)表示第一块硬盘的第一个分区
配置文件:/boot/grub/grub.conf
default=# 设定默认启动菜单项;菜单项(title)编号从0开始
timeout=# 指定菜单项等待选择的时长
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE 指明菜单背景图片文件路径
hiddenmenu 隐藏菜单,如果有多个菜单项,只显示默认启动菜单项
password [–md5] STRING 编辑菜单项需要认证
title TITLE 定义菜单项"标题", 可出现多次
root (hd#,#) grub查找stage2及kernel文件所在设备分区;为grub的"根"
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS] 启动的内核文件
initrd /PATH/TO/INITRAMFS_FILE 与内核匹配的initramfs文件
password [–md5] STRING 启动选定内核或操作系统时需要认证
每行详细解释:
default=#: 设定默认启动的菜单项;假如同时装有多个操作系统,0表示定义的第一个title系统,1表示定义的第二个title系统,以此类推
timeout=#:表示可供选择的等待时间,如果超出5秒,则使用默认的启动条目default定义的
splashimage=(hd#,#)/PATH/TO/XPM_FILE:菜单背景图片文件路径
hiddenmenu:隐藏菜单,默认是不显示菜单信息,如果要想显示菜单,可以将该配置信息注释即可
password [–md5] STRING: 启动菜单编辑认证
title TITLE:定义菜单项“标题”(操作系统名称), 可出现多次,用来引导不同的操作系统或内核
root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub"根"。也就是说,表示的是内核文件的存放位置,这里指的是分区位置,而非根目录
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:内核的名称,以及一些启动时的核心参数。由于启动过程中需要挂载根目录,因此就需要指定根目录所在的分区。rhgb表示色彩显示,quiet表示静默模式加载内核
initrd/PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件,虚拟文件系统
password [–md5] STRING: 启动选定的内核或操作系统时进行认证
grub-md5-crypt命令生成密钥:
[root@localhost ~]# grub-md5-crypt
Password:
Retype password:
1 1 1TcvuB$S9n4SJLUnvoM3NXYT6Fk2.
编辑grub.conf文件将秘钥添加到相应位置vim /etc/boot/grub.conf
passwd --md5 1 1 1TcvuB$S9n4SJLUnvoM3NXYT6Fk2.
https://github.com/beatfan/UEFI_grub2
GRUB(bootloader)相关推荐
- 菜鸟学Linux 第033篇笔记 bootloader,inittab
菜鸟学Linux 第033篇笔记 bootloader,inittab Linux 系统自启动流程 PC OS (Linux) POST-->BIOS(Boot Sequence)-->M ...
- 20-1.系统启动和内核管理centos6(grub,chkconfig,proc,lsmod)
Linux组成 Linux: kernel+rootfs kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs:程序和glibc(库) 库:函数集合, functi ...
- linux grub 引导日志,Linux系统--Linux的Grub应用
grub应用 1.Grub(bootloader):全称为:GRand Unified Bootloader. 现在存在两个版本: grub 0.x: grub legacy grub 1.x:gru ...
- 【问题收录】Ubuntu(14.04)那些我遇到的各种事
1."启动会话失败"的解决方法 1.1问题描述 在登录的时候输入密码总是出现启动会话失败的提示 1.2 解决方案 按住 ctrl + Alt + F1 进入到tty 输入你自己的用 ...
- Linux基础命令使用
date: 日期和时间 date[options] [+FORMAT] %s:时间戳计时法,从Unix元年(1970-01-01 00:00:00)到此刻所经过的秒数 %F,%D %T %Y %m % ...
- Linux学习整理(一)
自学Linux已经两个星期了(不算之前的水课),之前也学过一些Linux,但不像现在这种学习状态.这几天除了上课,我的首要任务就是学习Linux! 在这两个星期的学习中,通过看马哥教育的视频和鸟哥的私 ...
- 内核代号101 — 动手写自己的内核
本文由极客范-何伟寰翻译自 Arjun Sreedharan .欢迎加入 极客翻译小组 ,同我们一道翻译与分享.转载请参见文章末尾处的要求. Hi, 大家好. 在这篇文章中,我们将从零开始,动手编写 ...
- Linux文件系统中文版,Linux 文件系统-Go语言中文社区
文件系统: rootfs: 根文件系统 FHS: linux /boot : 系统启动相关的文件,如内核,initrd, 以及grub(bootloader) /dev : 设备文件 设备文件: 块设 ...
- xcat 安装(liunx高性能刀片集群管理软件)
xcat 安装(liunx高性能刀片集群管理软件) 标签: 集群managercomments脚本timezoneservice 2012-06-18 14:03 9968人阅读 评论(4) 收藏 举 ...
最新文章
- FD.io/VPP — VPP 的实现原理解析
- 【杂谈】为什么有三AI自断财路,从来不接广告
- 来电掉队,共享充电宝或许只是外表光鲜
- Shiro 权限标签
- lol手游账号被移至美洲服务器,LOL手游“行窃预兆”遭玩家嫌弃,移除偷钱后成最鸡肋符文?...
- docker部署服务实现文件上传到本地问题解决
- eclips断点调试
- knot DNS 01 Tips
- 以直播场景为例对音视频相关概念扫盲
- 使用detours技术hook系统API
- openjudge 买书
- 信息学奥赛一本通|1183:病人排队
- iOS自定义UITableViewRowAction
- R 单样本wilcoxon test
- HTML5与CSS3基础教程学习笔记【第三章 基本HTML结构】
- 当电脑开不了机出现自动修复时
- 中南大学计算机网络期末试卷,期末试卷,需要的自取
- QT+ffmpeg+SDL2播放视频流
- Vue项目报错:sockjs.js?9be2:1603 GET http://10.179.116.126:8080/sockjs-node/info?t=166442
- Tc3.0/Tc2.0使用方法
热门文章
- linux 交换机tftp服务,Linux制作之Linux tftp服务安装与设置(atftp)仓酷云
- Veeam Backup Replication 11 - 虚拟、物理和云备份软件
- 享用一生100种最实用生活小窍门
- Linux开发入门笔记——Linux使用基础
- C++题解:棋子等级
- 全面推进实景三维中国建设 自然资源部明确这些要求 点卯-三维视频融合 魔镜系列
- java爬虫案例——SpringBoot使用HttpClient、Jsoup爬取京东手机数据
- SAP那些事-职业篇-8-顾问“三宝”
- Dynatrace monitoring as code
- ansible的setup模块和Facts变量及magic变量