此特定实例类型安装两个临时驱动器,位于/dev/
和/mnt/
。我必须在启动时为这些路径中的一项服务创建工作目录,否则服务将无法启动。下面的脚本有时有效,有时则无效。我怀疑这是正在安装的文件夹和我的 rc.local 脚本启动之间的竞争。
有没有更可靠的地方可以创建这些目录?上次我启动时,目录/mnt/mongodb
确实被创建了,但/dev/
目录却没有。我正在运行来自亚马逊的 12.04 HVM ubuntu 实例。
这是我的 rc.local 文件:
cd /mnt/
sudo mkdir mongodb
sudo chown -R mongodb mongodb
sudo chgrp -R mongodb mongodb
cd /dev/
sudo mkdir mongodb
sudo chown -R mongodb mongodb
sudo chgrp -R mongodb mongodb
sudo service mongodb start
exit 0
答案1
我相信是 cloud-init 包自动将第一个临时光盘安装为 /mnt。 /dev 应该只用于设备。因此,第一个临时磁盘(或实例存储)将公开为 /dev/sdb (或 /dev/xvdb),并将它们安装为 /mnt。如果您提供脚本作为实例用户数据,即使用cloud-init 系统,那么它将在cloud-init 系统创建挂载后运行。或者,您需要设置其顺序,以便它在 cloud-init 之后运行。或者您可以击败 cloud-init 并自行创建安装。