Linuxで,Windowsが入ったHDDをSSDに引っ越す
目的:ThinkPad T60のHDDをSSDに換装する。
Transfer Windows to New Hard Disk using ntfsclone [edoceo.com]の方法でうまくいったので報告します。
前提
- PC1: ThinkPad T60, Windows 7 32bit, HDD:HGST HTS723225L9A360 250GB, パーティションのスタイル:MBR
- PC2: 自作PC, Debian 8, HDD: HGST 500GB
- SSD: SanDisk SDSSDXPS-240G-J25 240GB
PC1のHDDを取り外してPC2に繋いでPC2のHDDにデータを吸い出し,続いてPC2にSSDを繋いで先ほど吸い出したデータを書き戻す。最後にSSDをPC1に挿して終わり。
準備
コピー元のHDDのほうがコピー先のSSDより容量が大きいので,ディスクの管理でパーティションを縮小しておく。
Windows 7 のディスクのボリュームを簡単に縮小する [microsoft.com].
デフラグして,イベントビューアーでデフラグできないファイルを確認してどうにかする。
私の場合はページファイル(C:\pagefile.sys)が掴まれていてデフラグできなかったので,ページファイルのサイズを0にした。
吸い出し
PC AからHDDを取り外しPC Bに接続する。接続したHDDを/dev/sdbとする。
パーティションテーブルを確認する。
sdb1とsdb2があることが分かる。sdb1が管理領域で,sdb2がCドライブ。
$ sudo sfdisk -d /dev/sdb # partition table of /dev/sdb unit: sectors /dev/sdb1 : start= 2048, size= 204800, Id= 7, bootable /dev/sdb2 : start= 206848, size=431515648, Id= 7 /dev/sdb3 : start= 0, size= 0, Id= 0 /dev/sdb4 : start= 0, size= 0, Id= 0
先頭のほうのセクタをDDで吸い出す。512バイト x 2048セクタ。
$ sudo dd if=/dev/sdb of=sdb.2048 bs=512 count=2048
sdb1とsdb2をntfscloneで吸い出す。
$ sudo ntfsclone --save-image --output sdb1.ntfsclone /dev/sdb1 ntfsclone v2014.2.15AR.2 (libntfs-3g) NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 104853504 bytes (105 MB) Current device size: 104857600 bytes (105 MB) Scanning volume ... 100.00 percent completed Accounting clusters ... Space in use : 26 MB (24.2%) Saving NTFS to image ... 100.00 percent completed Syncing ...
$ sudo ntfsclone --save-image --output sdb2.ntfsclone /dev/sdb2 ntfsclone v2014.2.15AR.2 (libntfs-3g) NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 220936007680 bytes (220937 MB) Current device size: 220936011776 bytes (220937 MB) Scanning volume ... 100.00 percent completed Accounting clusters ... Space in use : 74027 MB (33.5%) Saving NTFS to image ... 100.00 percent completed Syncing ...
書き戻し
PC Bからコピー元のHDDを取り外す。そしてコピー先のSSDを接続する。接続したSSDを/dev/sdbとする。
先頭のほうのセクタをDDで書き戻す。
$ sudo dd if=sdb.2048 of=/dev/sdb 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0610559 s, 17.2 MB/s
パーティションテーブルができたことを確認する。
$ sudo sfdisk -d /dev/sdb # partition table of /dev/sdb unit: sectors /dev/sdb1 : start= 2048, size= 204800, Id= 7, bootable /dev/sdb2 : start= 206848, size=431515648, Id= 7 /dev/sdb3 : start= 0, size= 0, Id= 0 /dev/sdb4 : start= 0, size= 0, Id= 0
sdb1とsdb2を書き戻す。
$ sudo ntfsclone --restore-image --overwrite /dev/sdb1 sdb1.ntfsclone ntfsclone v2014.2.15AR.2 (libntfs-3g) Ntfsclone image version: 10.1 Cluster size : 4096 bytes Image volume size : 104853504 bytes (105 MB) Image device size : 104857600 bytes Space in use : 26 MB (24.2%) Offset to image data : 56 (0x38) bytes Restoring NTFS from image ... 100.00 percent completed Syncing ...
$ sudo ntfsclone --restore-image --overwrite /dev/sdb2 sdb2.ntfsclone ntfsclone v2014.2.15AR.2 (libntfs-3g) Ntfsclone image version: 10.1 Cluster size : 4096 bytes Image volume size : 220936007680 bytes (220937 MB) Image device size : 220936011776 bytes Space in use : 74027 MB (33.5%) Offset to image data : 56 (0x38) bytes Restoring NTFS from image ... 100.00 percent completed Syncing ...