LoginSignup
3
2

LinuxでiPhoneを接続して写真などを転送する方法

Last updated at Posted at 2023-02-04

LinuxでiPhoneとデータ転送を行う

今回はLinuxでiPhoneをUSB接続してデータ転送(差分バックアップ)を行います。

用意するもの

  • iPhone
  • Linuxマシン (今回はArch Linuxを使用します。): 追記 Ubuntuでも問題なく可能でした。
  • USB A => Lightningケーブル
  • パッケージ libimobiledevice
マシン詳細
  • Arch Linux
Terminal
$ uname -a
Linux haruki 6.1.7-hardened1-1-hardened #1 SMP PREEMPT_DYNAMIC Thu, 19 Jan 2023 00:16:46 +0000 x86_64 GNU/Linux

$ cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
  • Ubuntu
Terminal
$ uname -a
Linux haruki 6.5.0-27-generic #28~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 15 10:51:06 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

パッケージのインストール

Terminal
sudo pacman -S libimobiledevice ifuse
  • Ubuntuの人は
Terminal
sudo apt-get install -y libimobiledevice6 libimobiledevice-dev ifuse libimobiledevice-utils

を実行してください。

iPhoneとの接続

USBでマシンと接続してください。

先程インストールしたパッケージのlibimobiledeviceはusbmuxdに依存していて、低レベルにiOSとの接続を行うことができます。
iPhoneとの接続後usbmuxd.serviceが立ち上がっているか確認しましょう。

Terminal
$ systemctl status usbmuxd.service

● usbmuxd.service - Socket daemon for the usbmux protocol used by Apple devices
     Loaded: loaded (/usr/lib/systemd/system/usbmuxd.service; static)
     Active: active (running) since Sat 2023-02-04 18:32:29 JST; 2min 27s ago
       Docs: man:usbmuxd(8)
   Main PID: 1478 (usbmuxd)
      Tasks: 2 (limit: 19107)
     Memory: 2.1M
        CPU: 16ms
     CGroup: /system.slice/usbmuxd.service
             └─1478 /usr/bin/usbmuxd --user usbmux --systemd

Feb 04 18:32:29 haruki systemd[1]: Started Socket daemon for the usbmux protocol used by Apple devices.
Feb 04 18:32:29 haruki usbmuxd[1478]: [18:32:29.248][3] usbmuxd v1.1.1 starting up
Feb 04 18:32:29 haruki usbmuxd[1478]: [18:32:29.249][3] Successfully dropped privileges to 'usbmux'
Feb 04 18:32:29 haruki usbmuxd[1478]: [18:32:29.249][3] Using libusb 1.0.26
Feb 04 18:32:29 haruki usbmuxd[1478]: [18:32:29.260][3] Initialization complete
Feb 04 18:32:29 haruki usbmuxd[1478]: [18:32:29.260][3] Enabled exit on SIGUSR1 if no devices are attached. Start a new instance with "--exit" to>
Feb 04 18:32:29 haruki usbmuxd[1478]: [18:32:29.260][3] Connecting to new device on location 0x30009 as ID 1
Feb 04 18:32:29 haruki usbmuxd[1478]: [18:32:29.260][3] Connected to v2.0 device 1 on location 0x30009 with serial number ***************************>

ペアリング

Terminal
$ idevicepair pair

を実行してください。するとiPhoneから信頼するか聞かれるので信頼してパスコードを入力してください。

SUCCESS: Paired with device

が出たら完了です。何度かエラーが出るかもしれませんが、信頼ができていればSUCCESSになります。

マウント

iPhoneとの接続は終わったのですがマウントをしないとデータ転送ができません。
どこでもいいのですが、/mnt/iphoneにマウントしたいと思います。

  • ディレクトリ作成と権限の付与
Terminal
sudo mkdir /mnt/iphone
sudo chmod 755 /mnt/iphone
Terminal
ifuse /mnt/iphone

ここでWindowsだとDCIMしか出現しませんが、Linuxだとさらに多くのディレクトリにアクセス可能です。

Terminal
$ ls
AirFair DCIM Downloads iTunes_Control MediaAnalysis Photos Podcasts Purchases Recordings

あとはcpなどでコピーするだけです!

差分バックアップ

rsyncを使って更新された分だけコピーします。

--dry-run オプションをつけることで、送信されるファイルが出力されるので差分バックアップになっているかまずはこのオプションで試すことをおすすめします。

Terminal
rsync -auv --progress DCIM/ ~/DCIM --dry-run
  • 差分バックアップ
Terminal
rsync -auv --progress DCIM/ ~/DCIM
sending incremental file list
.MISC/Incoming/
112APPLE/
112APPLE/IMG_2885.HEIC
      2,799,629 100%   26.65MB/s    0:00:00 (xfr#1, to-chk=157/14541)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
112APPLE/IMG_2987.HEIC
      1,702,779 100%    6.25MB/s    0:00:00 (xfr#158, to-chk=0/14541)

sent 1,090,678,523 bytes  received 3,080 bytes  15,254,288.15 bytes/sec
total size is 64,147,123,048  speedup is 58.81

これで差分バックアップができました。
以上です。お疲れ様でした。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2