SquashFS+UnionFS 作为根文件系统?

SquashFS+UnionFS 作为根文件系统?

使用联合文件系统(只读 SquashFS + R/W 覆盖)的简单方法是什么/?我正在考虑使用自定义启动脚本作为内核init=参数。该脚本将安装 SquashFS + 覆盖,然后chroot进入安装的文件系统并运行真实的/sbin/init...但是我不确定这与systemdinit 的配合效果如何,我想知道是否没有更简单的选项。

答案1

该配置与称为 Live Linux 系统的主要应用程序类别相关。常见的实现包括Ubuntu Live CD(和卡斯帕)及其导数,Debian 直播(和实时启动)。他们正在使用分层文件系统奥夫斯对于/,即 tmpfs on squashfs。

user@debian:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
aufs            501M  7.7M  493M   2% /
tmpfs           201M  4.4M  196M   3% /run
/dev/sr0        416M  416M     0 100% /lib/live/mount/medium
/dev/loop0      302M  302M     0 100% /lib/live/mount/rootfs/filesystem.squashfs
tmpfs           501M     0  501M   0% /lib/live/mount/overlay
devtmpfs         10M     0   10M   0% /dev
tmpfs           501M     0  501M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           501M     0  501M   0% /sys/fs/cgroup
tmpfs           501M     0  501M   0% /tmp

user@debian:~$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=204868k,mode=755)
/dev/sr0 on /lib/live/mount/medium type iso9660 (ro,noatime)
/dev/loop0 on /lib/live/mount/rootfs/filesystem.squashfs type squashfs (ro,noatime)
tmpfs on /lib/live/mount/overlay type tmpfs (rw,relatime)
tmpfs on /lib/live/mount/overlay type tmpfs (rw,noatime,mode=755)
aufs on / type aufs (rw,noatime,si=b1cf5f036a329049,noxino)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=10240k,nr_inodes=124332,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw,relatime)

目前基于 Debian jessie 的 Live CD 似乎可以完美地运行 systemd。

我推荐你在这里下载 ISO并在 VM 主机(VirtualBox、KVM 等)上尝试。 Debian Live 有一种相对复杂的方式来构建实时镜像(实时构建),这样您就可以轻松创建自己的基于 Debian Live 的 Live Linux 发行版

相关内容