バインドマウントを作成したら、実行可能ファイルを空にします。

バインドマウントを作成したら、実行可能ファイルを空にします。

バインドマウントを作成し/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

関連情報