Azure Linux虚拟机启动卡加载且无法访问串行控制台问题咨询
Azure Linux虚拟机进入紧急模式且串行控制台无响应修复方案
故障现象:虚拟机启动提示
you are in emergency mode.....press Enter for maintenance or Press CTRL D to continue,串行控制台连接后按回车无响应,重启无法解决
修复步骤
- 第一步:离线挂载故障系统盘
- 在Azure门户停止故障虚拟机,解绑其系统盘(无需删除磁盘,记录磁盘名称)
- 在同区域创建一台相同Linux发行版的临时正常虚拟机,将故障系统盘作为数据盘挂载到临时虚拟机
- 第二步:挂载分区并进入故障系统环境
- 登录临时虚拟机,执行
lsblk命令确认故障盘的设备名(通常为/dev/sdc,可通过磁盘容量匹配),找到根分区(一般为容量最大的分区,示例为/dev/sdc2) - 执行以下命令完成挂载:
# 创建挂载目录 mkdir /mnt/rescue # 挂载根分区 mount /dev/sdc2 /mnt/rescue # 存在单独boot/efi分区时按需挂载 mount /dev/sdc1 /mnt/rescue/boot # BIOS启动场景 mount /dev/sdc1 /mnt/rescue/boot/efi # UEFI启动场景 # 挂载系统伪文件系统 mount --bind /dev /mnt/rescue/dev mount --bind /proc /mnt/rescue/proc mount --bind /sys /mnt/rescue/sys - 执行
chroot /mnt/rescue进入故障系统的操作环境
- 登录临时虚拟机,执行
- 第三步:排查并修复故障
90%以上该类故障由/etc/fstab配置错误导致,优先检查该文件:- 执行
cat /etc/fstab查看所有挂载条目,排查以下异常:- 已卸载的数据盘/临时盘的残留挂载条目
- 磁盘UUID、文件系统格式、挂载路径配置错误
- 临时盘使用UUID挂载(Azure临时盘为本地临时存储,重启后UUID会变更,应使用路径
/dev/disk/cloud/azure_resource_part1挂载)
- 修正错误配置后执行
mount -a验证,无输出即为配置正常 - 若fstab无异常,排查其他常见故障:
- 根分区磁盘占满:执行
df -h查看使用率,清理冗余日志/文件释放空间 - 根分区文件系统损坏:执行
fsck -y /dev/sda1(替换为实际根分区设备名)修复 - 初始化镜像损坏:CentOS/RHEL执行
dracut -f重建initramfs,Ubuntu/Debian执行update-initramfs -u重建
- 根分区磁盘占满:执行
- 执行
- 第四步:恢复原虚拟机
- 执行
exit退出chroot环境,按顺序卸载所有挂载的分区:umount /mnt/rescue/dev umount /mnt/rescue/proc umount /mnt/rescue/sys umount /mnt/rescue/boot umount /mnt/rescue - 回到Azure门户,将修复后的系统盘从临时虚拟机解绑,重新挂载到故障虚拟机作为系统盘,启动虚拟机即可恢复正常。
- 执行
内容的提问来源于stack exchange,提问作者itye1970
相关产品推荐
相关产品推荐

