買ってみた・試してみた 読む時間 約7分

iPhone のバックアップを PC と NAS に:Windows 11 の Apple デバイスで丸ごと取り、毎晩 NAS に送る

iPhone のバックアップを PC と NAS に:Windows 11 の Apple デバイスで丸ごと取り、毎晩 NAS に送る

iPhone のバックアップを、iCloud ではなく自分の PC と NAS に保存するようにしました。

iCloud の容量を増やすと毎月お金がかかります。PC と NAS はもう家にあるので、それを使えば追加の費用はかかりません。この記事では、Windows 11 の PC で iPhone を丸ごとバックアップし、毎晩 NAS にも送って、いつでも元に戻せる状態にするまでの手順と、つまずいた所をまとめます。

この記事のポイント

  • Windows の「Apple デバイス」アプリで、iPhone を暗号化して丸ごとバックアップ(8.3GB・約 35,000 ファイル)
  • 保存先を空きの多い D ドライブに移す(C ドライブを圧迫しない)
  • 毎晩 23 時に、PC のバックアップを NAS にコピー(変更があったファイルだけ・1 分ほど)

こうしておくと、PC が壊れても NAS から、NAS が壊れても PC から iPhone を戻せます。

1. Apple デバイスのアプリでバックアップを取る

C ドライブの空きが少ないときは、1 回目のバックアップ(8GB ほど)で C が詰まるので、先に「2. バックアップの保存先を D ドライブに移す」をしてから取ってください。

Windows 11 では、iTunes の代わりに Microsoft Store の「Apple デバイス」アプリを使います。インストールして iPhone を USB ケーブルで接続すると、iPhone に「このコンピュータを信頼しますか?」と出るので「信頼」を押し、iPhone のパスコードを入力します。

Microsoft Store の Apple デバイスのアプリのページ
Microsoft Store で「Apple デバイス」を探してインストールします

アプリの「一般」で、「iPhone 内のすべてのデータをこのコンピュータにバックアップ」を選び、「ローカルバックアップを暗号化」にチェックを付けます。チェックすると、バックアップを守るパスワードを決める画面が出ます。

Apple デバイスのアプリで、バックアップを保護するパスワードを入力する画面
チェックすると、バックアップを守るパスワードを決める画面が出ます
Apple デバイスのアプリの一般の画面。すべてのデータをこのコンピュータにバックアップとローカルバックアップを暗号化を選んだところ
「このコンピュータにバックアップ」と「ローカルバックアップを暗号化」を選んだところ(iPhone の名前は隠しています)

暗号化しておくと一緒に残るもの

  • 保存したパスワード
  • ヘルスケアの健康管理データなどの個人情報
  • Wi-Fi の設定

暗号化のパスワードを忘れると戻せなくなるので、パスワードマネージャーに保存しておきます。

つまずいた所:「今すぐバックアップ」を押しても動かない

「今すぐバックアップ」を押しても、画面が何も変わりませんでした。iPhone を見ると、バックアップを始めるためのパスコードの入力を求められていました。パスコードを入力すると、すぐにゲージが動き出しました。PC の画面ではなく、iPhone の画面を見るのがコツです。

Apple デバイスのアプリでバックアップ中のゲージが進んでいる画面
iPhone でパスコードを入力すると、下のゲージが進み始めます

1 回目のバックアップは 8.3GB で、写真の多さによって時間が変わります。

2. バックアップの保存先を D ドライブに移す

Apple デバイスのアプリには、保存先を変える設定がありません。バックアップは C ドライブのユーザーのフォルダーの中(Apple\MobileSync\Backup)に作られます。C ドライブの空きが少ないので、D ドライブのフォルダーを指す「ジャンクション」を作りました。

作業のあいだは、Apple デバイスのアプリを閉じておきます。管理者でないふだんのコマンドプロンプトで、D ドライブのフォルダーを作ってから、ジャンクションを作ります。

mkdir "D:\<置き場所>\MobileSync-Backup"
mklink /J "%USERPROFILE%\Apple\MobileSync\Backup" "D:\<置き場所>\MobileSync-Backup"

アプリからは今までの場所に見えますが、実際のファイルは D ドライブに入ります。すでに Backup のフォルダーがあるときは、ファイルを D ドライブに移してから、元のフォルダーを消してジャンクションを作ります。

3. 毎晩 NAS にコピーする

PC のバックアップだけだと、PC の故障で一緒になくなります。そこで、Windows のタスク スケジューラで、毎晩 23 時に NAS へコピーするようにしました。コピーには robocopy を使います。

@echo off
rem Copy iPhone backup (Apple Devices app, encrypted) to NAS.
rem from: D:\<置き場所>\MobileSync-Backup (junction target of %USERPROFILE%\Apple\MobileSync\Backup)
rem to:   \\<NAS の名前>\<共有フォルダー>\MobileSync-Backup (mirror)
rem robocopy exit code 0-7 = OK, 8+ = failed
rem If the source has no Manifest.db (junction broken, drive missing), stop. /MIR would empty the NAS copy.
dir /s /b "D:\<置き場所>\MobileSync-Backup\Manifest.db" >nul 2>&1 || (>>"D:\<置き場所>\copy-to-nas-history.log" echo %date% %time% FAILED no source & exit /b 0)
robocopy "D:\<置き場所>\MobileSync-Backup" "\\<NAS の名前>\<共有フォルダー>\MobileSync-Backup" /MIR /R:2 /W:5 /FFT /NP /NFL /NDL /LOG:"D:\<置き場所>\copy-to-nas.log"
set RC=%ERRORLEVEL%
if %RC% GEQ 8 (>>"D:\<置き場所>\copy-to-nas-history.log" echo %date% %time% FAILED rc=%RC%) else (>>"D:\<置き場所>\copy-to-nas-history.log" echo %date% %time% OK rc=%RC%)
exit /b 0

<…> の所は、自分の環境に合わせて書きかえます(D ドライブの置き場所・NAS の名前・NAS の共有フォルダー)。

指定の意味

  • /MIR:PC と同じ状態にそろえる(PC で消えた古いバックアップは NAS でも消える)。元のフォルダーが空のとき(ジャンクションが外れた・D ドライブが読めない)に動くと NAS のバックアップまで空にしてしまうので、元に Manifest.db がないときは止める行を robocopy の前に置いています
  • /FFT:時刻の比べ方をゆるめる(下のつまずきを参照)
  • /R:2 /W:5:失敗したら 5 秒あけて 2 回までやり直す

タスク スケジューラの設定

  • トリガー:毎日 23:00
  • 操作:「プログラムの開始」で、プログラムに copy-to-nas.cmd のパスを書く
  • ユーザー:NAS の共有にアクセスできる自分のユーザーで、「ユーザーがログオンしているかどうかにかかわらず実行する」を選ぶ(SYSTEM で動かすと NAS にアクセスできない)
  • NAS のパスワード:前もってエクスプローラーで NAS の共有を一度開き、「資格情報を記憶する」にチェックを付けておく
  • 設定:「スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行する」にチェック(23 時に PC が切れていても、次に起動したときにコピーする)

バッチのファイルはいつも成功で終わるので、タスク スケジューラの画面では失敗が分かりません。失敗は copy-to-nas-history.log の「FAILED」の行で分かります。

つまずいた所:毎回 8GB 全部をコピーし直していた

1 回目は 15 分ほど(1 分に約 560MB)でコピーが完了しました。ところが、2 回目も変更がないはずのファイルを全部コピーし直していました。

原因は、NAS のファイルの時刻の細かさが Windows と違うことです。robocopy が「時刻が違う=変更があったファイル」と見ていました。/FFT(時刻の差を 2 秒まで同じと見る)を足すと、変更がない 35,337 ファイルをすべて飛ばし、1 分で完了するようになりました。

robocopy の結果:/FFT を足す前は 35,337 ファイルを全部コピー、足したあとは変更がないので全部飛ばして 1 分で完了
robocopy の実際の結果。左が /FFT を足す前、右が足したあと

つまずいた所:記録に結果の番号が残らない

バッチのファイルで、結果を記録に足す行を「echo OK %RC%>>記録.log」と書いていました。robocopy の結果が 1 のとき「OK 1>>」となり、「1>>」が書き出し先の指定として読まれて、番号が消えていました。「>>記録.log echo OK rc=%RC%」のように、書き出し先を先に書くと直ります。robocopy は 0〜7 が成功、8 以上が失敗です。

元に戻すとき

  1. PC を再インストールしたときは、先に「2」のジャンクションを作り直す
  2. PC のバックアップがなくなっていたら、NAS の MobileSync-Backup を PC の D ドライブの置き場所にコピーして戻す
  3. iPhone を接続して、Apple デバイスのアプリの「バックアップを復元」を押す
  4. 暗号化のパスワードを入力する

やってみて

お金をかけずに、iPhone の丸ごとのバックアップを 2 か所に置けるようになりました。毎晩のコピーは変更があった分だけなので、1 分ほどで完了します。

ただし、バックアップを取るには iPhone を PC に接続する必要があります。毎日接続するのは手間なので、次はラズパイに iPhone を接続して、ケーブルを挿すだけでバックアップが取れるかを試しています。その結果はラズパイで試した記事に書きました。

この記事を書いた人

フリースタイル

Web の仕事 25 年以上。WordPress の保守・引っ越しと、PHP の業務の仕組みづくり。 プロフィール →

まずは、お気軽にご相談ください。

相談と見積りは無料です。急ぎのときは、フォームで「急ぎ」を選んでください。