SquashFS + UnionFS como sistema de arquivos raiz?

2

O que é uma maneira fácil de usar um sistema de arquivos de união (sobreposição de somente leitura SquashFS + R / W) como / ? Estou pensando em usar um script de inicialização personalizado como o argumento init= do kernel. O script montaria o overlay do SquashFS +, então chroot no sistema de arquivos montado e executaria o% real/sbin/init ... no entanto, não tenho certeza de como isso funciona com systemd init, e estou pensando se existe não é uma opção mais simples.

    
por Anul 16.06.2015 / 06:58

1 resposta

1

Essa configuração está relacionada a uma importante categoria de aplicativos chamada sistemas Live Linux. Implementações comuns incluem Live CD do Ubuntu (com casper ) e sua derivada, Debian Live (com live-boot ). Eles estão usando sistemas de arquivos em camadas aufs para / , ou seja, tmpfs em 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)

E parece que o Live CD baseado em Debian jessie atual roda de forma impecável.

Eu recomendo que você baixe um ISO aqui e experimente em um host de VM (VirtualBox, KVM, etc.). O Debian Live tem uma maneira relativamente sofisticada de construir imagens ao vivo ( live-build ), para que você possa criar facilmente propria Distribuição Live Linux baseada no Debian Live .

    
por 17.06.2015 / 02:39