Linux_Grub2、系统启动流程_RHEL7

简介:

前言

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
  • 1
  • 1

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  #输入密码
  • 1
  • 1

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

cat << EOF
set superusers="jmilk"
password jmilk grub.pbkdf2.shaxxxxxxxxxxxxxxx  #加密密码
EOF
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

更新grub配置后并重启

grub2-mkconfig -o /boot/grub2/grub.cfg
systemctl reboot
  • 1
  • 2
  • 1
  • 2

initramfs文件

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

转载:http://blog.csdn.net/jmilk/article/details/49928853

目录
相关文章
|
1天前
|
算法 Linux 调度
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
6 1
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
|
1天前
|
Linux 调度 数据库
|
1天前
|
监控 安全 Linux
Linux系统入侵排查(三)
本文介绍了Linux系统入侵排查的相关知识。首先解释了进行系统入侵排查的原因,即当企业遭受黑客攻击、系统崩溃或其他安全事件时,需要迅速恢复系统并找出入侵来源。接着,重点讲述了日志入侵排查的重要性,因为日志文件记录了系统的重要活动,可以提供入侵行为的线索。
|
1天前
|
安全 Linux Shell
Linux系统入侵排查(二)
本文介绍了Linux系统入侵排查的步骤,包括检查历史命令记录、可疑端口和进程、开机启动项以及定时任务。作者强调了了解这些技能对于攻防两端的重要性,并提供了相关命令示例,如查看`/root/.bash_history`记录、使用`netstat`分析网络连接、检查`/etc/rc.local`和`/etc/cron.*`目录下的可疑脚本等。此外,还提到了如何查看和管理服务的自启动设置,以判断是否被恶意篡改。文章旨在帮助读者掌握Linux服务器安全维护的基本技巧。
|
1天前
|
缓存 安全 Linux
Linux系统入侵排查(一)
本文探讨了在遭遇黑客入侵或系统异常时进行应急响应和排查的必要性,重点介绍了基于Kali Linux的入侵排查步骤。排查的目标是找出潜在的恶意活动,恢复系统的安全性,并防止未来攻击。总结来说,进行Linux系统入侵排查需要密切关注账号安全,跟踪历史命令,及时识别并消除安全隐患。同时,保持对最新攻击手段和技术的了解,以便更好地防御和应对潜在的网络安全威胁。
|
1天前
|
Linux C语言
【Linux】 拿下 系统 基础文件操作!!!
怎么样,我们的猜测没有问题!!!所以语言层的文件操作函数,本质底层是对系统调用的封装!通过不同标志位的封装来体现w r a+等不同打开类型! 我们在使用文件操作时,一般都要使用语言层的系统调用,来保证代码的可移植性。因为不同系统的系统调用可以会不一样!
11 2
|
2天前
|
负载均衡 Linux 应用服务中间件
Linux系统中前后端分离项目部署指南
Linux系统中前后端分离项目部署指南
|
2天前
|
关系型数据库 MySQL Linux
在Linux系统上实现高效安装与部署环境的全方位指南
在Linux系统上实现高效安装与部署环境的全方位指南
|
1天前
|
安全 Linux 测试技术
|
1天前
|
安全 Linux Windows
Linux中Shutdown命令使用介绍
Linux中Shutdown命令使用介绍