Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

MTP経由でAndroidスマホ・タブレットからUbuntuへファイルを転送する方法:ステップバイステップガイド

Google Android、さらには比較的新しいAndroid x86やAndroid x86_64を採用したデバイスは、Ubuntuと同じカーネルをベースにしています。どちらもGNU/Linuxオペレーティングシステムの実装であり、両者の間でのファイル転送は通常とても簡単です。スマートフォンやタブレットをUSBケーブルでUbuntu PCに直接接続できれば、基本的には問題なくファイルを送受信できます。この方法は、デュアルブート環境かどうかにかかわらず、UbuntuをインストールしたMacintoshマシンでも同様に機能します。

ただし、ファイルマネージャーの代わりにメディアトランスファープロトコル(MTP)アプリを使って転送したい場合は話が少し複雑になります。MTPとUbuntuは必ずしも相性が良いとは言えないからです。幸い、同じファイルシステムライブラリを使って両者を連携させ、Androidデバイスとの間でファイルを手間なくやり取りする方法があります。これは、代替のグラフィカルファイルマネージャーを採用したバージョンを含む、最新の公式版Ubuntuであればどれでも動作するはずです。Thunar搭載のXubuntu、PCManFM搭載のLubuntu、Dolphin搭載のKubuntuでも問題ありませんが、適切なプラグインが入っていない場合は、専用のMTPツールを使ってファイルを送る必要があります。

UbuntuへのMTPのインストールと使い方

必要なパッケージのインストール

MTPを使ってファイルを送受信する前に、いくつかの一般的なMedia Transfer Protocol(MTP)関連アプリをインストールしておく必要があります。Dash、Whiskerメニュー、LXパネルなどから起動できるSynapticパッケージマネージャーが利用可能なら、それを使って以下のパッケージを検索してインストールしてください。

  • libmtp-common
  • mtp-tools
  • libmtp-dev
  • libmtp-runtime
  • libmtp9

多くの場合、Synapticは依存関係としてこれらの一部を自動的に提案してくれるため、すべてを個別に探す必要はありません。起動時に表示される長いパッケージ一覧から目的のものを見つけたいときは、名前を入力し始めると候補が絞り込まれます。なお、パッケージのインストールにはroot権限が必要なため、起動時にパスワードの入力を求められるはずです。

もっと簡単なのは、CTRL+ALT+Tを押してターミナルを開き、次のコマンドを順に実行する方法です。

sudo apt-get update

sudo apt-get install libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9

sudo apt-get dist-upgrade

いずれの方法でも、プロトコルを扱うために必要なツールがインストールされます。FUSE(Filesystem in Userspace)は、十分な権限を持たないユーザーによるファイルシステムのマウント操作を制御しており、無制限のアクセスはrootアカウントにしか許可していません。Ubuntuではデフォルトでrootログインが無効化されているため、ここではFUSEの内蔵セキュリティ機能を設定ファイルの編集によって上書きします。ターミナルで次のコマンドを入力し、Enterキーを押してください。

sudo nano /etc/fuse.conf

ファイルの末尾付近にある「#user_allow_other」という行を探し、行頭の「#」を削除します。それ以外の行はすべてコメントのまま残してください。CTRLとXを同時に押し、「y」を選んでからEnterキーを押すと、変更が保存されます。

デバイスの認識とudevルールの登録

USBケーブルでデバイスをPCに接続し、lsusbと入力すると接続機器の一覧表が表示されます。その中から自分のデバイスの名前を探してください。表示されるその他の情報は無視して構いませんし、見逃しても何度でも安全にコマンドを再実行できます。

デバイスを特定する行が見つかったら、sudo nano /etc/udev/rules.d/51-android.rulesを実行してルールファイルを開きます。nano以外のviやemacsなど、お好みの端末向けテキストエディターに置き換えても問題ありません。ファイルの末尾に次の行を追加します。

SUBSYSTEM=="usb", ATTR{idVendor}=="####", ATTR{idProduct}=="####", MODE="0666" #nameOfDevice

nameOfDeviceの部分はlsusbで確認したデバイス名に置き換え、4桁の数字の組2つ(ベンダーIDとプロダクトID)は、デバイス名の直後に続く最初と2番目の数値に置き換えます。技術的には#記号以降のテキストはコメントラベルなので、自由に入力できます。デバイスに関するメモを残したい場合にも適した場所です。

ファイルを保存したら、現在接続中のUSBデバイスをすべて安全に取り外し、ターミナルからsudo service udev restartを実行します。開いている作業を保存し、できる限りすべてのプログラムを終了させてから、マシンを完全に再起動してください。

再起動後のファイル転送

PCが再起動したら、画面ロックをしていないことを確認した上で、Androidスマートフォンやタブレットを再び接続します。これで、より高速なMTPライブラリを使ってAndroidデバイスとの間でファイルを転送できるようになっているはずです。Ubuntuが一時的にデータを保持するバッファがAndroidデバイス側に完全に書き出されたことを確認したいときは、いつでも引数なしでsyncコマンドをターミナルから実行しましょう。これにより、データ損失を確実に防げます。

microSDカードがvfatとしてマウントされる場合

デバイスにmicroSDHCスロットがある場合、Ubuntuはそのカードをvfatファイルシステムとしてマウントすることがあり、これに戸惑うユーザーも少なくありません。これは実際にはMTPとは無関係で、MTPがインストールされていなくても発生します。vfatはVirtual File Allocation Table(仮想ファイル割り当てテーブル)を意味しますが、仮想化やエミュレーションが行われているわけではありません。これは古いMS-DOSのファイル管理方式を受け継ぐ、標準的なFAT12/FAT16/FAT32ファイルシステムです。かつてMicrosoft Windowsは仮想デバイスドライバーを使って、DOSでは扱えなかった長いファイル名をこれらのファイルシステムに書き込めるようにしました。Androidも同じ構造を利用してSDカードをマウントしています。

このようにマウントされたカードがあれば、Ubuntuとの間でファイルをコピー・移動するのに問題はありませんが、Unixのファイルパーミッションはサポートされません。データ損失を防ぐため、独立したUSBデバイスであるかのように必ず「取り出し」を行ってください。

著者について

MTP経由でAndroidスマホ・タブレットからUbuntuへファイルを転送する方法:ステップバイステップガイド

Kevin Arrows(ケビン・アローズ)

Kevin Arrowsは、10年以上の業界経験を持つテクノロジースペシャリストです。Microsoft認定テクノロジースペシャリスト(MCTS)の資格を保有し、最新の技術動向を追いかけることに強い情熱を注いでいます。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど幅広い技術トピックについて多数の記事を執筆しており、その専門性と知識は業界で高く評価されています。複雑な技術的概念を明快かつ簡潔に説明する能力に定評があり、同業者からも広く認められています。

  1. Linuxで外部IPアドレスを確認する方法:すべてのディストリビューションで使える簡単な手順

    LinuxにはIPアドレスを調べるためのコマンドラインツールが数多く存在しますが、そのほとんどはデバイスに割り当てられたローカル(内部)アドレスを表示するものです。Webサイトから見える「外部IPアドレス」を確認したい場合は、外部サーバーに問い合わせるコマンドを使う必要があります。幸い、最近のLinuxディストリビューションならこの操作は非常に簡単です。プロキシを使用している場合や、ブラウザの高度な設定を行っている場合には特に役立つテクニックです。まずはターミナルを開きましょう。Ctrl + Alt + T を同時に押すか、Unityダッシュから「Terminal」を検索して起動できます。KD

  2. 【解決法】Linuxの「管理ディレクトリをロックできません」エラーへの対処方法

    GNU/Linuxを使い始めたばかりの方は、root(スーパーユーザー)権限が必要なコマンドを実行する際につまずくことがよくあります。特に、コマンドラインからアップデートや新しいアプリケーションをインストールしようとしたときに、「管理ディレクトリをロックできません(unable to lock the administration directory)」というエラーメッセージが表示されることがあります。さらに、「rootですか?(are you root?)」というやや苛立たしい質問が一緒に表示されることも少なくありません。root権限の取得は、Microsoft Windowsで管理者権限の