AndroidをLinuxにマウントしてファイル操作する方法

Android端末にUSB接続してデータ転送を行う際には、MTP(Media Transfer Protocol) という通信プロトコルが使用されます。
[参考記事]Googleフォトに無料で無制限にファイルをバックアップする方法

AndroidスマホをUSBケーブルでLinuxに接続する。
  ↓
Android端末の通知領域からUSBの設定を開く。
  ↓
USBの接続用途で『ファイル転送/Android Auto』を選択する。

Linuxの下記のパスに自動でマウントされます。

/run/user/1000/gvfs/mtp:host=【メーカー・機種名】_【識別番号】/内部共有ストレージ/DCIM/

rsyncでタイムスタンプを保持するオプションを付けるとエラーになるようです。

Android端末に転送できるファイル名は
・おおよそ100文字以下
・特殊文字を含まない
の条件があります。

100文字以上あるものや特殊文字を含むファイル名のファイルを転送すると、それ以降MTP接続に異常が発生しファイル操作できなくなります。
MTP接続異常が発生した場合はUSBケーブルを差しなおして設定しなおすなどする必要があります。

MTPでのファイル転送はかなり不安定で頻繁にMTP接続異常が発生します。

MTPのデータ転送モードでもAndroidの充電がされるため、Linux側のUSBポートに給電容量がないと不安定になります。
給電不足になる場合はセルフパワーのUSBハブを使用するなどします。

ファイルをUSBケーブル経由で転送するのではなく、AndroidにSSH/SFTPサーバのアプリをインストールしてSCPで転送する方法もあります。
SSH/SFTP Server - Terminal
MTPに比べ転送速度が早いので転送量が多いとかなり発熱します。
ただしこの方法で転送したファイルはメディアファイル情報(MediaStore)の更新がされないためバックアップの対象になりません。
Filesアプリで端末内のファイル情報を更新するなどの操作をする必要があります。
[参考記事]Googleフォトに無料で無制限にファイルをバックアップする方法

これ以外にAndroid Debug Bridge(ADB)を使った方法もあります。

またlibmtp(jmtpfs)ライブラリを使うことでmountコマンドのように操作することもできます。
インストール

dnf install jmtpfs

マウント

jmtpfs /mnt/android

アンマウント

fusermount -u /mnt/android

関連記事

スポンサーリンク

ISAPI_Rewrite ( IISでURL Rewriteをする[ IIS用mod_rewrite ] )

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る