step1)
古いUSBハードディスクをマイナスドライバで殻割りしてUSB3.0対応のケースに移設。
step2)
古いハードディスクのディスクイメージを2つ格納できるサイズのUSBハードディスクを追加。Mac側から書き込めて、VirtualBox上のubuntuからマウントできるファイルシステムである必要があるので、FAT32でフォーマット。
step3)
ddrescueをGNUのサイトから入手。
step4)
Macのターミナルを起動し、diskutil listコマンドで接続されているディスクを確認。
USB3.0のケースに移した古いハードディスクをMacに接続し、
「セットしたディスクは、このコンピュータで読み取れないディスクでした。」というダイアログが表示されるのを待つ。ダイアログが表示されたら「無視」を押す。
この状態で再びdiskutil listコマンドを実行して先ほどの実行結果と比べると、増えている情報が、古い方のハードディスクである。(例えば/dev/disk2)
step5)
古い方のハードディスクが/dev/disk2であるとしたら、これに対応するキャラクタデバイスのスライス1(この例では/dev/rdisk2s1)からddrescueを用いてディスクイメージを吸い出す。
ディスクイメージを格納するためのハードディスクにcdしたあと以下のコマンドを実行。
sudo ddrescue /dev/rdisk2s1 20150109regza.dd regza.log
キャラクタデバイスデバイスではなくブロックデバイスで読み出すこともできるが、7倍程度遅かったのでこちらを採用。
step6)
吸い出したdiskイメージをVirtualBoxで認識可能な仮想ディスク形式に変更。
VBoxManage convertfromraw ../IODATA/20150109regza.dd 20150109regza.vdi --format vdi
step7)
移行先となる新しいハードディスクをRegzaに接続し、初期化後、取り外す。
この操作で、Regzaが認識するXFSファイルシステムを作成する。
step8)
新しいハードディスクをMacに接続し、「セットしたディスクは、このコンピュータで読み取れないディスクでした。」というダイアログが表示されるのを待つ。ダイアログが表示されたら「無視」を押す。diskutil listコマンドを実行し、新しく増えたディスクの名前を確認する。(例えば/dev/disk 3)
step9)
新しいハードディスクがUSB2.0の場合はVirtualBox上のubuntuから正常にアクセスすることができるが、USB3.0の場合エラーになるので、以下のコマンドでrawディスクとしてアクセスするための仮想ディスクを作成する。またVirtualBoxのプロセスから読み書きできるようにパーミッションを変更する。
sudo VBoxManage internalcommands createrawvmdk -filename new1.vmdk -rawdisk /dev/disk3
sudo chmod 666 /dev/disk3* new1.vmdk
なお、仮想ディスクファイルの中にデバイス名などが埋め込まれているので、USBの 挿し替えや、挿す順番を変えると仮想デバイスファイルを新しい名前で作り直す必要がある。
同じ名前の仮想デバイスファイルで再作成すると、VirtualBoxが正しい仮想ディスクファイルではないというエラーを出す。
step10)
VirtualBox上にubuntuをインストールする。注意点としてストレージはSCSIとして作成する。後続のステップで接続するディスクとの混同を抑止する目的。
step11)
step6とstep9で作成した仮想デバイスファイルをその順番でVirtualBoxにインストールしたubuntuのストレージ設定からIDEデバイスとして登録する。この順序で/dev/sda,/dev/sdbとなるはず。
step12)
VirtualBox上のubuntuを起動する。起動直後にfn-F12を押して、起動デバイス選択画面を表示し3を押すことでSCSIから起動する。
step13)
rootでログインし、ubuntuのコンソール上で以下のコマンドを実行し、仮想ディスクが正しく 認識できていることを確認。
dmesg | grep sd
step14)
古いディスクのUUIDを確認し、保存。
xfs_admin -u /dev/sdb
xfs_admin -u /dev/sdb > oldUUID
step15)
xfs_admin -u /dev/sdb
xfs_admin -u /dev/sdb > oldUUID
step15)
古いディスク側をマウント
mkdir -p /mnt/old
mount -o ro -t xfs /dev/sdb /mnt/old
step16)
新しいディスク側をマウント
mkdir -p /mnt/new
mount -t xfs /dev/sda /mnt/new
step17)
ファイルをコピー
cp -Rp /mnt/old/.t* /mnt/new/.
cp -Rp /mnt/old/* /mnt/new/.
step18)
同じUUIDのデバイスは同時にマウントできないので、古いディスクをアンマウント。
umount /mnt/old
step19)
新しいディスクのUUIDを古いディスクの値に変更。
xfs_admin -U step14で読み出したUUID /dev/sda
step20)新しいディスクをアンマウント
umount /mnt/new
これで
データ移行が完了。Regzaに付いている古いハードディスクを外して新しいハードディスクを接続。