如何将azure文件共享装载到linux vm上的现有目录

如何将azure文件共享装载到linux vm上的现有目录,azure,shell,ubuntu,mount,mount-point,Azure,Shell,Ubuntu,Mount,Mount Point,我在Ubuntu 16.04 LTS虚拟机上有一个现有目录,位于/etc/elasticsearch。我还在azure中创建了一个文件共享。当装载点是新目录时,我能够成功地将文件共享装载到VM。但是,当我尝试将文件共享装载到包含数据的现有目录/etc/elasticsearch,现有目录的数据会被文件共享的内容完全覆盖。这导致我丢失了以前存在于/etc/elasticsearch中的数据,这显然是我不想要的。我希望将文件共享添加到/etc/elasticsearch中的现有数据之外 以下是我尝试

我在Ubuntu 16.04 LTS虚拟机上有一个现有目录,位于
/etc/elasticsearch
。我还在azure中创建了一个文件共享。当装载点是新目录时,我能够成功地将文件共享装载到VM。但是,当我尝试将文件共享装载到包含数据的现有目录
/etc/elasticsearch
,现有目录的数据会被文件共享的内容完全覆盖。这导致我丢失了以前存在于
/etc/elasticsearch
中的数据,这显然是我不想要的。我希望将文件共享添加到
/etc/elasticsearch
中的现有数据之外

以下是我尝试过的:

if [ ! -d "/etc/smbcredentials" ]; then
sudo mkdir /etc/smbcredentials
fi
if [ ! -f "/etc/smbcredentials/credentials.cred" ]; then
sudo bash -c 'echo "username=username" >> /etc/smbcredentials/credentials.cred'
sudo bash -c 'echo "password=password" >> /etc/smbcredentials/credentials.cred'
fi
sudo chmod 600 /etc/smbcredentials/credentials.cred

sudo bash -c 'echo "//pathtofileshare/analysis /etc/elasticsearch cifs nofail,vers=3.0,credentials=/etc/smbcredentials/credentials.cred,dir_mode=0777,file_mode=0777,serverino" >> /etc/fstab'
sudo mount -t cifs //pathtofileshare/analysis /etc/elasticsearch -o vers=3.0,credentials=/etc/smbcredentials/credentials.cred,dir_mode=0777,file_mode=0777,serverino


非常感谢您的帮助

我不认为这是一个问题,这只是Linux挂载的工作原理


以前的目录内容(如果有的话)以及目录的所有者和模式都不可见,只要这个文件系统保持挂载状态,路径名dir就会指向设备上文件系统的根。

哦,这很有意义。你知道一种方法可以装载到一个现有的目录而不让它的内容变得不可见吗?不,这是设计的。符号链接是我一直在寻找的。它将观看mount Directory,你以为你在寻找合并内容。指向新文件夹/目录的链接将仅添加到现有文件夹/目录中。但是,是的,旧内容将可见。