SquashFS 映像作为 LXC 中的 rootfs

SquashFS 映像作为 LXC 中的 rootfs

是否可以使用 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 .

相关内容