这个问题的答案对于我完成硕士论文确实有很大帮助。
我创建了预装了某些软件包的自定义 Ubuntu 18.04 Live CD .iso 映像(NodeJS、Chrome、Java、MongoDB)。但是软件包的安装被分成多个 .squashfs 文件,这些文件都放在/卡斯珀/.iso 映像的文件夹。困扰我的是,我不知道当多个 squashfs 文件解压后需要将它们挂载为单个文件系统时,Ubuntu LiveCD 使用的是哪种机制。AUFS 还是 UnionFS 在后台执行这项工作?
看一下显示 .iso 映像的 casper 目录内容的图像: casper 目录
(注意:casper目录中有5个.squashfs文件-文件系统.squashfs、chrome.squashfs、java.squashfs、mongodb.squashfs、nodejs.squashfs). filesystem.squashfs 是这 5 个中最大的,包含几乎所有软件包,而其他 4 个 .squashfs 文件包含基本 filesystem.squashfs 与安装了 NodeJS/MongoDB/Java/Chrome 的文件系统之间的差异。(这不是问题的关键信息,重点是 Ubuntu Live CD 在系统运行时如何处理这些 squashfs 文件,以及如何将它们合并到单个文件系统?)
注意:当我将此 live cd .iso 映像作为 VM 运行时,我可以确认 nodejs、mongodb、java 和 chrome 都已安装。
我关注了以下资源但无法得到答案: http://aufs.sourceforge.net/aufs2/report/sq/sq.pdf https://wiki.ubuntu.com/LiveCDUnionFS https://wiki.ubuntu.com/KernelTeam/LiveCDUnion https://wiki.ubuntu.com/LiveCDStackedFileSystem