是否可以使用 SquashFS 文件系统作为 LXC rootfs?我可以通过设置文件名来将 ext3 映像挂载为 rootfs lxc.rootfs
,但如果它是任何其他类型的映像,lxc-start
只是说它无法挂载 ext3 文件系统。手册lxc.conf
页没有建议任何指定文件系统类型的方法。
此外,如果我过了这个阶段,您可以仅通过使用选项字段中lxc.mount.entry
的条目来在容器中安装其他环回文件系统吗?'loop'
答案1
我有一些squashfs容器的工作设置,特别是出于安全原因
开始时,只需添加
lxc.rootfs = loop:/var/lib/lxc/yourcontainer/rootfs.squashfs
到你的配置文件。
有趣的是,我看到 dmesg 消息,例如
[218687.113742] EXT4-fs (loop0): VFS: Can't find ext4 filesystem
[218687.118615] FAT-fs (loop0): invalid media value (0x00)
[218687.120368] FAT-fs (loop0): Can't find a valid FAT filesystem
……我无法避免,因为别无选择lxc.rootfs.type
。但这些消息并不是错误——一切都按预期进行。
其余的是正常的只读根问题:系统想要写入的文件(例如 resolv.conf 和日志)。您可能希望将它们符号链接到 tmpfs 卷。
我从未尝试将另一个 squashfs 挂载到该容器的子路径,但主机目录的正常绑定挂载可以按预期工作。
答案2
您可以挂载为 rootfs squashfs 映像,但它是只读的。
mount: warning: /var/lib/lxc/busy2/rootfs/ seems to be mounted read-only.
你应该在squashfs上有另一层,例如奥夫斯。
该技术大量用于斯莱克斯。
您可以手动重复此操作。进行真正的lxc配置,然后通过aufs层将squashfs映像安装到rootfs目录。
从男人页:
# sudo mount -t aufs -o br:/rw_branch:/ro_branch none /aufs
我对 busybox 的实验返回 True:
# mount -o loop -t squashfs /var/busy/busy_rootfs.squashfs /var/busy/squashfs-mnt/
mount: warning: /var/busy/squashfs-mnt/ seems to be mounted read-only.
# mount -t aufs -o br:/var/busy/aufs-root/:/var/busy/squashfs-mnt/ none /var/lib/lxc/busy2/rootfs
# lxc-start --name busy2
udhcpc (v1.20.2) started
Sending discover...
Sending select for 10.0.3.105...
Lease of 10.0.3.105 obtained, lease time 3600
Please press Enter to activate this console.
BusyBox v1.20.2 (Ubuntu 1:1.20.0-8ubuntu1) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/ # ls
ls
bin etc lib mnt root selinux usr
dev home lib64 proc sbin tmp var
/ # touch root.file
touch root.file
/ # ls -latr root.file
ls -latr root.file
-rw-r--r-- 1 root root 0 Aug 23 12:38 root.file
从楼主的角度看:
# ls -latr /var/busy/aufs-root/
total 24
drwxr-xr-x 3 root root 4096 Aug 23 12:15 var
drwx------ 2 root root 4096 Aug 23 12:25 .wh..wh.plnk
drwx------ 2 root root 4096 Aug 23 12:25 .wh..wh.orph
-r--r--r-- 1 root root 0 Aug 23 12:25 .wh..wh.aufs
drwxr-xr-x 6 root root 4096 Aug 23 12:30 ..
drwxr-xr-x 2 root root 4096 Aug 23 12:38 dev
-rw-r--r-- 1 root root 0 Aug 23 12:38 root.file
drwxr-xr-x 6 root root 4096 Aug 23 12:39 .