linux重置root密码
linux忘记root密码之后,可以通过修改bootloader启动项的参数进入系统,或者使用系统盘/系统镜像进入救援模式,通过passwd命令修改root 密码。
一、老版的grub legacy单用户进入重置密码
常用的系统rhel/centos 5、6系列都是使用的grub legacy。
这类系统启动的时候,进入bootloader菜单页,随机选择内核按e进入编辑页。
选择kernel开头的项,然后按e进入kernel项编辑页。
在最后输入 s 或者 single 或者 1 ,然后按Enter回车确定返回,按b进行启动。
这种情况下会直接进入单用户系统(不需要输入root密码),然后通过 passwd root 修改root密码。
二、新版的grub 2.0进入重置密码
centos7系列的系统使用的是grub 2.0。
这类系统启动的时候,进入bootloader菜单页,随机选择内核按e进入编辑页。
找到以linux或者linux16开头的项,在末尾加上 init=/bin/sh ,按Ctrl + X引导系统启动。
随后进入bash页面,通过 mount -l 查看发现当前根文件系统已经以ro的方式挂载,此时直接执行passwd命令无法写入shadow文件。
重新挂载文件系统: mount -o remount,rw / 。
然后执行 passwd root 修改root密码即可。
三、镜像救援模式
开机选择从系统光盘/优盘/镜像启动。
启动后选择救援模式,进入bash界面。
此时原来的系统磁盘设备被挂载到了/mnt/sysimage目录。
使用 chroot /mnt/sysimage 更改工作目录到/mnt/sysimage中。
执行 passwd root 重置root密码。
四、无救援模式-手动自救
在一些系统中,使用系统光盘/优盘/镜像启动之后,却没有发现救援模式。
此时在安装列表选择界面,按tab键,然后在命令行尾部输入 init=/bin/sh ,然后回车启动进入bash页面。
通过查看 ls /dev 查看当前的分区设备。硬盘是SATA接口类型,一般第一块磁盘设备文件位sda,设备sda有两部分,一部分是引导分区设备sda1,另一个是使用lvm主动分区的设备sda2;如果是IDE接口类型,一般第一块磁盘设备文件为hda。
在mnt目录创建一个挂载目录: mkdir /mnt/sysimage 。
执行挂载: mount /dev/sda2 /mnt/sysimage 。
如果该操作可以顺利完成,则无需进行一下操作,可直接进行 chroot /mnt/sysimage ,然后执行 passwd root 重置root密码。
页面报错:
输入命令:/sbin/lvdisplay 查看逻辑卷信息。
从上述信息中得知该逻辑卷status状态不可用,执行命令激活逻辑卷: /sbin/vgchange -ay /dev/centos 。
此时通过 ls 命令查看dm设备,发现多出来dm-2和dm-3设备,既对应逻辑卷root和swap。
使用 dmsetup 命令确定逻辑卷与dm设备的对应关系,其中:之后的数字对应dm的编号。
执行 mount /dev/dm-3 /mnt/sysimage ,成功将挂载lvm设备中的root根分区。
然后执行 /bin/chroot /mnt/sysimage 更改工作目录到/mnt/sysimage中。
执行 passwd root 命令重置root密码。