【问题标题】:Unable to mount an external persistent disk as part of startup script in Google compute engine无法在 Google 计算引擎中作为启动脚本的一部分挂载外部永久性磁盘
【发布时间】:2020-09-23 01:06:46
【问题描述】:

我正在尝试使用以下命令挂载我的外部永久磁盘:

sudo mount -o discard, defaults /dev/sdb /mnt/working

我想要做的是在我启动我的虚拟机时让它成为启动脚本的一部分。我按照链接中的说明进行操作:https://cloud.google.com/compute/docs/startupscript#startupscriptrunninginstances

我添加的脚本如下:

custom metadata
key                       value
startup-script            #! /bin/bash
                           sudo mount -o discard,defaults /dev/sdb /mnt/working

但是,当我重新启动我的 VM 时,它不会执行它。我在这里做错了什么?

已编辑以提供更多信息

图片:debian-10-buster-v20200910 我没有启用错误日志,因为我不再使用免费版本,但我希望默认日志查看器会显示错误日志。我没有看到。 我还通过登录到 vm 实例来运行脚本:

sudo google_metadata_script_runner startup  

这也没有帮助。

【问题讨论】:

  • 1) 检查日志以获取 mount 命令的错误消息。 2) 目录/mnt/working 是否存在? 3) /dev/sdb 是用文件系统格式化的吗? 4) 通常你使用/etc/fstab 在启动时挂载文件系统。使用您对此问题的调查的详细信息编辑您的问题。请记住,命令可以是特定于发行版的,包括您使用的操作系统。
  • @JohnHanley,感谢您回来。让我一一回答你的问题。 1.我在日志查看器下没有看到最近24小时挂载命令的任何日志。2./mnt/working 存在,我可以在运行上述命令时手动挂载它 3.它是一个格式化的文件系统。4.我按照以下步骤操作:cloud.google.com/compute/docs/disks/add-persistent-disk。我将编辑问题并添加这些。
  • 什么日志查看器? mount 命令会将错误写入/var/log/syslog 或类似的。您还将在控制台输出中看到错误。 help.ubuntu.com/community/LinuxLogFiles
  • @JohnHanley,感谢您的及时回复。系统日志中没有任何内容可以肯定我正在关注您提到的同一个文档。如果您向下浏览到将启动脚本添加到现有 VM 的部分,它会描述这些步骤。是的,这就是我要执行的脚本。看起来你发现了问题。很想听听。我还从另一个 stackoverflow 回复中获得了帮助:stackoverflow.com/questions/30766912/…
  • 您也可以在SSH进入实例sudo journalctl -u google-startup-scripts.service时查看服务日志

标签: google-cloud-platform google-compute-engine startupscript


【解决方案1】:

问题主要是 /mnt/sdb /mnt/working 之间的换行符。这阻止了启动脚本被执行。感谢 Lukaszberwid 的提示,我运行了

 sudo journalctl -u google-startup-scripts.service

能够发现问题。我想知道启动脚本的元数据值字段是否可以向右扩展或稍大一点以发现此类剪切和粘贴问题。

【讨论】:

  • 您可以在公共 google issue tracker 中为计算引擎创建功能请求
  • 您可能不想剪切和粘贴脚本,而是在本地编写脚本,运行任何测试/linter,然后按照以下说明按原样上传脚本文件:cloud.google.com/compute/docs/…
猜你喜欢
  • 2014-10-17
  • 1970-01-01
  • 2014-03-11
  • 2016-11-15
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
相关资源
最近更新 更多