Linux_Grub2、系统启动流程_RHEL7

原创 2015年11月19日 15:52:06

目录

前言

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使用。

版权声明:转载请注明出处 JmilkFan:http://blog.csdn.net/jmilk 举报

相关文章推荐

Linux启动时显示Grub命令行及修改

linux修复引导菜单,出现grub命令提示符,使用命令进入系统。

lvchange的available参数

available参数在man info help中均无此参数,其实参数为:activate 写此此,值得用的人注意。 available 参数实为:  -a, --activate [a|e|...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Linux LVM硬盘管理及LVM扩容

 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当...

Linux_文件系统、磁盘分区_RHEL7

目录目录 前言 文件系统 目录结构 文件的类型 文件系统损坏后的修复 磁盘分区 分区的类型 分区最小存储单元 查看当前分区的block的大小 分区格式 MBR格式 GPT格式 mount挂载指令 挂载...
  • Jmilk
  • Jmilk
  • 2015-11-17 23:31
  • 1598

Linux_LVM、RAID_RHEL7

目录目录 LVM逻辑卷管理 把物理分区初始化为物理卷 创建卷组 建立逻辑卷 格式化 挂载 vg拓展操作 lv扩展操作 RAID RAID 类型 RAID0条带化 RAID1镜像 RAID5条带冗余 ...
  • Jmilk
  • Jmilk
  • 2015-11-17 23:18
  • 860

Linux系统启动流程及grub简单应用

CentOS启动流程650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7F/C8/wKioL1csh7SjLx-7AAD3NjWmP7...

Linux_Grub2、系统启动流程_RHEL7

目录目录 前言 系统启动流程 控制RHEL7启动过程 编辑gurbcfg RHEL7启动级别 修改系统运行级别 RHEL7破密码步骤 grup2加密防止破密码 initramfs文件前言RHEL7使用...
  • Jmilk
  • Jmilk
  • 2015-11-19 15:52
  • 1834

Android系统启动流程(四)Launcher启动过程与系统启动流程

此前的文章我们学习了init进程、Zygote进程和SyetemServer进程的启动过程,这一篇文章我们就来学习Android系统启动流程的最后一步:Launcher的启动流程,并结合本系列的前三篇...

linux系统启动流程

第一阶段,硬件引导启动。首先是 BIOS 加电自检,BIOS 找启动介质,是硬盘还是光盘或者其他启动 介质,然后再启动介质中找到 MBR。MBR 是启动介质(比如硬盘)的第一个分区的第一个扇区,大小为...

Android系统启动流程

Android系统启动过程 首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰)    Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)