私が持っている Ubuntu のバージョン (14.04.1) は、デジタル カメラを自動的にマウントし、カメラをどうするかを尋ねるボックスを生成します。表示されるオプションに満足できなかったので、gphoto2 を使用してカメラにアクセスし、カメラからファイルを取得するという、まさに私が望むことを実行するスクリプトを作成しました。1 つの問題は、ボックスに「何もしない」と指定した場合でも、カメラはマウントされたままであり、gphoto2 に関しては解放されていないため使用できないことです。解放するには、フォルダー ディスプレイを開くか見つけ、カメラを明示的に取り出す必要があります。この手順を気にせずに、スクリプトを実行したいのですが、これを行う方法があるかどうか疑問に思っています。
答え1
Ubuntu 17.10、18.04 以降では、 ユーティリティgio
( に代わるgvfs-mount
) を使用する必要があります。
カメラがマウントされていてgphoto2がインストールされている場合は、
gio mount -s gphoto2
ただし、カメラを具体的にターゲットにしたい場合は、次のようになります。
gio mount -l
マウント可能なドライブが表示されます。
カメラが接続されている場合は、次のようになります。
$ gio mount -l
Drive(0): DA4032
Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
Volume(0): Canon Digital Camera
Type: GProxyVolume (GProxyVolumeMonitorGPhoto2)
Mount(0): Canon Digital Camera -> gphoto2://%5Busb%3A002,002%5D/
Type: GProxyShadowMount (GProxyVolumeMonitorGPhoto2)
Mount(1): Canon Digital Camera -> gphoto2://%5Busb%3A002,002%5D/
Type: GDaemonMount
の後に場所をコピーすると、 (unmount->
でアンマウントできますgio mount -u
。ヘルプを見ると、gio help mount
gio mount -u gphoto2://%5Busb%3A002,002%5D/
シェル経由でカメラをアンマウントします。これを自動化するには、systemd スクリプトを作成する必要があります。
答え2
いじりたくない場合はudev
(これはシステムの問題です)、udisk
インターフェースを使用してカメラをマウント解除できます。
カメラは通常、/media/user/1234-5678/
または同様の固定の場所にマウントされます (カメラがカードをフォーマットする方法によって異なります)。また、デバイスとしては、 などになります/dev/sdc1/
。
これで、スクリプトからアンマウントできるようになります。
udisksctl unmount -b /dev/sdc1
問題はデバイスが変わる可能性があることです。私の解決策は、この小さな魔法を使うことです
udisksctl unmount -b $(mount | grep 1234-5678 | cut -d" " -f1)
カード ID が変更されない限り、これは機能します。