关闭

Linux_Grub2、系统启动流程_RHEL7

标签: linux流程控制密码
2475人阅读 评论(0) 收藏 举报
分类:

目录

前言

RHEL7使用GRUB2,引导程序。

系统启动流程

控制RHEL7启动过程

  1. 开机
  2. 加载主板BIOS
  3. 检测硬件是否有故障
  4. 找启动介质,boot分区MBR(Master Boot Recorder)512Byte,Bootloader(446B)+分区表(64B)+校验结束位(2B),一个分区的标识数据占用16B。内核保存在/boot,通过GRUB2将内核加载到内存。
  5. 通过修改grub.cfg,来实现对系统启动选项的控制。GRUB2实际上是一个微型的OS,他可以识别到一些常用的文件系统,GRUB2运行时会读取自己的配置文件/boot/grub2/grub.cfg。每个内核条目都会以menuentry开头 ,menuentry包含标题,选项(不建议修改),menuentry后面有一对大括号,其中都是启动项,启动项以TAB开头 ,linux16这行指定内核的位置,根分区的位置,以只读方式挂载根分区 ,字符集,键盘布局,语言,rhgb(以图形化方式显示启动过程),quiet(启动过程出现错误提示) 。根分区都是xfs格式的,xfs需要驱动才能读取文件,/lib/modules/3.10.0-123.el7.x86_64/kernel/fs/xfs驱动的位置,通过initrd16将启动相关的驱动和模块解压到内存,再读取根分区(xfs)的数据。
    注意:RHEL7的grub.cfg不能直接修改,要通过修改/etc/default/grub来间接编辑grub.cfg。

编辑gurb.cfg

修改配置文件/etc/default/grub
修改后用 grub2-mkconfig指令成grub2.cfg
在grub2-mkconfig生成配置文件时需要加载/etc/grub.d目录,此目录下有下列文件:
1. 00_header 设置 grub 的默认参数
2. 30_os_prober 设置其他分区中的系统(硬盘中有多个操作系统时设置)
3. 40_custom、41_custom 用户自己自定义的配置
4. 10_linux 系统中存在多个 linux 版本
5. 20_ppc_terminfo 设置tty控制台
/boot/grub2/grub.cfg 是上面文件的组合体
设置指定内核启动
vim /etc/default/grub

grub2-set-default saved|number

RHEL7启动级别

修改系统运行级别:

临时修改
进入系统后修改:systemctl isolate TAB
未进入系统前修改:按 e,到linux16行尾,加入systemd.unit=xxxx.target
永久修改systemctl set-default TAB
TAB类型和其特性:
1. emergency.target:
sulogin提示,grub启动完成,同时系统的 root 把/只读挂载
救援模式(只挂载/而且只读,不加载/etc/fstab)
文件系统出了故障时使用。
2. graphical.target:
支持多用户,图形化和文本登录
3. multi-user.target:
支持多用户,文本登录
4. rescue.target:
sulogin(单用户模式)提示,基本的系统初始化完成,单用户模式需要口令,要输入密码。和多用户区别在于,不启动如何服务,加载了文件系统,适用于某服务设置故障,进入此模式修补。

RHEL7破密码步骤

rd.break破解
开启电脑systemctl reboot
在Grub选项上按e键,进入编辑模式
在vmlinuz 行后加入rd.break console=tty0(单用户模式)
ctrl+z 保存重启
mount -o remount,rw /sysroot 挂载系统临时根目录为可写
chroot /sysroot 改变系统目录为临时挂载目录
echo fanguiju | passwd --stdin root 修改密码
touch /.autorelabel
exit
exit
注意:若在VMWare虚拟机上操作不成功,可以尝试将rhgb(图形化启动)quiet先删除。
rd.break一般用于修改passwd或者出现重大问题,临时中断运行,未加载FileSystem,比但用户模式还要精简。若这样rd.break不能进入,则向kernel传递init=/bin.bash或init=/bin/sh参数,使用init的方法来破解。
init破解
开启电脑systemctl reboot
在Grub选项上按e键,进入编辑模式
在kernel(linux16/linux/linuxefi)行尾添加init=/bin/sh
Ctrl+x启动shell
挂载文件系统为可写模式mount –o remount,rw / 直接挂载根目录

passwd root修改root密码。
如过系统启动了selinux,必须运行以下命令,否则将无法正常启动系统:touch /.autorelabel
exec /sbin/init启动,或者用指令exec /sbin/reboot重启

grup2加密,防止破密码

获取加密密码

grub2-mkpasswd-pbkdf2  #输入密码

编辑00_header文件
vim /etc/grub.d/00_header
此文件配置初始的显示项目,如默认选项,时间限制等,加入密码验证项目,在最后一行添加:

cat << EOF
set superusers="jmilk"
password jmilk grub.pbkdf2.shaxxxxxxxxxxxxxxx  #加密密码
EOF

更新grub配置后并重启

grub2-mkconfig -o /boot/grub2/grub.cfg
systemctl reboot

initramfs文件

存放kernel 可以rw fs的驱动,当kernel加载到内存后要以ro的方式加载根分区(xfs),但是因为系统驱动存放在根分区中。所以额外将让kernel可以读取根分区的驱动全放入到initranfs中,在kernel还没有读取根分区时,initramfs文件将所有的驱动解压到内存中供kernel使用。

0
0
查看评论

Linux 引导管理器 grub2 使用简介

转自:杜昌彬的空间  首先向其致敬!有改动。 grub是Linux系统即其他类unix系统的主流bootloder,由于grub原来版本的设计存在很大缺陷,与以前的grub很不相同,其使用和配置也发生很大变化。现在很多Linux发行版本都使用了grub2作为引导系统,比如 ...
  • zhanghui_hn
  • zhanghui_hn
  • 2012-04-21 20:55
  • 1390

MFC edit控件实现自动换行

必须设置Vertical Scrollbar = TRUE 必须设置MultiLine = TRUE 必须设置Horizontal Scrollbar = FALSE 必须设置Auto HScroll&#...
  • a200638012
  • a200638012
  • 2016-07-08 17:22
  • 4826

设置MFC Edit control可以换行显示

MFC Edit control可以换行显示 1.设置edit control 属性Multiline为true 2.写入数据时,想换行的时候写入"\r\n"即可,CString str.Replace("\n","\r\n"); ...
  • a780902723
  • a780902723
  • 2014-12-09 16:52
  • 2496

MFC中EDIT控件实现换行

一、通过回车换行: 这里要有两个设置 .将控件的属性设置为Mutilines->true; .将控件的另一个属性设置为Want return->true. 水平和垂直滚动条设置: 水平滚动条,控件属性设置为:Horizontal Scroll->TRUE ...
  • dearwind153
  • dearwind153
  • 2015-12-09 21:13
  • 3914

rhel7 grub配置文件及排错 破解root密码

rhel7 grub配置文件及排错 RHEL7用了grub2,而不再是grub了 MBR分区的前446个字节存放的是系统引导程序grub,中间64字节是分区表,最后2个字节表示结束。那么什么是grub是怎么工作的呢? 简单的说,开机会经历以下几步: 1、BIOS自检,检查硬件; 2、激活M...
  • yzit0905
  • yzit0905
  • 2016-10-07 17:21
  • 978

Linux学习(CentOS-7)---Linux开机流程

Linux开机流程图: 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了...
  • huangxiang360729
  • huangxiang360729
  • 2016-09-23 23:48
  • 1514

RHEL7与6开机过程比较

在对比两个开机版本之前,还是需要先预习一下RHEL6的开机过程,http://blog.csdn.net/u013028736/article/details/51534773 这里详细介绍了开机的过程,这里简单回忆一下。下面开始对比。第一步: BIOS自检 这步是找到BIOS检查CPU...
  • u013028736
  • u013028736
  • 2016-08-11 20:35
  • 1625

运维之红帽管理员篇-----1. Linux系统简介 、 安装RHEL7系统 、 RHEL7基本操作

ONE DAY 总结: 1970-1-1 Linus Torwalds clone-vm7 cat  /etc/redhat-release  name  -r 挂载点: 在Linux访问设备资源的访问点  c...
  • xixihahalelehehe
  • xixihahalelehehe
  • 2017-09-11 18:27
  • 395

RHEL7系统修复

导读 RHEL7/Centos7系统发布这么长时间了,大家都知道这个系统的一个特点就是用systemctl代替了init系统守护进程,系统越来越模块化了。在新版的系统中许多的命令也发生了改变,grub也变为了grub2完全看不懂了,网上也有许多的新版本与老版本对比的教程。一直想试一下7版本的系...
  • u010170644
  • u010170644
  • 2016-11-17 15:45
  • 1196

Android系统启动过程分析

1. 系统启动流程简介 在linux里,每一个进程将有4G的空间,内核将这4G字节的空间分为两部分。最高的1G字节供内核使用,称为“内核空间”。而较低的3G字节供各个进程使用,称为“用户空间”。 在Linux内核启动后,init 1 (1号进程)将作为第一个用户空间 的进程来启动Android系...
  • wh_19910525
  • wh_19910525
  • 2012-04-24 20:47
  • 2740
    个人资料
    • 访问:1020142次
    • 积分:12516
    • 等级:
    • 排名:第1355名
    • 原创:286篇
    • 转载:6篇
    • 译文:1篇
    • 评论:291条
    看累了?! 我有歌你要听一下吗
    Github
    轻松一下~ Hope you enjoy !
    博客专栏
    最新评论
    广告位去除
    统计