nf
2022年11月21日 11時46分
podmanコンテナ内からUSBメモリ内ファイルへアクセスする方法についてお教えください。
armadillo-base-os-dev-guide_ja-1.3.1.pdf 「9.4.4.1 イベントをトリガにホストコマンドを実行する」「1. udev を用いてUSB メモリの挿入を検知しmount コマンドを実行する」に準じて、以下ファイルを作成しました。
armadillo:/# cat /etc/udev/rules.d/99-usb-automount.rules # filesystem-specific mount options (777/666 dir/file perms for vfat) ACTION=="add",ENV{mount_options_vfat}="gid=100,dmask=000,fmask=111,utf8,flush,rw,noatime,users" # create directory and mount device ACTION=="add", KERNEL=="sd*", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem", ENV{ID_FS_TYPE}=="vfat", RUN+="/bin/mkdir -p /media/usb" ACTION=="add", KERNEL=="sd*", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem", ENV{ID_FS_TYPE}=="vfat", RUN+="/bin/mount -t auto -o %E{mount_options_vfat} /dev/%k '/media/usb'"
以下コマンドでコンテナを立ち上げました。
armadillo:/# podman run -it --privileged --volume=/media:/data/media localhost:(イメージ名)
この状態で、Armadillo に USB を挿すと、ホスト側では以下の通り USB メモリ内のファイルを認識します。
armadillo:/# ls -l /media/usb/ total 11072 -rw-rw-rw- 1 root users 583 Jul 13 2020 file1 -rw-rw-rw- 1 root users 332 Mar 28 2022 file2 -rw-rw-rw- 1 root users 3592547 Oct 9 2021 file3 -rw-rw-rw- 1 root users 245825 Jul 28 00:47 file4 :
一方で、コンテナ内からはUSBメモリ内のファイルを認識できません。
container:/ # ls -l /data/media/ total 0 drwxr-xr-x 2 root root 40 Nov 21 11:38 usb container:/ # ls -l /data/media/usb/ total 0
コンテナ内からUSBメモリ内ファイルにアクセスするにはどうすれば良いでしょうか?
at_dominique.m…
2022年11月21日 12時23分
nfさん
お世話になっています、
アットマークテクノのマルティネです。
このあたりのマニュアルの説明は分かりにくいですね、お手数をおかけしました。
podman のボリュームマウントはデフォルトで「private」になっていますので、この使い方の場合は「shared」をしていする必要があります。
nfさんの udev ルールのままで以下の podman コマンドで動作確認できました:
なお、podman を実行する前に /media が存在しないとエラーしますので、
podman_start (/etc/atmark/containers/*.confファイルによるコンテナの自動起動)を使う場合はコンフィグに mkdir -p を直接によぶか、/run/media を使うことをおすすめします。 /run 内のボリュームの場合は podman_start で対応して podman を実行する前に作成します。
よろしくお願いします。