SquashFS imagem como rootfs em LXC

5

É possível usar um sistema de arquivos SquashFS como um rootfs do LXC? Eu posso montar uma imagem ext3 como rootfs apenas configurando lxc.rootfs para o nome do arquivo, mas se for qualquer outro tipo de imagem, lxc-start apenas diz que não é possível montar um sistema de arquivos ext3. A página lxc.conf man não sugere nenhuma maneira de especificar o tipo de sistema de arquivos.

Além disso, se eu passar desse estágio, você poderá montar outros sistemas de arquivos de loopback no contêiner usando apenas lxc.mount.entry entradas com 'loop' no campo de opções?

    
por Dan Ellis 28.11.2012 / 02:39

2 respostas

1

Eu tenho uma configuração de trabalho com alguns contêineres squashfs, especialmente por razões de segurança

Para começar, basta adicionar

lxc.rootfs = loop:/var/lib/lxc/yourcontainer/rootfs.squashfs

para o seu arquivo de configuração.

Curiosamente, vejo mensagens do dmesg como

[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

... que não posso evitar porque não há lxc.rootfs.type opção. Mas essas mensagens não são erros - tudo funciona conforme o esperado.

Os demais são problemas normais de somente leitura: Arquivos para os quais o sistema deseja gravar (como resolv.conf e logs). Você pode querer symlink-los para um volume tmpfs.

Eu nunca tentei montar outros squashfs em um sub-caminho desse contêiner, mas uma montagem de ligação normal de um diretório host funciona conforme o esperado.

    
por 17.10.2015 / 17:52
-1

Você pode montar como imagem squashfs do rootfs, mas seria somente leitura.

mount: warning: /var/lib/lxc/busy2/rootfs/ seems to be mounted read-only.

Você deve ter outra camada sobre o squashfs, por exemplo aufs .

Esta técnica usada em massa em Slax .

Você pode repetir isso apenas à mão. Faça true lxc config, então monte sua imagem do squashfs para rootfs dir usando aufs layer.

Na página homem :

# sudo mount -t aufs -o br:/rw_branch:/ro_branch none /aufs

Minha experiência com o busybox retorna 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

Procure no host:

# 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 .
    
por 23.08.2013 / 14:44