Macで外付けHDDから外付けHDDに直接ファイルをコピーする方法

# 経緯
MacBook Pro Retina Mid 2012 のSSDの容量は256GBと小さいので、2013/1に購入してから３年半の間は動画ファイルや古い写真ファイル、音楽ファイルは全て1TBの外付けHDDに保存していました。
しかし、その外付けHDDも残りの容量が30GBを切ってしまい心細くなってきました。

そこで1TBのデータも含めて4TBの外付けHDDに移行する事にしました。

# やりたい事
外付けHDD(1TB)のデータを全て新しい外付けHDD(4TB)に保存する。

# Finderからコピーする（失敗）
まずFinderからファイルやフォルダを全て選択してコピペしました。</br>
しかし、外付けHDDから外付けHDDへのコピーは想定通り遅く
180GB程度の写真ライブラリ(iPhotoファイル)のコピーに3日と表示されました。
380GBの動画ファイル(iMovieファイル)はコピーできないと表示されました。

ファイルを１つ１つではなくて中身など関係なくマルっとコピーする方法があったよなぁ〜と
Linuxのddコマンドのことを思い出しました。

# ddコマンドでコピーする方法（成功）
ddコマンドはファイルシステムや中身を気にせずdisk2の内容をそのままdisk3に上書きします。
__上書きのためdisk3のデータは消えるので注意してください。__
__データ消失のリスクがあるので自己責任で実施してください。__


ddコマンド実行後は30時間くらいかかります。
disk2は念のためアンマウントしておきます。

```
diskutil unmountDisk /dev/disk2
sudo dd if=/dev/disk2 of=/dev/disk3 bs=1m
```



# ddコマンドの進捗確認
別ターミナルから以下を実行して進捗を確認しました。

dd実行後にddのプロセス番号を確認する。
`ps -ef | grep dd`

1分間隔でシグナルを送る。
`while [ 1 ] ; do sudo kill -info 620; sleep 60; done`

ddコマンドの標準出力に以下のように出力されます。

```
1000007008256 bytes transferred in 100624.296207 secs (9938027 bytes/sec)
953869+0 records in
953869+0 records out
```


# 結果の確認
コピー後の内容を確認します。
G-DRIVE mobile USBを使ってました。そのままコピーされて4.0TBの中にあります。

```
diskutil list
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *4.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS G-DRIVE mobile USB      999.9 GB   disk2s2
```

# パーティション変更（追加）
コピーはできました。しかし、4TBの中の1TBしか使えないのでサイズを変更します。
ディスクユーティリティーだと「MediaKit が、パーティション（マップ）が小さすぎることを報告しています」というエラーが出て実行できませんでした。

```
diskutil resizeVolume /dev/disk2s2 limits
    For device disk2s2 G-DRIVE mobile USB:
           Current size:  999.9 GB (999860166656 Bytes)
           Minimum size:  978.1 GB (978080641024 Bytes)
           Maximum size:  4.0 TB (4000442027520 Bytes)
diskutil resizeVolume /dev/disk2s2 4.0TB
```

diskutilでも似たようなメッセージが表示されますが、よく読むと対処方法が書かれています。

```
Note: Your partition map does not use the entire space of your whole-disk. You should use "diskutil repairDisk" and then repeat this command.
The size (4.0TB) must not be greater than the partition map allocatable size
```

diskutilのメッセージ通り実行します。G-DRIVEをそのまま持ってきているのでサイズなどの情報が入っているEFIの領域もコピーしてしまっているようです。
メッセージの通りrepairDiskをdisk2に実施します。disk2s1はEFIの領域です。

```
diskutil repairDisk /dev/disk2

Repairing the partition map might erase disk2s1, proceed? (y/N) y
Started partition map repair on disk2
Checking prerequisites
Checking the partition list
Adjusting partition map to fit whole disk as required
Did grow entire partition map
Checking for an EFI system partition
Checking the EFI system partition's size
Checking the EFI system partition's file system
Checking the EFI system partition's folder content
Checking all HFS data partition loader spaces
Checking booter partitions
Reviewing boot support loaders
Checking Core Storage Physical Volume partitions
Updating Windows boot.ini files as required
The partition map appears to be OK
Finished partition map repair on disk2
```

その後、resizeVolumeを再度実行します。

```
diskutil resizeVolume /dev/disk2s2 4.0TB

Resizing to 4000000000000 bytes
Started partitioning on disk2s2 G-DRIVE mobile USB
Verifying the disk
Verifying file system
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking catalog hierarchy
Checking extended attributes file
Checking volume bitmap
Checking volume information
The volume G-DRIVE mobile USB appears to be OK
File system check exit code is 0
Resizing
Finished partitioning on disk2s2 G-DRIVE mobile USB
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *4.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS G-DRIVE mobile USB      4.0 TB     disk2s2
```

無事、成功しました。元のデータはそのままで領域を拡張できました。

# その後
この記事から3年が過ぎ、外付けハードディスク自体を「コピーする。」「クローンを作る」必要があるなと気づきました。色々試行錯誤中なのですが、どうしたものかと検討中です。