传统印象下Linux是非常坚不可摧的,具有千年不更新,万年不重启的美名。而随着虚拟化的推进,很多跑在虚拟化上的Linux由于先前基础架构的脆弱,变得适应性“越来越不好”,体现在IP存储如果出现节点故障而且没有冗余线路的保障很容易出现磁盘脱机导致的系统只读,加上LVM固有的习惯使用还会影响到系统在硬盘离线后数据恢复的困难,再者EXT系列的文件系统没有Windows 2008之后所使用的NTFS文件系统的自我修复功能,很多时候会让工作陷入各种深坑不能自拔。

笔者最近遇到一个奇葩的现象,某平台因为IP存储结点故障导致ESXi层长时间无法与外挂(iSCSI)存储通信,其上的虚拟化层Windows 进入到无响应,Linux进入到系统只读,等待外挂存储恢复之后Windows 进入到可对外应答、远程;而Linux进入到可以SSH但是文件系统依旧只读的现象。此时对于Linux只能进行重启,在系统启动环境下进行fsck磁盘检查(此时还可能会有文件缺失现象发生),现在问题来了,平时登陆的时候使用非root账号保证安全,很少操作系统底层,因此用户基本上用不到root账号,而现在重启后需要使用root账号。

Figure 1由于长时间不用,root用户密码已经记不起来,接着就进入到了死循环,Ctrl+D之后继续到这个界面,反反复复无穷尽

有同学想到不是可以用单用户模式吗?

这个笔者也尝试了,因为百度里面搜索到的最多的重置Linux密码技能就是单用户模式,但是进行不了,效果和上图一样,究其原因,详见这篇博文

单用户模式不通,而我们就是要进入系统,这时候需要更换策略,我们使用systemrescuecd,由于接下来使用的命令是要和虚拟系统架构一致的,因此启动项上面选择光盘版本要留意一下。

登陆之后,使用fdisk -l确认Linux分区,如果是LVM的环境,需要配置和扫描现有虚拟磁盘:

扫描所有卷组

# lvm vgscan –v

激活所有卷组

# lvm vgchange -a y

列出说有逻辑卷

# lvm lvs –all

挂载逻辑卷

# mount /dev/volumegroup/logicalvolume /mountpoint

接下来配置命令chroot所需要的环境:

root@sysresccd /root % mkdir /mnt/linux

▼示例是非LVM情况挂载

root@sysresccd /root % mount /dev/sda2 /mnt/linux

root@sysresccd /root % mount -o bind /proc /mnt/linux/proc

root@sysresccd /root % mount -o bind /dev /mnt/linux/dev

root@sysresccd /root % mount -o bind /sys /mnt/linux/sys

使用chroot进行用户切换:

root@sysresccd /root % chroot /mnt/linux /bin/bash

使用passwd进行root密码重置,此时重置的就是虚拟机系统内的那个Linux系统root密码:

root@sysresccd /root % passwd

Changing password for user root.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

最后退出systemrescuecd,重新由硬盘引导,在Figure 1标记的图示中输入重置后的密码,使用fsck –y进行磁盘检查,通过之后使用reboot进行系统重启,问题解决。

总结:

在进行密码重置的时候有多种方法,更多的可以参考这里:http://www.linux-magazine.com/Online/Features/Resetting-Passwords-with-SystemRescueCd

其他参考资料:http://docs.slackware.com/howtos:slackware_admin:how_to_chroot_from_media

其他参考资料:http://www.sysresccd.org/Sysresccd-Partitioning-EN-Repairing-a-damaged-Grub

-=EOB=-

如何重置硬盘遭到“损坏”的Linux系统root用户密码的更多相关文章

  1. 破解Linux系统root用户密码

    linux系统的启动过程  在介绍破解Linux系统root密码之前先了解一下linux系统的启动过程 开机自检(POST),初始化部分硬件 搜素可用于引导的启动设备(如磁盘的MBR) 读取并将控制权 ...

  2. Linux系统root用户忘记密码解决方法

    一:在linux系统启动时(如下图),按e键 二:进入到设置页面,定位到如下行: 三:按e键,进入输入界面 四:在编辑行最后面,空格,输入single,回车后回到第二步界面,只是后面多了single ...

  3. Centos6.6系统root用户密码恢复案例

    1.重新启动主机后,在出现Grub菜单时按上下键取消倒计时 2.进入到内核引导界面按e键如下所示: 3.将鼠标定位到Kernel这一行按e键 4.在行尾输入”single”也可以换成字母”s”或者数字 ...

  4. Centos6.6系统root用户密码恢复案例(转)

    原文:http://www.centoscn.com/CentOS/Intermediate/2015/0131/4604.html 通过单用户模式恢复root用户密码 重新启动主机后,在出现Grub ...

  5. linux系统root用户登录提示“鉴定故障”的解决办法

    同事第一次创建虚拟机,遇到此问题,此前我未曾遇到,搜索到的解决办法记录在此,以防之后忘记. 一.重启系统解决(搜索到的该解决办法较多):https://www.cnblogs.com/lippor/p ...

  6. 【Linux】Linux 找回Root用户密码

    Root密码破解 Linux 忘记Root密码 ? 技术学习基本原则:不作恶 一.破解步骤 1.在系统启动时进入grub选项菜单 2.在grub选项菜单按e进入编辑模式 3.编辑kernel那行添加/ ...

  7. Linux中Root用户密码变更、密码忘记

    用户设置bash的时候,错把root的bash改为bin/bash,注意,不是“/bin/bash”!. 然后就登录不了root了,也修改不了/etc/passwd了. 解决: 1.重启Ubuntu, ...

  8. linux系统root用户忘记密码的重置方法

    如果不小心忘记了新安装的lCentOS7的root密码,现在将找回过程分享给大家. 1.首先,在启动grub菜单,选择编辑选项启动: 2.然后,按e 进入编辑模式: 3.将'linux 16'行'ro ...

  9. 2、Linux系统root用户忘记密码的重置方式

    .界面按空格暂停,按E .找到UTF-,在后面空格后输入init=/bin/sh 然后CHRL+X启动 .进入到这个界面,输入mount -o remount,rw / .输入passwd..然后输入 ...

随机推荐

  1. Win10 IIS本地部署MVC网站时不能运行?

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 部署后出现这个错误: 打开文件目录后发现是可以看见目录的,静态页面也是可以打开的 ...

  2. HTML BOM Browser对象

    BOM:Browser Object Model,即浏览器对象模型,提供了独立于内容的.可以与浏览器窗口进行互动的对象结构. Browser对象:指BOM提供的多个对象,包括:Window.Navig ...

  3. 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验

    Power BI有手机版,目前支持安卓,苹果和WP,不过没有WP手机,苹果在国内还不能用,要FQ和用就不测试了.安卓的我也也是费了九牛二虎之力才把app下载下来,把方法分享给大家. FQ太麻烦,所以建 ...

  4. 用javascript 写个函数返回一个页面里共使用了多少种HTML 标签

    今天我无意间看到一个面试题: 如何用javascript 写个函数返回一个页面里共使用了多少种HTML 标签? 不知你看到 是否蒙B了,如果是我 面试,肯定脑子嗡嗡的响.... 网上搜了搜也没有找到答 ...

  5. Newtonsoft.Json设置类的属性不序列化

    参考页面: http://www.yuanjiaocheng.net/webapi/parameter-binding.html http://www.yuanjiaocheng.net/webapi ...

  6. python基础

    内容概要: 一.python2 or python3 目前大多使用python2.7,随着时间的推移,python3将会成为python爱好者的主流. python2和3区别: 1.PRINT IS ...

  7. gulp批量打包文件并提取公共文件

    gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器. browseriyf是模块化打包工具. 一般情况下,Browserify 会把所有的模块打包成单个文件.单个文件在大多数情况下是 ...

  8. BPM端到端流程解决方案分享

    一.需求分析 1.企业规模的不断发展.管理水平的不断提升,通常伴随着企业各业务板块管理分工更细.更专业,IT系统同样越来越多.越来越专 业化.不可避免的,部门墙和信息孤岛出现了,企业的流程被部门或者I ...

  9. Android Socket连接PC出错问题及解决

    最近测试问题:Android 通过Socket链接电脑,ip和端口都是正确的,也在同一网段,可android端就是报异常如下: 解决办法:测试电脑的防火墙可能开着,在控制面板把防火墙打开即可.

  10. Android的Kotlin秘方(II):RecyclerView 和 DiffUtil

    作者:Antonio Leiva 时间:Sep 12, 2016 原文链接:http://antonioleiva.com/recyclerview-diffutil-kotlin/ 如你所知,在[支 ...