Azure云Linux虚拟机修复_fstab修改错误导致无法连接

Azure动手实验

前提环境

Linux虚拟机启用开机挂载Azure文件共享存储可以通过修改fstab文件实现,但是一旦挂载错误,可能会导致虚拟机reboot后无法连接。

本文档模拟该错误的修复过程。

模拟故障机:DemoCentOS71

模拟操作机:DemoCentOS72

挂载Azure文件共享存储

虚拟机:DemoCentOS71

挂载命令可以从存储账号---文件共享---连接页面查看

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

登入虚拟机,创建挂载点,挂载成功后我们可以看到共享的文件了。

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

编辑/etc/fstab文件,将此文件共享设置成启动自动挂载,保存退出

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

关机重启后我们会发现此共享已经自动挂载上了。

FSTAB文件设置错误修复

我们添加一个无效挂载,保存重启,模拟一下挂载错误情况

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

虚拟机无法连接,从启动诊断日志中可以看到需要进行交互才能继续启动

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

修复思路

将这个虚拟机系统盘挂载到其他可以正常登陆的虚拟机上,然后修改fstab文件错误,修复后有两种恢复办法:

1.      通过已修复的VHD重新创建故障虚拟机。

2.      替换故障VHD直接尝试开机

虚拟机解除分配

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

复制VHD到其他路径

例如将DemoCentOS71系统盘从vhds复制到upload

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

挂载系统盘

例如将复制后的VHD挂载到DemoCentOS72中

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

使用fdisk–l命令发现刚附加的磁盘/dev/sdc1

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

首次挂载失败,查看错误是因为UUID与本机的磁盘相同了

记录这里的UUID,后面需要修改回来

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

获取新的UUID并修改

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

再次挂载成功

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

修正/mnt/sdc1/etc/fstab文件:例如删除下面错误或已失效的Azure文件共享存储

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

如果之前没有记录原UUID,这里也有

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

卸载挂载,并将磁盘/dev/sdc1改回原UUID(必须与fstab中一致

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

解除磁盘附加

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

>删除故障虚拟机(官方推荐方法)

在此,可以按照专有VHD创建虚拟机办法创建新虚拟机

创建过程请参考官网文档

https://www.azure.cn/documentation/articles/virtual-machines-windows-create-vm-specialized/

>不删除故障虚拟机(个人测试方法)

在此,可以通过StorageExplorer备份并删除原来的故障VHD,将修改好的VHD复制到故障VHD位置,启动虚拟机即可。

注意:磁盘名称和路径不能有变化

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

将修改好的VHD文件复制到同样路径***意看修改时间)

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

启动虚拟机

Azure云Linux虚拟机修复_fstab修改错误导致无法连接

登录成功

Azure云Linux虚拟机修复_fstab修改错误导致无法连接