centos6.x和centos7.x开机启动流程和密码破解

前端之家收集整理的这篇文章主要介绍了centos6.x和centos7.x开机启动流程和密码破解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

centos6.xcentos7.x开机启动流程和密码破解

一、centos6.x开机启动流程和密码破解方法

1centos6.x开机启动流程

1post加电自检

这个过程是开机后,BIOSUEFI进行硬件检查的阶段

2MBR引导

自检硬件没有问题时候,这里以BIOS为例,BIOS将会直接去找硬盘的第一个扇区,找到前446字节,将MBR加载到内存中,MBR将告诉程序下一阶段去哪里找系统grub引导。此阶段属于grub的第一阶段。grub还有1.5阶段和2阶段。

3GRUB引导

grub1.52阶段,信息默认存放在扇区中,如果使用grub-install生成2阶段的文件是存放在/boot分区中的。
为了加载内核系统,不得不加载/boot分区,而加载/boot分区,需要有/boot分区的驱动,/boot分区驱动是放在/boot分区中的,啊,我们好像进入了死循环了,Linux是怎么解决的呢?就是靠放在1.5阶段中的数据,是放在第一个扇区后的后续扇区中,具体占用多少字节,不太清楚,只知道1.5阶段和2阶段总共27个扇区。

stage1.5

mbr之后的扇区,识别stage2所在的分区上的文件系统

stage2

开机启动的时候看到的Grub选项、信息,还有修改GRUB背景等功能都是stage2提供的,stage2会去读入/boot/grub/grub.conf或者menu.lst配置文件

4)读取grub.conf文件

读取grub.conf文件以确定内核启动的参数,准备启动内核

5)启动内核

加载内核,核心开始解压缩,启动一些最核心的程序。
因为为了让内核足够轻小,硬件驱动并没有放在内核文件里面,我们可以看到内核很小,4M左右,我们可以想象Windows中的驱动,安装系统时候还需要使用驱动软件下载好长时间呢
因此需要使用/initramfs-2.6.32-696.el6.x86_64.img来驱动硬件

[root@CentOS6 ~]# ll -h /boot/vmlinuz-2.6.32-696.el6.x86_64

-r-xr-xr-x. 1 root root 4.1M Jul8 21:06 /boot/vmlinuz-2.6.32-696.el6.x86_64

6)加载伪文件系统(ramdisk),

内核已将启动起来了,再调用ramdisk文件,尝试驱动所有的硬件设备,到这一步,内核起来了,所有驱动也装上了,因此后面的启动就可以交给程序了

7)启动init进程

grub中默认指定init=/sbin/init程序,可以在grub.confkernel自定义执行程序init=/bin/bash,此时可以绕过下面步骤直接进入bash界面。
内核源代码文件显示996行左右,规定了init启动的顺序,/sbin/init->/etc/init->/bin/init->/bin/sh,/bin/bash没有写,应该是和/bin/sh一样吧

1、读取/etc/inittab文件inittab文件里面定义了系统默认运行级别,这一步做了一些工作如下:

a)初始运行级别(RUN LEVEL)

b)系统初始化脚本

c)对应运行级别的脚本目录

d)定义UPS电源终端/恢复脚本

e)在虚拟控制台生成getty,生成终端

f)在运行级别5初始化X

2、执行/etc/rc.d/rc.sysinit程序

系统初始化一些脚本,主要完成以下工作

a)设置主机名

b)设置欢迎信息

c)激活udevselinux可以在grub.conf,kernel添加selinux=0关闭selinux

d)挂载/etc/fstab文件中定义的文件系统

e)检测根文件系统,并以读写方式重新挂载根文件系统

f)设置系统时钟

g)激活swap设备

h)根据/etc/sysctl.conf文件设置内核参数

i)激活lvmsoftware raid设备

j)加载额外设备的驱动程序

k)清理操作

3/etc/rc#.d/文件(各种服务)

里面定义的是各种服务的启动脚本,可以ls查看,S开头代表开机启动的服务,K开头的是关机要执行的任务。#代表数字,一个数字代表一个运行级别,共7个运行级别,这里就不多说了

4/etc/rc.d/rc.local文件,这里面可以自定义开机启动的命令。

8)执行/bin/login

执行/bin/login程序,等待用户登录

2centos6.x密码破解方法

1)重启服务器,在读秒的时候按任意键,就会出现如下界面,在此界面中按下键盘中的‘e’,从而进入grub模式

clip_image002[20]

2)上面按下e之后就会进入到如下界面。使用上下键将光标移动到kernel那一行,然后再一次按‘e’,进入kernel该行的编辑界面

clip_image004[20]

3)在kernel编辑界面,按一下空格键,然后在后面输入’1’’single’,之后按下回车键enter退出kernel编辑界面

clip_image006[20]

clip_image008[20]

4)上面按回车键后会回到grub模式界面,在此界面再次将光标移动到kernel那一行,然后按下‘b’来启动系统进入单用户模式

clip_image010[20]

5)现在不用输入任何密码就已经进入单用户模式了,然后就可以使用passwd修改root用户密码了。

clip_image012[20]

6)密码修改完成之后,即可重启系统进入正常的多用户模式了。

二、centos7.x开机启动流程和密码破解方法

1centos7.x开机启动流程

CentOS7CentOS6启动流程差不多,只不过到init程序时候,改为了systemd,因此详细解释一下systemd后的启动流程

1uefiBIOS初始化,开始post开机自检

2)加载mbr到内存

3GRUB阶段

4)加载内核和inintamfs模块

5)内核开始初始化,使用systemd来代替centos6以前的init程序

n 执行initrd.target包括挂载/etc/fstab文件中的系统,此时挂载后,就可以切换到根目录了

n initramfs文件系统切换到磁盘根目录

n systemd执行默认target配置

centos7表面是有“运行级别”这个概念,实际上是为了兼容以前的系统,每个所谓的“运行级别”都有对应的软连接指向,默认的启动级别时/etc/systemd/system/default.target,根据它的指向可以找到系统要进入哪个模式

模式:

0 ==> runlevel0.target,poweroff.target

1 ==> runlevel1.target,rescue.target

2 ==> runlevel2.target,multi-user.target

3 ==> runlevel3.target,multi-user.target

4 ==> runlevel4.target,multi-user.target

5 ==> runlevel5.target,graphical.target

6 ==> runlevel6.target,reboot.target

n systemd执行sysinit.target,有没有很眼熟?是的,在CentOS6上是被叫做rc.sysint程序,初始化系统及basic.target准备操作系统

n systemd启动multi-user.target下的本机与服务器服务

n systemd执行multi-user.target下的/etc/rc.d/rc.local

6Systemd执行multi-user.target下的getty.target登录服务getty.target我们也眼熟,它是启动终端的systemd对象。如果到此步骤,系统没有被指定启动图形桌面,到此就可以结束了,如果要启动图形界面,需要在此基础上启动桌面程序

7systemd执行graphical需要的服务

CentOS6CentOS7启动区别

系统启动和服务器守护进程管理器,它不同于centos5Sysv initcentos6UpstartUbuntu制作出来),systemd是由Redhat的一个员工首先提出来的,它在内核启动后,服务什么的全都被systemd接管,kernel只是用来管理硬件资源,相当于内核被架空了,因此linus很不满意Redhat这种做法。

2centos7.x密码破解方法

1)开机出现如下的引导菜单时,按字母 ’e’ 键进入编辑模式。

clip_image014[20]

2)上面按 ’e’ 之后进入下面的编辑模式,然后按下键到字符的最下面,把ro修改rw,并在字符集的后面添加init=/bin/sh,然后按ctrl+x重启即可进入无密码的系统模式。

clip_image016[20]

3)上面修改完成之后按ctrl+x即可进入下面的无密码模式,然后就可以使用passwd修改root密码,修改完成使用”exec /sbin/init”重启即可进入正常模式。

clip_image018[25]

猜你在找的CentOS相关文章