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]

centos6.x和centos7.x开机启动流程和密码破解的更多相关文章

  1. centos6 – 探测EDD启动消息在centos 6.6上停留十分钟

    我想在我的virt-manager上调出Centos6.6qcow2图像.客人机器保持上述消息近十分钟.如何在qcow2图像中禁用EDD探测?)内核行,例如:像这样:我只说第一行,因为如果这会产生问题,你可以使用另一个菜单项,并且因为此行中使用的选项也将用于更新安装的新内核.对于第一个测试,您还可以使用virt-manager或VNC客户端连接到VM控制台,然后在Grub引导菜单中按e进行编辑,然后将此选项添加到内核命令行.

  2. centos – 无法启动kdump

    [编辑1]/var/log/messages的内容[编辑2]或者我应该将代码roroot=LABEL=更改为roroot=/dev/sda3?看起来您将crashkernel参数放入新行.这就是Kdump不是操作消息的原因.所有内核参数必须与内核放在同一行:重新启动后,看一下/var/log/messages,你会看到如下内容:和:根据this文档,试试这个:crashkernel=128M@16M

  3. centos6 – 禁用内部Intel X710 LLDP代理

    根据thislink,似乎这些X710可能正在运行内部LLDP代理,它拦截交换机的LLDP帧.我们看到的受影响机器上的固件是:禁用NIC上的内部LLDP代理的方法不起作用.尽管如此,我仍在四处寻找,但我想我有几个选择:>找到在NIC上禁用内部LLDP代理的正确方法,并使用现有方法在这些计算机上提取LLDP数据–首选.>使用NICLLDP代理并找到从NIC中提取邻居TLV的方法.有没有其他人遇到过这些卡的相同或类似问题,如果是这样,你是如何解决这个问题的?

  4. Windows命令行相当于Linux中的“时间”?

    我试图比较不同算法的性能,但没有Linux机器工作,所以我希望在Windows中有类似的命令.以下内容远非完美.但它是我能够最接近模拟UNIX时间行为的.我相信它可以改进很多.基本上我正在创建一个接收脚本块的cmdlet,生成一个进程并使用GetProcesstimes来获取Kernel,User和Elapsed次.加载cmdlet后,只需调用它即可Measure-Time-Command{your-command}[-silent]-Silent开关意味着没有从命令生成的输出例如:生成的输出:这是cmd

  5. centos – iptables nat不存在

    今天我在主机系统上的iptablesnat停止工作,我不知道发生了什么!由于vzctl从4.6更新到4.7,因此默认情况下将nf_conntrack的设置更改为禁用.相应的提交消息:…解:Independenceofdistributionitissomewherein/etcdirectory.Findit:$sudogrep-R“optionsnf_conntrackip_conntrack_disable_ve0=1”/etc/modprobe.d/andreplacethe“1”with“0”:o

  6. centos – grubby致命错误:无法找到合适的模板

    在将系统从一台服务器移动到另一台服务器之后,我正在尝试修复我的系统.它与通过网络启动的内核完美配合,但不能从磁盘启动.重新安装库存CentOS6.6内核显示此错误:我的/boot/grub/grub.conf文件看起来很好:所有文件都到位:/etc/fstab看起来也很好:怎么解决这个?有点迟到的响应,但是在CentOS7最小安装时遇到了同样的问题.解决方案是在升级内核后运行:grub2-mkco

  7. 重启后CentOS 6.5新内核无法激活

    今天我正在运行一些yum更新,并希望通过确保我有一个新的内核来验证一切都很顺利.令我惊讶的是,我注意到CentOS仍在运行2.6.32-431.5.1.el6.x86_64,即使它看起来好像已经安装了2.6.32-431.23.3.el6.实际上2.6.32-431.23.3.el6显示在/etc/grub.conf中,但不在upstart引导选项中.有什么想法吗?在更新日志中,它说:这可能是原因吗?我的/etc/grub.conf:发现问题…

  8. 使用CentOS 6.2在HyperV上进行时间同步

    我在HyperV下运行了一个CentOSVM.我安装了集成服务,CentOS显示当前的clocksource是hyperv_clocksource,但是在一周的正常运行时间后,我在VM中的时间大约是10分钟.我对新IC和可插拔时钟源的理解是,这不应该再发生了.是否需要任何其他配置才能使可插入的clockource“工作”?

  9. Ubuntu服务器,gpt分区表,mdadm,grub启动失败

    为什么grub无法启动?我认为我需要安装它的是一个单独的/boot,它不在LVM或软件RAID中,因为我的root是在RAID中,而分区表是GPT.UbuntuCD安装程序如何安装它没有这个问题,没有bios_grub设置?/vmlinuz是一个使用启动分区的符号链接,启动分区已损坏.bios_grub代码是在ext3结构的基础上编写的.这可能意味着没有挂载/boot,并且在那里看到的grub文件实际上在根系统上,而不包含内核.为什么grub不想在没有这个

  10. ubuntu – GRUB“核心图像中可能缺少某些模块”警告

    一个硬盘从我的RAID崩溃,我添加了一个新的硬盘.现在我想将GRUB安装到新硬盘上:使用grub-install/dev/sdb.我收到这些警告:在update-grub2上,我得到:cat/proc/mdstat的输出我使用apt-getinstall–reinstall重新安装了两个内核,但这些错误/警告仍然存在.有谁知道我怎么能摆脱它们?id=160785)换句话说,当您的RAID阵列性能下降时会发生这种奇怪的错误,并且一旦阵列正常运行,它就会消失.当我的RAID阵列最终完成同步时,错误在updat

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部