MacOS XでUSBハードディスクコピーをddコマンド実行

参考は以下。

http://d.hatena.ne.jp/Syunpei/20110131/1296453936
http://yamaqblog.tokyo/?p=9138

コピー元のディスクとコピー先のディスクをUSBポートに挿す。コピー先のディスクが新品などMacで認識できない場合は、

セットしたディスクは、このコンピュータで読み取れないディスクでした。

とダイアログが出るので、「無視」を決め込む。
diskutil listで現在のディスク情報を表示する。diskutil unmountしたらパーティションがあるんなら代わりに"unmountDisk"使えと言われるので、それを実行。diskutil unmountDiskを実行するとマウント時に表示されていたアイコンも消える。なお、MacOS XのddはSIGINFO(CTRL+T)を送るごとにどこまでコピーしたかを表示してくれる(GNUのddはSIGUSR1)。

$ stty -a
speed 9600 baud; 24 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
	-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
	-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
	-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
	-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
	eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
	min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
	stop = ^S; susp = ^Z; time = 0; werase = ^W;
$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            999.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *16.0 MB    disk1
   1:        Apple_partition_map                         32.3 KB    disk1s1
   2:                  Apple_HFS Flash Player            15.9 MB    disk1s2
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS Macintosh HD            837.3 GB   disk2s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk2s3
   4:       Microsoft Basic Data BOOTCAMP                162.0 GB   disk2s4
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                                                   *1.0 TB     disk3
$ diskutil unmount /dev/disk2
disk2 was already unmounted or it has a partitioning scheme so use "diskutil unmountDisk" instead
$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            999.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *16.0 MB    disk1
   1:        Apple_partition_map                         32.3 KB    disk1s1
   2:                  Apple_HFS Flash Player            15.9 MB    disk1s2
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS Macintosh HD            837.3 GB   disk2s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk2s3
   4:       Microsoft Basic Data BOOTCAMP                162.0 GB   disk2s4
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                                                   *1.0 TB     disk3
$ sudo dd if=/dev/disk2 of=/dev/disk3 bs=1m

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
ここでCTRL+Tすると
load: 0.82  cmd: dd 2896 running 0.05u 235.74s
12652+0 records in
12651+0 records out
13265534976 bytes transferred in 1763.032287 secs (7524272 bytes/sec)
同じようにここでCTRL+Tすると
load: 0.87  cmd: dd 2896 uninterruptible 0.05u 252.49s
13522+0 records in
13522+0 records out
14178844672 bytes transferred in 1887.433072 secs (7512237 bytes/sec)
と気になった時点で進捗を確認できる。

終了後、マウント解除は以下のとおり。

$ diskutil eject /dev/disk2
$ diskutil eject /dev/disk3