mkdir /home/user/test
lxc config device add ctest mydisk disk source=/home/user/test path=/mnt/test shift=true readonly=true
lxc shell ctest
root@ctest:/mnt/test# findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /var/lib/lxd/storage-pools/zfs/containers/ctest/rootfs
β shiftfs rw,relatime,passthrough=3
ββ/run tmpfs tmpfs rw,nosuid,nodev,size=802760k,mode=755,uid=
β ββ/run/lock tmpfs tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k
β ββ/run/user/0 tmpfs tmpfs rw,nosuid,nodev,relatime,size=802756k,mode
ββ/dev none tmpfs rw,relatime,size=492k,mode=755,uid=1000000
β ββ/dev/shm tmpfs tmpfs rw,nosuid,nodev,uid=1000000,gid=1000000
β ββ/dev/fuse udev[/fuse] devtmpfs rw,nosuid,noexec,relatime,size=3981636k,nr
β ββ/dev/net/tun udev[/net/tun] devtmpfs rw,nosuid,noexec,relatime,size=3981636k,nr
β ββ/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=1000005,mode
β ββ/dev/mqueue mqueue mqueue rw,nosuid,nodev,noexec,relatime
β ββ/dev/lxd tmpfs tmpfs rw,relatime,size=100k,mode=755
β ββ/dev/.lxd-mounts tmpfs[/ctest] tmpfs rw,relatime,size=100k,mode=711
β ββ/dev/full udev[/full] devtmpfs rw,nosuid,noexec,relatime,size=3981636k,nr
β ββ/dev/null udev[/null] devtmpfs rw,nosuid,noexec,relatime,size=3981636k,nr
β ββ/dev/random udev[/random] devtmpfs rw,nosuid,noexec,relatime,size=3981636k,nr
β ββ/dev/tty udev[/tty] devtmpfs rw,nosuid,noexec,relatime,size=3981636k,nr
β ββ/dev/urandom udev[/urandom] devtmpfs rw,nosuid,noexec,relatime,size=3981636k,nr
β ββ/dev/zero udev[/zero] devtmpfs rw,nosuid,noexec,relatime,size=3981636k,nr
β ββ/dev/console devpts[/3] devpts rw,nosuid,noexec,relatime,gid=5,mode=620,p
β ββ/dev/ptmx devpts[/ptmx] devpts rw,nosuid,noexec,relatime,gid=1000005,mode
ββ/proc proc proc rw,nosuid,nodev,noexec,relatime
β ββ/proc/sys/kernel/random/boot_id none[/.lxc-boot-id]
β β tmpfs ro,nosuid,nodev,noexec,relatime,size=492k,
β ββ/proc/sys/fs/binfmt_misc binfmt_misc binfmt_mi rw,nosuid,nodev,noexec,relatime
ββ/sys sysfs sysfs rw,relatime
β ββ/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755,uid=100000
β β ββ/sys/fs/cgroup/unified cgroup2 cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate
β β ββ/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,name
β β ββ/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,relatime,pids
β β ββ/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacc
β β ββ/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime,devices
β β ββ/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime,blkio
β β ββ/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,relatime,freezer
β β ββ/sys/fs/cgroup/net_cls,net_prio cgroup cgroup rw,nosuid,nodev,noexec,relatime,net_cls,ne
β β ββ/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset
β β ββ/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory
β β ββ/sys/fs/cgroup/rdma cgroup cgroup rw,nosuid,nodev,noexec,relatime,rdma
β β ββ/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime,hugetlb
β β ββ/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,relatime,perf_event
β ββ/sys/firmware/efi/efivars efivarfs efivarfs rw,nosuid,nodev,noexec,relatime
β ββ/sys/fs/fuse/connections fusectl fusectl rw,nosuid,nodev,noexec,relatime
β ββ/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime
β ββ/sys/kernel/config configfs configfs rw,nosuid,nodev,noexec,relatime
β ββ/sys/kernel/debug debugfs debugfs rw,nosuid,nodev,noexec,relatime
β ββ/sys/kernel/security securityfs securityf rw,nosuid,nodev,noexec,relatime
β ββ/sys/kernel/tracing tracefs tracefs rw,nosuid,nodev,noexec,relatime
ββ/mnt/test /dev/.lxd-mounts/lxdmount_369224129
shiftfs rw,relatime,passthrough=3
Looks like the mount is still rw in the container.
Also I would like to clarify that with shift=true
and readonly=true
it appears that I can create, rename and delete files, but I cannot actually edit the contents.
touch /mnt/test/hello.txt
ls -la /mnt/test/
total 5
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 17 10:03 .
drwxr-xr-x 3 root root 3 Feb 17 09:56 ..
-rw-r--r-- 1 root root 0 Feb 17 10:03 hello.txt
echo "hello" > /mnt/test/hello.txt
-bash: /mnt/test/hello.txt: Read-only file system
And on the host directory:
user@user-MS-7821:~$ ls -la /home/user/test/
total 8
drwxrwxr-x 2 user user 4096 Feb 17 10:03 .
drwxr-xr-x 31 user user 4096 Feb 17 09:56 ..
-rw-r--r-- 1 root root 0 Feb 17 10:03 hello.txt