やりたいこと
- SSD A (1TB) にTime Machineでバックアップを続けてきて、バックアップ履歴があります。
- SSD Aの残容量が少なくなったので、これからはSSD B (2TB) にバックアップを取りたいです。
- SSD Aにある過去のバックアップ履歴を、SSD Bでも引き続き使いたいです。
困っていたこと
方法がわかりませんでした。
- Appleの公式サイトには情報なし。過去には記載があったようですが、今のmacOSで実行できる方法は見つけられませんでした。
- Web検索でもドンズバ情報が見つけられませんでした。日本語・英語の両方で調べましたが、古いmacOSの情報であったり、比較的新しいものでも、いろいろな見解があって、定説とおもえるものを見つけられませんでした。
- 生成AIに聞いてもわかりませんでした。複数の生成AIに聞き、いくつか試してみましたが、うまく行きませんでした。
結果的に成功した手順
Time Machine 用 HDD を移行しようとして時間を無駄にしつつ解決するまで を参考にしつつ、下記のようにアレンジして進め、結果的にほぼ期待通り動いています。
わたしのケースではできましたが、一般性があるかどうか不明です。
前提条件
- SSD Aは合計2TBで、1TBのコンテナが2つあり、1つをTime Machine用に割り当てています。
- 該当のコンテナはAPFS(大文字/小文字を区別、暗号化)でフォーマットしています。
- Time Machineバックアップファイルも暗号化しています。
- SSD Bは合計2TBで、全領域をTime Machineに使います。
下ごしらえ
まず、Time Machineバックアップが発動するのを防ぎます。現行のmacOSで「停止」はできません(以前は停止できました)。Time Machineバックアップを作成し、その後にバックアップ頻度を1週間にします。これで、作業中にTime Machineバックアップが発動することがなくなります。
次に、SSD Bを消去します。APFS(暗号化)、方式はGUIDパーティションマップで。
最後に、移行元と移行先の、コンテナのdisk番号を、ディスクユーティリティで調べます。
下図の場合だと、移行元はdisk8、移行先はdisk10。接続のたびに番号は変わるので要注意。
これで下ごしらえは完了です。
データのコピー
下記では、移行元はdisk8、移行先はdisk10と仮定します。毎回番号は変わるので、ご注意下さい
まず、ディスクをアンマウントします。
$ diskutil unmountDisk /dev/disk8
Unmount of all volumes on disk8 was successful
$ diskutil unmountDisk /dev/disk10
Unmount of all volumes on disk10 was successful
つぎに、ddコマンドでデータを複製します。
$ sudo dd if=/dev/rdisk8 of=/dev/rdisk10 bs=16m
load: 5.02 cmd: dd 11621 uninterruptible 0.00u 0.57s
708+0 records in
708+0 records out
11878268928 bytes transferred in 99.636187 secs (119216414 bytes/sec)
load: 2.84 cmd: dd 11621 uninterruptible 0.00u 1.45s
1968+0 records in
1968+0 records out
33017561088 bytes transferred in 232.336405 secs (142111010 bytes/sec)
load: 4.78 cmd: dd 11621 uninterruptible 0.05u 10.12s
17974+0 records in
17974+0 records out
301553680384 bytes transferred in 1788.999543 secs (168559954 bytes/sec)
59628+1 records in
59628+1 records out
1000397774848 bytes transferred in 5891.339144 secs (169808213 bytes/sec)
これでデータは無事にコピーされました。しかし、SSD Bは2TBの容量がありますが、SSD Aをまるごと複製しているので、1TBと認識されてしまっています。
パーティションを設定し直す
いいスクショを取り忘れたのですが、「デバイスとしては2TBだが、コンテナとして1TBだとおもっている」と、変な状態になっています。そこで、いったんパーティションを追加して、次にパーティションを削除する、という手順を踏みます。
まず、下図のように、「名称未設定」パーティションを追加します。
サイズはいくつでも良いと思いますが、万が一のことを考え、名称未設定領域をできるだけ小さく(270MBぐらい)にしました。
次に、作ったばかりの「名称未設定」パーティションを削除します。
これで、SSD Bは、ディスク2TB、コンテナ2TB、ボリューム2TBにできました。
ボリューム名称は、SSD A時代のものを引き継いでしまい、変更できませんでした。
SSD Bを接続し直して、Time Machineバックアップを走らせると、SSD Bにバックアップをし始めます。Time Machineに入ると、過去に戻ることができます。
やったがうまく行かなかったこと
いろいろ試したので、何をしたかわからなくなりつつありますが、覚えている限り。
🚫生成AI案その1
Time Machineの設定を開き、「ディスクを選択」で新しいドライブを選択します。
新しいドライブを選んだ後、システムは既存のバックアップを新しいドライブに移行するかどうか尋ねます。このオプションを選択して、指示に従います。
このプロセスは、既存のTime Machineバックアップを新しいドライブに複製し、以前のバックアップ履歴を保持します。
と複数のAIが言いましたが、ウソです。この手順を実施すると、SSD Bに、バックアップ履歴無しで、ゼロからバックアップを作ります。
生成AIだけじゃなくて、Transfer your Time Machine Backups to a New Drive With This Guide - AppleToolBox にも同じ手順が書かれていますが、ダメです。
🚫生成AI案その2
生成AIによる別案は
$ sudo tmutil inheritbackup /path/to/source/backup /path/to/destination/backup
なのですが、全然ダメでした。
$ sudo tmutil inheritbackup /Volumes/TimeMachine\ 1TB/Backups.backupd /Volumes/Logitec\ LMD\ 2TB
Password:
Usage: tmutil inheritbackup machine_directory
tmutil inheritbackup sparse_bundle
tmutil
コマンドをもう少し研究したら、答えがあったのかもしれませんが、けっこう難しかった。
🚫ディスクユーティリティの復元を利用
【完全版】Time Machineバックアップを別のディスクに移行する方法 - cBlog
に、移行元からディスクイメージに書き出し、ディスクユーティリティをつかって、イメージを移行先に書き戻す方法が紹介されています。
1TB近いディスクイメージをつくるストレージは持っていなかったので、移行元から移行先に直接、ディスクユーティリティで復元しようとしましたが、全然ダメでした。
まとめ
この記事では、容量不足のSSD A (1TB) から新しいSSD B (2TB) へのTime Machineバックアップデータの移行プロセスを解説しました。公式情報の欠如と既存記事が錯綜していたことから、複数の試みを経て、結果としては移行に成功しました。この記事は、既存のバックアップ履歴を保持しながら新しいドライブへ移行するための具体的なステップを含んでいます。
しかし、この方法はすべての環境や設定で機能する保証はありません。あくまで一つの成功例として参考にしていただければと思います。特に新しいmacOSのバージョンに関して、Time Machineバックアップデータ移行の情報が少ないので、この体験談が役立つことを願っています。
AppleがTime Machineバックアップの移行に関する公式の手順やガイドラインを提供することの重要性を、期待とともに記しておきたいと思います。公式ガイドがあれば、ユーザーが同様の問題に直面した際の困難を軽減できるはずです。公式情報の提供を期待したいとおもいます。
この記事は 新ディスクへのTime Machineバックアップ移行手順 - MXT Forest に基づいています。最新の情報や更新は、元の記事で確認してください。