LXD虚拟容器挂载iso报错:mount: matlab/: mount failed: Operation not permitted
想在LXD中安装matlab2017b,没想到在第一步挂载的时候就报错了,执行挂载命令:
sudo mount -t auto -o loop R2017b_glnxa64.iso matlab/
提示操作不允许。
网上查了一圈压根没找到相关的文章能解决这个问题,后来突发奇想:
我直接用宿主机挂载,将挂载的目录共享给容器或许能够调用,说干就干
1. 宿主机挂载iso镜像文件
宿主机中的执行
sudo mount -t auto -o loop R2017b_glnxa64.iso matlab/
然后在容器中直接进行安装
# 进入挂载目录
cd matlab/
# 执行安装
sudo ./install
嘿,没想到居然成功了
[假装这里有图.jpg]
【其实是我忘了截图哈哈哈哈】
简直是 [喜大普奔啊]
2. 番外篇
当我怀着激动地上蹿下跳的心情打算在第二个容器中安装matlab时,cd到挂载目录执行 sudo ./install
命令时,直接提示我安装完成,我当时的内心:?????,我还啥都没干呢,咋就完成了?后来想了一下会不会是LXD共用文件系统,检测到我另一个容器中安装的matlab文件了,反复试了几个容器,发现好像还真是这么回事
番番外
其实当我写这篇博客时,因为挂载的目录已经卸载又挂载上了,我又在容器中执行了install操作,发现又可以了,我丢,。。。。。之前原来是缓存搞的鬼,想想也不可能是共享文件系统错乱啊,不然写LXD的程序员还吃个锤子的饭!!!感觉自己真蠢啊,真是代码写的越多越蠢了。。。。。
这下怎么办,我是为了做多用户啊,只有一个容器有matlab不行啊,虽然可以把现在的容器做成镜像,再以这个镜像为基础创建新容器,但是感觉还是不够完美,那咋办,能不能把matlab安装在宿主机上,然后直接共享安装目录?这样一来还节省了存储空间了,嗯??????试试,试试。
3. 共享软件安装目录
在宿主机新建一个共享目录,里面按软件名称创建文件夹,然后将matlab安装到共享目录中,软件安装完了再把目录共享给所有容器。共享目录只给读和执行权限即可,数据文件直接由各容器自己存储和管理,宿主机只提供软件的执行和资源。
共享目录分配的方式最好通过profile配置文件的形式进行管理,划分的粒度更细
profile配置文件使用方法可以看 本人另一篇博客:LXD配置文件使用
评论区