为了节省博客维护的费用,菠菜园最近迁移到了Oracle cloud的免费服务器上了。周五的时候波波对服务器做了一些更改,结果在重启之后系统再也无法启动了。
为此波波联系了Oracle cloud的技术支持,对方的回复是“免费用户不提供任何技术支持”。所以自己的坑还是自己填吧。我回想了所有可能导致服务器无法启动的原因,最终猜测出可能是由于挂载磁盘写入fstab导致的,为此波波特别建了一个新的实例来证实自己的猜测,结果证实我猜对了。
Oracle cloud挂载磁盘采用的是iSCSI协议,这是一种通过TCP/IP传输数据的网络协议,因此当存储块挂载为磁盘的时候不能再和平常挂载磁盘一样,我们需要在写入fstab信息中带上参数_netdev,表示当系统联网后再进行挂载操作,以免系统开机时间过长或开机失败。
正确操作:
1、在命令行模式下输入指令:“blkid | grep /dev/sdb”。
上述指令用于查询设备的UUID信息。执行结果示例如下:
- /dev/sdb: UUID="eb9cbf2f-fce8-413a-b770-8b0f243e8ad6" TYPE="ext4"
2、写入挂载信息到"/etc/fstab"中,
- echo "UUID=eb9cbf2f-fce8-413a-b770-8b0f243e8ad6 /挂载点目录 ext4 defaults,_netdev,nofail 0 0">>"/etc/fstab"
3、自动挂载验证。
- mount -a
- df -lh
其实系统无法启动本来很好处理,但是由于系统无法启动时Oracle cloud的官方命令行工具、VNC均无法进入,并且Oracle官方不为免费用户提供技术支持。因此就变得有些费事。
最终不得不重新更换操作系统的引导分区,重新安装所有的环境。不过吃一堑长一智,如果你也是Oracle cloud的免费用户,你可以先自己不挂载任何磁盘,制作一份包含所有生产环境的引导镜像。将网站数据目录单独放在一块独立的磁盘中,系统发生问题的时候直接替换系统分区即可。