Google Cloud SUSE Linux VM启动脚本失效,无法重置root权限解决启动循环
解决SUSE Linux Enterprise Server 15 SP1启动循环+临时root密码设置失败问题
问题背景
- 虚拟机扩容
/dev/sda磁盘后,根分区未完成扩容,导致系统陷入启动循环 - 无root密码留存记录,串行控制台无法执行
sudo命令 - 尝试通过以下启动脚本设置临时root密码,但重启后
sudo su -验证失败:
#! /bin/bash echo root:<imagine temp pw here> | chpasswd
核心原因分析
之前的启动脚本失败大概率是因为:
- 脚本执行时根分区处于只读挂载状态,
chpasswd无法写入/etc/shadow密码文件 - 自定义启动脚本的执行时机早于根分区完成正确挂载,导致命令未生效
分步解决方法
1. 进入单用户模式(无需root密码)
重启虚拟机,在GRUB启动界面选中SUSE启动项,按e进入编辑模式:
- 找到以
linux开头的行,在末尾添加init=/bin/bash - 按
Ctrl+X启动,进入单用户shell(此时根分区默认只读)
2. 重新挂载根分区为可读写
执行命令:
mount -o remount,rw /
3. 设置有效root密码
用系统原生passwd命令直接设置(比chpasswd更可靠):
passwd root
按照提示输入两次临时密码即可。
4. 修复根分区扩容问题(解决启动循环根源)
先确认磁盘分区类型,对应执行操作:
- 普通分区(非LVM):
- 用
fdisk /dev/sda重新调整根分区大小,保存分区表 - 调整文件系统大小:
# ext系列文件系统 resize2fs /dev/sdaX # X为根分区编号,如sda2 # XFS文件系统 xfs_growfs /
- 用
- LVM分区(SUSE默认配置):
- 扩展物理卷:
pvresize /dev/sdaX # X为根所在的物理卷分区 - 扩展逻辑卷:
lvextend -l +100%FREE /dev/mapper/rootvg-root # 替换为你的逻辑卷实际路径 - 调整文件系统大小:
# ext系列 resize2fs /dev/mapper/rootvg-root # XFS系列 xfs_growfs /
- 扩展物理卷:
5. 恢复正常启动
执行命令切换回正常启动流程:
mount -o remount,ro / exec /sbin/init
系统启动后,用刚设置的root密码即可正常登录。
内容的提问来源于stack exchange,提问作者user2651050
相关产品推荐
相关产品推荐

