はじめに
概要
この記事では、Windows10(おそらくWindows11でも同様とは思われます)のWSL2でiPhoneの写真をインポートする方法について、手順を簡単にまとめます。
想定読者
- WSL2やUbuntuについて、基本的な知識があり、自分で操作できる方
- WSL2でiPhoneの写真にアクセスする方法を探している方
- Windows10で、エクスプローラのコンテキストメニューからのiPhoneの写真のインポートが上手くいかない(*下記画像参照)などで、他の手段を探している方
図:筆者が困っていた事象「このデバイス上に画像とビデオが見つかりませんでした」
補足
前述のエラーについては、iPhoneに関するサイトでいくつかの方法が例示されていますが、筆者はことごとくうまくいきませんでした。
筆者の環境でも、macOS(Sonoma)や、Windows11のマシンでは、同じiPhoneであってもインポートができている状況でした。Windows 10 Proのマシンでは、上記と同じエラーが出ていました。
本メモの全訂
- 2023年12月時点の情報
- Windows 10 Home (22H2)
- WSL バージョン: 2.0.9.0
- カーネル バージョン: 5.15.133.1-1
- usbipd-win 4.0.0
手順
WSL2でUbuntu22.04を使えるようにする
WSL2を使えるようにします。
- MicrosoftのサイトWSL を使用して Windows に Linux をインストールする方法
- Qiitaなら、wsl2にUbuntu環境を構築する【windows】
(ご参考)WindowsからUEFI(いわゆるBIOS)のメニューに入るには、スタートメニューからたどれる「再起動」をShiftキー付きでクリックするというショートカットがあります。
Ubuntu22.04の初期設定
アカウントを作る
コンピュータの再起動後、Ubuntuのインストーラにより、ユーザ名とパスワードが聞かれるので、設定します。
パッケージ導入
パッケージをアップデート
Ubuntuで以下を実施します。
sudo apt-get update
マウントに必要なパッケージをインストール
以下2つの記事を参考に、
Ubuntuで以下を実施します。
sudo apt-get install -y libimobiledevice6 libimobiledevice-dev
sudo apt-get install -y libimobiledevice-utils
sudo apt-get install -y ifuse
sudo apt install linux-tools-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
/etc/fuse.confを編集
Ubuntuで/etc/fuse.confの以下の行のコメントアウトを外す
user_allow_other
USBIPD-WINをインストール
以下のMicrosoftのサイトを参照し、USBIPD-WINをインストールします。(本記事執筆時点では4.0.0)
USBIPD-WINで、USBポートをWSL2から見えるようにする
以下のMicrosoftのサイトを参照し、USBIPD-WINでiPhoneのUSBポートをWSL2から見えるようにします。
WindowsのPowerShellを 管理者モードで 起動し、以下を実施します。
PCのUSBポートに接続されている機器を確認します。
usbipd list
一覧が表示され、iPhoneの行が出てきます。このBUSIDを後で使います。
PS C:\WINDOWS\system32> usbipd list
Connected:
BUSID VID:PID DEVICE STATE
1-4 05ac:12a8 Apple Mobile Device USB Composite Device Not shared
Windowsの 管理者モードの、PowerShellで、以下を実施します。
(筆者の環境では、「--force」をつけない場合にはbindができませんでした。エラーメッセージに従って「--force」を付けているのが下記の例です)
usbipd bind --force -b "1-4"
Windowsの 管理者モードの、PowerShellで、以下を実施します。
usbipd attach -w -b "1-4"
以下のようなメッセージが出力され、USBポートがWSL2から見えるようになります
sbipd: info: Using WSL distribution 'Ubuntu-22.04' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Using IP address 172.22.224.1 to reach the host.
マウントポイントを用意
Ubuntuで以下を実施します。
sudo mkdir /media/iPhone
sudo chmod 777 /media/iPhone
マウント
Ubuntuで以下を実施します。
sudo idevicepair pair
確認
Ubuntuで以下を実施します。
ls /media/iPhone/DCIM
あとは、Ubuntuのターミナルで、適宜お好きな位置にファイルをコピーします。
cp -a /media/iPhone/DCIM/* ${コピー先をここに指定}
マウント解除
Ubuntuで以下を実施します。"1-4"の部分は、「usbipd list」で出てきたiPhoneの行のもので読み替えてください。
fusermount -u /media/iPhone
usbipd detach -b "1-4"
usbipd unbind -b "1-4"
おわりに
この記事では、Windows10のWSL2でiPhoneの写真をインポートする方法について紹介しました。
筆者はこの方法で、iPhone内の約170GB、約60000個の写真と動画をPC上にコピーすることができました。
Lightningケーブル接続で、外付けのUSB3.0接続のSSD上にコピーする作業で、約4時間くらいかかりました。(LightningはUSB2.0のスピード)
補足
筆者の場合、約60000個のファイルのうち、4ファイルだけエラーが出ました。気になるところではあるのですが、本記事の範囲としては一旦終了、ということにします。
cp: cannot open '/media/iPhone/DCIM/105APPLE/IMG_xxxx.JPG' for reading: Input/output error