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 .

관련 정보