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