How to mount a Network Share in a Linux Container under Proxmox

From steamWiki
Revision as of 08:57, 3 October 2019 by Sean (talk | contribs)

Jump to: navigation, search

This article describes how to mount a Network Share inside a Linux Container (LXC). This is non-trivial because LXC Containers do not have the privileges available to directly mount network locations. The work around involves mounting the network share on the Container Host and then binding the mount folder on the host to a folder in the Container.

Note that Unprivileged containers will only be able to read from Network Shares. Privileged containers will be able to read from and write to Network Shares. You cannot modify the Privilege of a container once it is made. If can restore a container in either Privileged or Unprivileged mode. Converting a container from Unprivileged to Privileged should be fairly straight forward. The reverse isn't always true because there are files on a Privileged container that cannot exist on an Unprivileged container. This thread describes some of these issues.

  1. Log into your Container as root
    1. Create the a mount point directory with
      mkdir /mnt/extfolder
    2. Log out of the container and stop the container
  2. Log into your Host Machine as root
    1. if necessary, create a credentials file with the username and password for your network share. Then secure the file
      nano /root/.credentials/my-credentials
      1. add the following lines
      2. Exit nano and save your changes by hitting Ctrl-X and then Y
    2. run
      chmod 600 /root/.credentials/my-credentials
    3. create the target mount folder by running
      mkdir /mnt/netfolder
    4. Add a line to your fstab file to mount the network share by running
      nano /etc/fstab
      and adding the following line to the bottom
      //net/path/to/netfolder /mnt/netfolder cifs user,credentials=/root/.credentials/my-credentials,iocharset=utf8,noperm 0 0
    5. Reload the fstab file by running
      mount -a
      Now you should be able to see your network share's content at /mnt/netfolder
    6. Bind the host directory to the container directory in the container config by running
      nano /etc/pve/nodes/hostname/lxc/mycontainer.conf
      and adding the following line after memory and before net0
      mp0: /mnt/netfolder,mp=/mnt/extfolder
  3. Restart the client and the network share should be accessible at /mnt/extfolder