LXCでSquashFSイメージをrootfsとして使用する

LXCでSquashFSイメージをrootfsとして使用する

SquashFSファイルシステムをLXC rootfsとして使用できますか? filenameを設定してext3イメージをrootfsとしてマウントできますがlxc.rootfs、他の種類のイメージの場合はlxc-startext3ファイルシステムをマウントできないというメッセージのみが表示されます。マニュアル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

squashfs イメージを rootfs としてマウントできますが、読み取り専用です。

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 .

関連情報