传统印象下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. iframe用法

    <iframe src="http://caiyanli.top/" height="500"  width="500" frameb ...

  2. 移动先行之谁主沉浮? 带着你的Net飞奔吧!

    移动系源码:https://github.com/dunitian/Windows10 移动系文档:https://github.com/dunitian/LoTDotNet/tree/master/ ...

  3. Android权限管理之RxPermission解决Android 6.0 适配问题

    前言: 上篇重点学习了Android 6.0的运行时权限,今天还是围绕着Android 6.0权限适配来总结学习,这里主要介绍一下我们公司解决Android 6.0权限适配的方案:RxJava+RxP ...

  4. 关于Raid0,Raid1,Raid5,Raid10的总结

    RAID0 定义: RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就 ...

  5. Could not evaluate expression

    VS15 调试变量不能显示值,提示:Could not evaluate expression 解决办法: 选择"在调试时显示运行以单击编辑器中的按钮"重启VS即可. 可参考:Vi ...

  6. [数据结构]——链表(list)、队列(queue)和栈(stack)

    在前面几篇博文中曾经提到链表(list).队列(queue)和(stack),为了更加系统化,这里统一介绍着三种数据结构及相应实现. 1)链表 首先回想一下基本的数据类型,当需要存储多个相同类型的数据 ...

  7. JAVA面试题

    在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...

  8. 微信小程序二维码推广统计

    微信小程序可以通过生成带参数的二维码,那么这个参数是可以通过APP的页面进行监控的 这样就可以统计每个二维码的推广效果. 今天由好推二维码推出的小程序统计工具HotApp小程序统计也推出了带参数二维码 ...

  9. PHP 数组浅析

    PHP的数组具有如下特点:1.数组初始化时无需指定长度:2.数组中的元素无需相同类型:3.数组的长度可变4.可使用var_dump(参数)或者print_r(  参数) 函数查看数组变量.5.数组内的 ...

  10. DDD中的Unitwork与DomainEvent如何相容?(续)

    上篇中说到了面临的问题(传送门:DDD设计中的Unitwork与DomainEvent如何相容?),和当时实现的一个解决方案.在实际使用了几天后,有了新的思路,和@trunks 兄提出的观点类似.下面 ...