有时候,遗忘了linux的root密码,无法进行登陆。可以使用linux内核的单用户模式进行破解。rhel6版本和7版本的方式是不一样的。该方法适用于centos

一、rhel6版本破解密码

开机按空格建进入grub引导菜单,必须5秒内输入

按e进入启动前编辑菜单,如下所示:

选择第二行内核kernel,再按e建进入编辑菜单

输入“空格+数字1”回车,或者输入single进入单用户模式,完成后再返回grub菜单

然后按b进入启动。这时linux就会完全按照单用户模式。

单用户模式类似于windows的安全模式,进入后只会加载内核,不会启动网络,不会加载pam模块,同时会绕开密码以管理员root身份登陆

进入单用户模式后,使用passwd命令输入新密码,无需知道之前的密码。

二、rhel7破解密码

开机按任意键进入grub引导菜单

按e进行编辑,找到有“linux16”的这一行

按"end"键,到这一行的末尾,然后输入"空格rd.break“

输入完成后,依照最下方指示,按”Ctrl+x"进入单用户模式

但是再rhel7中,直接输入pwssd是无法直接更改密码的,因为此时进入的是迷你系统,类似win pe

所谓迷你系统,就是运行在内存之中作为内核系统修改引导使用,可以理解win pe,使用的使用需要进行挂载和进入指定硬盘上目录/sysroot/

输入如下命令

mount -o remount,rw /sysroot
chroot /sysroot/

此时才算真正使用单用户模式进入系统,可以使用psswd命令修改root密码

注意,还需要更新一个空文件,作用是与selinux有关

touch /.autorelabel  #千万不能写错

至此,输入两次exit命令后进行重启,rhel7密码才算破解。

注意,如果开启了selinux,重启的时候会卡住一段时间,这时内核在进行selinux相关的配置,不要以为是死机,千万不能关机重启,不然系统会崩溃

可能需要2-5分钟,之后会再重启一次。

三、文件系统损坏

有时候一些重要的文件损坏,导致系统功能异常或者无法进入系统。

3.1文件基础知识

简单来说,一份文件包含inode和block,前者叫做索引,包含元数据(描述数据的数据),记录了文件的位置,存放位置指针等信息,后者就是数据块(可以设定)

就是正真的数据内容。一般删除文件就是删除文件的索引,文件损坏也是索引的问题,所以文件的数据还是存在的。这时只要不进行读写操作,覆盖数据,只要恢复索引就能

恢复和找到文件。

使用dumpe2fs命令检查分区信息

命令名称
  dumpe2fs - 显示ext2/ext3/ext4文件系统信息。

dumpe2fs命令语法
  dumpe2fs [ -bfhixV ] [ -o superblock=superblock ] [ -o blocksize=blocksize ] device
  语法看起来比较复杂,看不懂的直接看下面的常用命令选项和实例。

dumpe2fs命令描述
  显示device中文件系统的超级块和块组信息。

dumpe2fs常用命令选项  

选项 描述
-b 打印文件系统中的坏块
-o 不常用,检查严重损坏文件系统时指定
-f 强制显示所有信息,即便dumpe2fs对有些文件系统功能标识不能识别。
- i 显示image文件系统信息。device指定image文件的路径
-h 只显示超级块信息
-x 将已分组的块的数量用十六进制显示
-v 显示dumpe2fs的版本号并推出

dumpe2fs命令实例

  dumpe2fs查看/dev/sda1的文件系统信息。

查看信息,可以看到有很多group信息

文件系统的group就是将一段连续空间block划分在一个组中,保证存储空间的连续性和性能

linux中,一个block(块)默认是4096字节,一个group(组)是32768个block,group0是从0-32768,group1是从32768-65535

在一个文件系统中,会有一张inode表,记录所有索引和元数据信息,同时会有一个superblock超级块,用来记录文件系统所有的信息,包括所有block。

inode表损坏,文件就会损坏,superblock损坏,则文件系统损坏。

superblock保存在group0的0位置。

备份superblock保存在group1,3,5,7,9位置

每个group都会预留一定空间给superblock

3.2 使用fsck命令修复分区

fsck命令被用于检查并且试图修复文件系统中的错误。当文件系统发生错误四化,可用fsck指令尝试加以修复。

-a:自动修复文件系统,不询问任何问题;
-A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统;
-N:不执行指令,仅列出实际执行会进行的动作;
-P:当搭配"-A"参数使用时,则会同时检查所有的文件系统;
-r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;
-R:当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查;
-s:依序执行检查作业,而非同时执行;
-t<文件系统类型>:指定要检查的文件系统类型;
-T:执行fsck指令时,不显示标题信息;
-V:显示指令执行过程。

文件系统:指定要查看信息的文件系统。

linux的文件系统损坏会导致linux不正常关机,出错的时候如果系统告诉你是哪一块硬盘的分区有问题,比如是/dev/hda2,接着用如下的命令去对付它:

fsck -y /dev/hda2

结束后使用reboot命令重启系统这样就好了!

如果不知道时哪个地方出了问题,可以直接:

fsck

在随后的多个确认对话框中输入:y

结束后同样使用reboot命令重启系统这样就好了!

3.3 e2fsck命令修复分区


有时候使用fsck无法修复分区,可以尝试使用e2fsck命令

e2fsck命令用于检查第二扩展文件系统的完整性,通过适当的选项可以尝试修复出现的错误。

e2fsck执行后的传回值及代表意义如下:

  • 0 没有任何错误发生。

  • 1 文件系统发生错误,并且已经修正。

  • 2 文件系统发生错误,并且已经修正。

  • 4 文件系统发生错误,但没有修正。

  • 8 运作时发生错误。

  • 16 使用的语法发生错误。

  • 128 共享的函数库发生错误。

-a:不询问使用者意见,便自动修复文件系统;
-b<superblock>:指定superblock,而不使用预设的superblock;
-B<区块大小>:指定区块的大小,单位为字节;
-c:一并执行badblocks,以标示损坏的区块;
-C:将检查过程的信息完整记录在file descriptor中,使得整个检查过程都能完整监控;
-d:显示排错信息;
-f:即使文件系统没有错误迹象,仍强制地检查正确性;
-F:执行前先清除设备的缓冲区;
-l<文件>:将文件中指定的区块加到损坏区块列表;
-L<文件>:先清除损坏区块列表,再将文件中指定的区块加到损坏区块列表。因此损坏区块列表的区块跟文件中指定的区块是一样的;
-n:以只读模式开启文件系统,并采取非互动方式执行,所有的问题对话均设置以"no"回答;
-p:不询问使用者意见,便自动修复文件系统;
-r:此参数只为了兼容性而存在,并无实际作用;
-s:如果文件系统的字节顺序不适当,就交换字节顺序,否则不做任何动作;
-S:不管文件系统的字节顺序,一律交换字节顺序;
-t:显示时间信息;
-v:执行时显示详细的信息;
-V:显示版本信息;
-y:采取非互动方式执行,所有的问题均设置以"yes"回答。

举例

检查/dev/sda1是否有问题,如发现问题便自动修复:

e2fsck -a -y /dev/sda1

指定使用superblock修复

e2fsck -b 98304 /dev/sda6  #制定superblock的位置

一般superblock的位置可以使用dumpe2fs查到,使用group1,3,5,9的superblock也是可以的,例如32768等等。因为越靠后的superblock被破坏的几率越小,所以使用98304

这种方式为采用还原超级块的方式恢复ext文件系统。

注意!!!!!

执行e2fsck或fsck前请先umount partition,否则有机会令档案系统毁损。如果需要对根目录/进行检查及修复,便需要进入singal user mode执行!!

3.4 xfs_repair命令

fsck和e2fsck是用来修复ext文件系统的,centos7分区是xfs文件系统,则需要使用xfs_repair命令。

在使用该命令前,也是首先需要将分区卸载

xfs_repair  /dev/sda1

4、使用救援模式修改系统引导

有时候,系统引导出了问题,虽然系统还在,但是无法进入系统。此时可以使用关盘进入救援模式修复引导。

系统中存在着一个特殊区域,叫mbr,主引导记录,位于磁盘0磁道的第一个扇区。里面存放了引导程序和分区信息,这是一段固定的程序。

引导程序一定放在系统的第一块硬盘即sda中。

在插入rhel7光盘,选择进入第三行的troubleshooting

进入后,选择进入救援模式

在选择完成一确定选项

在进入救援模式命令行界面后,输入如下命令回车

chroot /mnt/sysimage/
grub2-install /dev/sda

安装完成后,输入exit进行重启,此时引导程序修复完成,可以直接进入系统。

转载于:https://blog.51cto.com/11555417/2287231

rhel6.x版本和rehel7.x版本破解密码及恢复损坏的文件分区相关推荐

  1. typora显示版本过期,请下载最新版本,可是最新版本84块钱,咋办?

    typora显示版本过期,请下载最新版本,可是最新版本84块钱,咋办? 问题一–版本过低 方法有很多种,我就介绍一下我的方法吧 像我电脑的typora就出现了这样的问题,一个是typora版本过低,要 ...

  2. 关于Keil ARM版本和Keil C51版本的共存问题(亲测通过)

    关于Keil ARM版本和Keil C51版本的共存问题(亲测通过) 测试环境: 操作系统:windows 8.1 专业版 C51版本:Keil C51 V956 ARM版本:MDK523 操作步骤 ...

  3. linux python版本_linux下更新Python版本并修改默认版本

    linux下更新Python版本并修改默认版本,有需要的朋友可以参考下. 很多情况下拿到的服务器python版本很低,需要自己动手更改默认python版本 1.从官网下载python安装包(这个版本可 ...

  4. tensorflow1.14.0  包含了1.x和2.x内容,此后版本要求兼容该版本

    tensorflow1.4  包含了1.x和2.x内容,此后版本要求兼容该版本 https://blog.csdn.net/wishchin/article/details/97613292

  5. 【Git】Git 版本管理 ( 补充提交版本 git commit --amend | 版本库提取文件 git checkout -- filename | 删除文件 git rm )

    文章目录 一.补充提交版本 git commit --amend 二.版本库提取文件 git checkout -- filename 三.删除文件 git rm 一.补充提交版本 git commi ...

  6. 【Git】Git 基础命令 ( Git 版本库概念 | 创建版本库 git init | 克隆版本库 git clone )

    文章目录 一.Git 版本库概念 二.创建版本库 git init 三.克隆版本库 git clone 一.Git 版本库概念 Git 版本库概念 : Git 版本库 Repository 又称为 G ...

  7. 【开发环境】Windows 中安装 Python 各个版本 ( 下载 Python 各版本 SDK | 安装 Python )

    文章目录 一.下载 Python 各版本 SDK 二.安装 Python 1.安装 Python 2.7 2.安装 Python 3.6.8 ( 3.7 / 3.8 / 3.9 / 3.10 安装方式 ...

  8. 【开发环境】Mac 中安装 Python3 最新版本 ( 下载 Python 最新版本 | 安装 Python3 | 验证 Python3 )

    文章目录 一.下载 Python 最新版本 二.安装 Python3 三.验证 Python3 一.下载 Python 最新版本 下载 最新 Python 版本 ; 进入 Python 主页 http ...

  9. ceph编译_Ceph编译:L版本及其之后的版本

    Ceph编译:L版本及其之后的版本. 1. 编译前准备 下载代码库 git clone git://github.com/ceph/ceph.git all 或者 git clone --recurs ...

  10. Pytorch:深度学习中pytorch/torchvision版本和CUDA版本最正确版本匹配、对应版本安装之详细攻略

    Pytorch:深度学习中pytorch/torchvision版本和CUDA版本最正确版本匹配.对应版本安装之详细攻略 目录 深度学习中pytorch/torchvision版本和CUDA版本最正确 ...

最新文章

  1. Javacript Remove Elements from Array
  2. 转发与重定向的区别,特点
  3. Data Remove 程序总结
  4. 批量导入数据到mssql数据库的
  5. 访问控制列表(二)配置命令
  6. 编程完数_初级编程C++题:11H1343: 完数
  7. java 货币格式 转换_java 货币 转换
  8. logit回归模型假设_logistic回归模型分析
  9. Unity | 安卓 读取和写入TXT文本操作
  10. officeXP打开docx文档的方法
  11. 基于PLC的锅炉控制,基于s7-200的锅炉压力控制的设计,基于西门子S7-200plc与MCGS锅炉压力PID控制系统设计
  12. node处理图片和PDF文件方法
  13. 计算机常用工具软件实训总结报告,计算机常用工具软件实训报告精编版.doc
  14. 高速数据采集卡之FMC子板丨FMC接口AD/DA子卡丨坤驰科技
  15. 陕西电大计算机上机考试题,XX年电大计算机上机操作题(带答案)
  16. 5G NR 系统消息
  17. 被遗忘的角落-CMMI的团队管理
  18. Excel进度条设置百分比解决
  19. 【工程源码】stmdb和ldmia汇编指令
  20. Excel不会函数也可以求得数据当中的最小值

热门文章

  1. 向真正Java高手请教ant构建工具的类装载器问题
  2. linux 6.8安装 mysql_linux centos6.8 安装 mysql5.7.zip(完整版)
  3. JS对数据进行判空操作
  4. html状态栏透明,HTML – 如何使我的导航栏略微透明?
  5. 显著性目标检测matlab代码_YOLO v3 目标检测终篇(附完整 GitHub 代码)
  6. PHPExcel基本使用
  7. 为什么给他们讲WP的技术秘密
  8. 安卓自定义控件,自行绘制文字
  9. 麒麟安装增强功能失败(未解决):Could not downgrade policy file /etc/selinux/targeted/policy/policy.29
  10. 全网首发:为什么依赖库编译时加了-fPIC,还是提示依赖库要使用-fPIC?