[Azure]Linux虚拟机使用rc.local启动脚本进行磁盘挂在

Azure Linux虚拟机如果在启动过程中出现磁盘检测失败,会导致虚拟机无法成功启动,这种情况下,由于没有控制台的登录方式,往往需要通过将系统磁盘挂在到其他虚拟机上进行fstab文件的修改或者磁盘修复,修复完成后再使用修复后的磁盘重建虚拟机。这种方法相对比较耗时,有没有方法能够保证在数据磁盘出现问题时,不会影响到系统的启动呢?我们可以在rc.local中写入mount语句,由于rc.local是在启动后执行的,所以即使mount语句报错,也完全不影响虚拟机的启动。

以下是一个测试小实验:

  1. 首先,在虚拟机上挂了4块数据盘做了raid0,挂载到/mnt/md2下:

    raid0分区的UUID53128084-c839-4294-a8e2-2ae089819280

     

  2. 接着,在/etc/rc.local中添加一行自动挂载的命令mount -U 53128084-c839-4294-a8e2-2ae089819280/mnt/md2

    [Azure]Linux虚拟机使用rc.local启动脚本进行磁盘挂在_第1张图片

     

  3. reboot虚拟机后,可以看到raid0分区正常挂载:

     

  4. Portal中将4块磁盘中的任意一块分离下来,破坏了raid0,再次重启虚拟机,发现机器可以正常启动,raid0未挂载:

可以看到,rd.local中的脚本进行挂载,即使挂载失败,也不会影响系统的正常启动和登陆。




你可能感兴趣的:(Linux,Azure)