바인드 마운트를 생성한 후 실행 파일을 비웁니다.

바인드 마운트를 생성한 후 실행 파일을 비웁니다.

바인드 마운트를 만든 /tmp/test다음 이를 사용하여 chroot 감옥을 설정했습니다. 예를 들어:

mount --bind -o ro /usr/bin/ /tmp/test

chroot /tmp/test /some_executable

이것은 잘 작동하는 것 같습니다. 해당 폴더에 있는 대부분의 실행 파일에 액세스할 수 있으며 감옥 내에서 정상적으로 상호 작용할 수 있습니다. 그러나 마운트된 파일 중 적어도 일부는 빈 실행 파일로 나타납니다. 특히, nvidia 실행 파일 클래스는 내 시스템에 연결된 GPU 장치와 상호 작용하는 데 사용됩니다.

-rwxr-xr-x 1 root root         0 Feb 13 15:16 nvidia-cuda-mps-control*
-rwxr-xr-x 1 root root         0 Feb 13 15:16 nvidia-cuda-mps-server*
-rwxr-xr-x 1 root root         0 Feb 13 15:16 nvidia-debugdump*
-rwxr-xr-x 1 root root         0 Feb 13 15:16 nvidia-persistenced*
-rwxr-xr-x 1 root root         0 Feb 13 15:16 nvidia-smi*

다음 파일 중 하나를 직접 마운트하려고 하면 모든 것이 잘 작동합니다.

touch /tmp/test/nvidia-smi && mount --bind -o ro /usr/bin/nvidia-smi /tmp/test/nvidia-smi

ll /tmp/test/nvidia-smi
-rwxr-xr-x 1 root root 678392 Jul 13  2021 /tmp/test/nvidia-smi*

왜 이런 일이 발생하는지에 대한 아이디어가 있습니까?

편집하다: 마운트 전 파일 시스템에서 nvidia 파일의 모습은 다음과 같습니다.

/tmp# ls -l /usr/bin/nvidia-*
-rwxr-xr-x 1 root root  45824 Jul 13  2021 /usr/bin/nvidia-cuda-mps-control
-rwxr-xr-x 1 root root  14488 Jul 13  2021 /usr/bin/nvidia-cuda-mps-server
-rwxr-xr-x 1 root root 252720 Jul 13  2021 /usr/bin/nvidia-debugdump
-rwxr-xr-x 1 root root  61976 Jul 13  2021 /usr/bin/nvidia-persistenced
-rwxr-xr-x 1 root root 678392 Jul 13  2021 /usr/bin/nvidia-smi

파일 시스템 정보:

df -T

Filesystem      Type    1K-blocks     Used Available Use% Mounted on
overlay         overlay  31444972 14551624  16893348  47% /
tmpfs           tmpfs       65536        0     65536   0% /dev
tmpfs           tmpfs    16176692        0  16176692   0% /sys/fs/cgroup
tmpfs           tmpfs    16176692        4  16176688   1% /etc/config
/dev/nvme0n1p1  xfs      31444972 14551624  16893348  47% /etc/hosts
shm             tmpfs       65536        0     65536   0% /dev/shm
tmpfs           tmpfs    16176692       12  16176680   1% /run/secrets/kubernetes.io/serviceaccount

관련 정보