在 Ubuntu 12.10 上的 LXC 内安装网络文件系统

在 Ubuntu 12.10 上的 LXC 内安装网络文件系统

在 Ubuntu 12.10 服务器上,我创建了一个 Ubuntu cloud lxc 容器。在 /var/lib/lxc/MY_CONTAINER/config 文件中,我取消注释了以下行:

lxc.aa_profile = unconfined

并启动了容器。

在容器内部,我尝试挂载一个 cifs 文件系统:

sudo mount -t cifs //server/share /mnt

我得到了这个:

mount error(13): Permission denied

系统日志中还有以下内容:

[5200005.304634] type=1400 audit(1360130285.896:174): apparmor="DENIED" operation="mount" info="failed type match" error=-13 parent=6756 profile="lxc-container-default" name="/mnt/" pid=6757 comm="mount.cifs" fstype="cifs" srcname="//server/share" flags="rw"

我错过了什么?

答案1

您可能会遗漏的内容包括:

  • 您似乎正在运行 apparmor,并且配置为阻止此配置文件中的挂载操作。您可以暂时禁用 apparmor,以验证这是否是阻止您执行命令的唯一原因。您/etc/apparmor.d/lxc-containers可能需要添加mount fstype=cifs,并重新加载策略。
  • 云模板适用于 openstack / EC2 等,裸机 Ubuntu 服务器可能不符合要求。这可能会导致一些神秘的错误。
  • 最佳做法是在容器配置文件中包含一个 fstab,以便在容器中挂载某些内容:lxc.mount = /var/lib/lxc/MY_CONTAINER/fstab在此 fstab 文件中,您可以创建条目,就像在普通 fstab 文件中一样。

相关内容