linux忘记root密码怎么办——重置root密码的四种方法
linux忘记root密码之后,可以通过修改bootloader启动项的参数,进入系统,重新通过passwd指令修改root 密码。下面介绍了常用的四种方法,在不同的场景可以选择不同的方法进行root密码重置。老版的grub legacy单用户进入重置密码以为centos系统为例,手头常用的系统有rhel/centos 5、6系列都是使用的grub legacy。这类系统启动的时候,进入bootl
linux忘记root密码之后,可以通过修改bootloader启动项的参数,进入系统,重新通过passwd指令修改root 密码。
下面介绍了常用的四种方法,在不同的场景可以选择不同的方法进行root密码重置。
老版的grub legacy单用户进入重置密码
以为centos系统为例,手头常用的系统有rhel/centos 5、6系列都是使用的grub legacy。这类系统启动的时候,进入bootloader菜单页,随机选择内核按e进入编辑页
选择kernel开头的项,然后按e进入kernel项编辑页
在最后输入s或者single或者1,然后按Enter回车确定返回,按b进行启动。
这种情况下一般会直接进入单用户系统(不需要输入root密码),然后通过passwd修改root密码
新版的grub 2.0进入重置密码
centos7系列的系统使用的就是grub 2.0,以centos7.5为例。这类系统启动的时候,进入bootloader菜单页,随机选择内核按e进入编辑页。
找到以linux或者linux16开头的项,在末尾加上init=/bin/sh
按Ctrl + X引导系统启动,随后进入bash页面,通过mount -l查看发现当前根文件系统已经以ro的方式挂载,此时直接执行passwd命令无法写入shadow文件。
重新挂载文件系统: mount -o remount,rw /
然后执行passwd修改root密码即可。
镜像救援模式
以centos7系统举例,先挂载镜像盘,在启动系统时进入bios(我使用的是虚拟机,直接按F2进入的bios配置)设置界面,将镜像启动优先级调高。
配置之后启动镜像系统,选择救援模式启动。
然后选择continue继续启动,然后选择ok->ok,进入bash界面。
此时原来的系统磁盘设备被挂载到了/mnt/sysimage目录。使用chroot /mnt/sysimage更改工作目录到/mnt/sysimage中,然后执行passwd root重置root密码。
无救援模式-手动自救
在一些系统中,使用镜像启动之后,却没有发现救援模式,此时在安装选择界面,按tab键,然后在命令行尾部输入 init=/bin/sh,然后回车启动进入bash页面。
当前使用的是虚拟机环境,硬盘是SATA接口类型,一般第一块磁盘设备文件位sda,如果是IDE接口类型,一般第一块磁盘设备文件为hda。设备sda有两部分,一部分是引导分区设备sda1,另一个是使用lvm主动分区的设备sda2。
在mnt目录创建一个挂载目录: mkdir /mnt/sysimage
执行挂载: mount /dev/sda2 /mnt/sysimage
页面报错: mount unknown filesystem type 'LVM2_member'。备注:如果该操作可以顺利完成,则无需进行一下操作,可直接进行chroot /mnt/sysimage,然后执行passwd重置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和passwd root重置密码。
更多推荐
所有评论(0)