传统印象下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. less学习

    // 1.变量:颜色可做+- // from @nice-blue: #5B83AD; @light-blue: @nice-blue + #111; #header { color: @light- ...

  2. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  3. git亲测命令

    一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...

  4. C#数组,List,Dictionary的相互转换

    本篇文章会向大家实例讲述以下内容: 将数组转换为List 将List转换为数组 将数组转换为Dictionary 将Dictionary 转换为数组 将List转换为Dictionary 将Dicti ...

  5. Web安全相关(三):开放重定向(Open Redirection)

    简介 那些通过请求(如查询字符串和表单数据)指定重定向URL的Web程序可能会被篡改,而把用户重定向到外部的恶意URL.这种篡改就被称为开发重定向攻击.   场景分析 假设有一个正规网站http:// ...

  6. Java中,异常的处理及抛出

    首先我们需要知道什么是异常? 常通常指,你的代码可能在编译时没有错误,可是运行时会出现异常.比如常见的空指针异常.也可能是程序可能出现无法预料的异常,比如你要从一个文件读信息,可这个文件不存在,程序无 ...

  7. AndroidStudio — Error:Failed to resolve: junit:junit:4.12错误解决

    原博客:http://blog.csdn.net/u013443865/article/details/50243193 最近使用AndroidStudio出现以下问题: 解决:打开app下的buil ...

  8. iOS网络4——Reachability检测网络状态

    一.整体介绍 前面已经介绍了网络访问的NSURLSession.NSURLConnection,还有网页加载有关的webview,基本满足通常的网络相关的开发. 其实在网络开发中还有比较常用的就是网络 ...

  9. CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法

    CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法 sed -n '/2016-11-02 15:00:/,/2016-11-02 15:05:/p' catalina.out > ...

  10. 一步步开发自己的博客 .NET版 剧终篇(6、响应式布局 和 自定义样式)

    前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做 ...