同じシェルスクリプトからマウントおよびアンマウントするとエラーが発生します。

同じシェルスクリプトからマウントおよびアンマウントするとエラーが発生します。

tar単一のシェルスクリプトで、ボリューム、マウントされたボリュームの内容をマウントし、マウントされたボリュームをアンマウントする必要があります。

だから私は次のようにコーディングしました。

$ cat sample.sh
sudo mount -o loop Sample.iso /tmp/mnt
cd /tmp/mnt
tar-cvf /tmp/sample.tar *
sudo umount /tmp/mnt

エラーが発生しました。umount: /tmp/mnt: device is busy.

だから確認してみた

$ lsof /tmp/mnt

現在の「sh」ファイルを出力します。だから私は/tmp/mnt現在スクリプトが使用中であると自信を持っていました(この場合はSample.sh)。

同じスクリプトにメソッド(install、tar、uninstall)がありますか?

ポリスチレン:スクリプトの完了後に/tmp/mntボリュームをアンマウントできます。

ベストアンサー1

削除するには、次のようにディレクトリを終了する必要があります。

#!/bin/bash
sudo mount -o loop Sample.iso /tmp/mnt
cd /tmp/mnt
tar -cvf /tmp/sample.tar *
#Got to the old working directory. **NOTE**: OLDPWD is set automatically.
cd $OLDPWD
#Now we're able to unmount it. 
sudo umount /tmp/mnt

今は正しいです。

おすすめ記事