2013年1月に使い始めたハードディスクの通電時間が「1万時間」(2013年1月に使用開始してから5年10ヶ月)に達したので、新しいハードディスクにクローン複製して換装した。
故障が増えてくる目安が、通電時間 1万時間 または 利用期間5年、だそうだ。(都市伝説…)
交換前・後のハードディスクは、物理セクタが4096BytesのAFTディスク。
ハードディスク全体のコピー(クローン複製)には
・Linuxのddコマンドコピーする
・Clonezillaでコピーする
の2つの方法が考えられる。
ddコマンドは、データが格納されていない部分も含め「全ての領域」をコピーするため、時間がかかる。
Clonezillaを用いれば、このソフトで認識できるフォーマット(NTFSやext4など)であれば、パーティション内の「書込されていないセクター(領域)」のコピーは省略されるため、大幅に時間短縮できるはずだ。
今回、Clonezillaを用いてコピーすることにする。心配されるのは、各パーティションの物理ディスク内での位置が変更されずに忠実にコピーしてくれるか。AFTディスクはアライメントがずれたら使い物にならない。
結果として、この記事に書いたように問題なくコピーされた。
新・旧ハードディスクの仕様
(旧) ST1000DM003 | (新) ST1000DM010 | |
---|---|---|
インターフェース | SATA 6 GBytes/sec | SATA 6 GBytes/sec |
読み書き速度 | Read 210, Write 156 MBytes/sec | Read 210, Write 156 MBytes/sec |
回転数 | 7200 rpm | 7200 rpm |
プラッタ | 1 枚 | 1 枚 |
Bytes/セクター | 4,096 (AFT) | 4,096 (AFT) |
起動電流 | 2.0 A | 2.0 A |
動作時の消費電力 | 5.9 W | 5.3 W |
アイドル時の消費電力 | 3.36 W | 4.6 W |
スリープ時の消費電力 | 0.63 W | 0.94 W |
寿命 ロード/アンロード回数 | 300,000 回 | 300,000 回 |
筐体寸法 | 101.6 x 146.99 x 20.17 | 101.6 x 146.99 x 19.99 |
購入価格は、ST1000DM003が5,880円、ST1000DM010が5,180円。どちらも、Amazon.co.jpで購入した。
新・旧ハードディスクの smartデータ
複写先(新しい)ハードディスクの容量が、複写元(旧)ハードディスクより大きいか同量なので、単純コピー可能だ。
# smartctl -a /dev/sdb smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-139-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Device Model: ST1000DM010-2EP102 Serial Number: ZN109DGY LU WWN Device Id: 5 000c50 0b3855e63 Firmware Version: CC43 User Capacity: 1,000,204,886,016 bytes [1.00 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 7200 rpm Form Factor: 3.5 inches Device is: Not in smartctl database [for details use: -P showall] ATA Version is: ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s) Local Time is: Fri Nov 30 18:10:53 2018 JST SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x82) Offline data collection activity was completed without error. Auto Offline Data Collection: Enabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete Offline data collection: ( 0) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 1) minutes. Extended self-test routine recommended polling time: ( 111) minutes. Conveyance self-test routine recommended polling time: ( 2) minutes. SCT capabilities: (0x1085) SCT Status supported. SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 100 100 006 Pre-fail Always - 4302 3 Spin_Up_Time 0x0003 100 100 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 1 5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 100 253 045 Pre-fail Always - 29 9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 0 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 1 183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0 188 Command_Timeout 0x0032 100 253 000 Old_age Always - 0 189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0 190 Airflow_Temperature_Cel 0x0022 077 077 040 Old_age Always - 23 (Min/Max 18/23) 193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 1 194 Temperature_Celsius 0x0022 023 018 000 Old_age Always - 23 (0 18 0 0 0) 195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 4302 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 253 000 Old_age Always - 0 240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 0 (16 203 0) 241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 0 242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 4302 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 No self-tests have been logged. [To run self-tests, use: smartctl -t] SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay.
# smartctl -a /dev/sda smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-139-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate Barracuda 7200.14 (AF) Device Model: ST1000DM003-9YN162 Serial Number: Z1D2QDFL LU WWN Device Id: 5 000c50 04ebe26a1 Firmware Version: CC4H User Capacity: 1,000,204,886,016 bytes [1.00 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 7200 rpm Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s) Local Time is: Fri Nov 30 18:10:12 2018 JST SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x82) Offline data collection activity was completed without error. Auto Offline Data Collection: Enabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete Offline data collection: ( 584) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 1) minutes. Extended self-test routine recommended polling time: ( 115) minutes. Conveyance self-test routine recommended polling time: ( 2) minutes. SCT capabilities: (0x3085) SCT Status supported. SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 117 099 006 Pre-fail Always - 122324984 3 Spin_Up_Time 0x0003 097 097 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 091 091 020 Old_age Always - 9463 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 083 060 030 Pre-fail Always - 206269022 9 Power_On_Hours 0x0032 089 089 000 Old_age Always - 9933 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 091 091 020 Old_age Always - 9453 183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0 188 Command_Timeout 0x0032 100 099 000 Old_age Always - 1 1 1 189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0 190 Airflow_Temperature_Cel 0x0022 076 058 045 Old_age Always - 24 (Min/Max 23/24) 191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 105 193 Load_Cycle_Count 0x0032 095 095 000 Old_age Always - 10407 194 Temperature_Celsius 0x0022 024 042 000 Old_age Always - 24 (0 8 0 0 0) 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 10244h+52m+20.642s 241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 144036910332771 242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 95583838809770 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 6987 - # 2 Short offline Completed without error 00% 5606 - # 3 Short offline Completed without error 00% 4467 - # 4 Short offline Completed without error 00% 4463 - # 5 Short offline Completed without error 00% 3354 - # 6 Short offline Completed without error 00% 2212 - # 7 Short offline Completed without error 00% 1901 - # 8 Short offline Completed without error 00% 1682 - # 9 Short offline Completed without error 00% 1621 - #10 Short offline Completed without error 00% 1153 - #11 Short offline Completed without error 00% 693 - #12 Short offline Completed without error 00% 504 - #13 Short offline Completed without error 00% 67 - #14 Short offline Completed without error 00% 5 - #15 Short offline Completed without error 00% 0 - #16 Short captive Completed without error 00% 0 - SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay.
パーティション情報
旧ディスクのパーティション情報。クローン複製後、同様になればAFTディスクとして問題なくコピーできたことになる。 (アライメントがずれていないことになる)
# fdisk -l Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x1641f37c デバイス 起動 Start 最後から セクタ Size Id タイプ /dev/sda1 * 2048 206847 204800 100M 7 HPFS/NTFS/exFAT /dev/sda2 206848 84092927 83886080 40G 7 HPFS/NTFS/exFAT /dev/sda3 84092928 167979007 83886080 40G 7 HPFS/NTFS/exFAT /dev/sda4 167981054 1953523711 1785542658 851.4G 5 拡張領域 /dev/sda5 167981056 209924095 41943040 20G 7 HPFS/NTFS/exFAT /dev/sda6 209926144 272840206 62914063 30G 83 Linux /dev/sda7 272842752 335757311 62914560 30G 83 Linux /dev/sda8 335759360 398673919 62914560 30G 83 Linux /dev/sda9 398675968 461590527 62914560 30G 83 Linux /dev/sda10 461592576 465786879 4194304 2G 82 Linux スワップ / Solaris /dev/sda11 465788928 528703487 62914560 30G 7 HPFS/NTFS/exFAT /dev/sda12 528705536 591620095 62914560 30G 7 HPFS/NTFS/exFAT /dev/sda13 591620328 1011051179 419430852 200G 7 HPFS/NTFS/exFAT /dev/sda14 1011053232 1430484083 419430852 200G 7 HPFS/NTFS/exFAT /dev/sda15 1430487040 1953523711 523036672 249.4G 83 Linux Partition 4 does not start on physical sector boundary. Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes
新ディスクは、未フォーマットのためパーティションが何も表示されない。旧ディスクのパーティション4のアライメントがずれているのは、Gpartedが自動修正したため。データの入っている論理パーティションのアライメントがずれていないので、特に問題なし。
# parted /dev/sda GNU Parted 3.2 /dev/sda を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。 (parted) unit s (parted) print モデル: ATA ST1000DM003-9YN1 (scsi) ディスク /dev/sda: 1953525168s セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 2048s 206847s 204800s primary ntfs boot 2 206848s 84092927s 83886080s primary ntfs 3 84092928s 167979007s 83886080s primary ntfs 4 167981054s 1953523711s 1785542658s extended 5 167981056s 209924095s 41943040s logical ntfs 6 209926144s 272840206s 62914063s logical ext4 7 272842752s 335757311s 62914560s logical ext4 8 335759360s 398673919s 62914560s logical ext4 9 398675968s 461590527s 62914560s logical ext4 10 461592576s 465786879s 4194304s logical linux-swap(v1) 11 465788928s 528703487s 62914560s logical ntfs 12 528705536s 591620095s 62914560s logical ntfs 13 591620328s 1011051179s 419430852s logical ntfs 14 1011053232s 1430484083s 419430852s logical ntfs 15 1430487040s 1953523711s 523036672s logical ext4
ST1000DM010のベンチマーク
ディスクをフォーマットしない状態で、Ubuntu 16.04でベンチマークを実行
1プラッタなので、内周から外周に転送速度がいちように下がるタイプのグラフとなる。
サンプルサイズを100MBytesに設定したベンチマーク結果
このベンチマークソフトのサンプルサイズは、標準で10MBytesだが、安定して測定するためには100MBytes程度に増やしたほうが良い。
次に、Windows 10でディスクをフォーマットした上でベンチマークを実行
このベンチマークは、論理ディスクの先頭付近でしか測定できていないようだ。
参考として、ST1000DM003のディスク情報
Windows 10ライセンス認証のための準備
マイクロソフトの公式文書は『ハードウェア構成の変更後に Windows 10 のライセンス認証をもう一度行う』に掲載されているが、ハードディスクの換装はどうなのか、全くわからない。
一部のパーツを交換しても、ライセンス認証は自動的に行われると「噂されている」。
しかし、CPUやシステムがインストールされたハードディスクなどを交換した場合は、ライセンス認証が失効してしまうという「噂もある」。 失効した場合は、マイクロソフトに電話して復旧してもらう必要があるともいう。
ただし、Windows 10の管理者ログインを「マイクロソフト・アカウント」を用いて行っている場合は、ハードウエアの情報がマイクロソフト側に保存されるので、「もう少し広くパーツの交換が自動認識されるという噂」もある。
旧ディスクで起動している時に、新ディスクを未フォーマットで接続し、ベンチマークを実行することで新ディスクの情報が自動登録されないものか… と期待もかけておく。(もちろん、マイクロソフト・アカウントでログオンするのは言うまでもない)
Clonezillaでディスク全体のクローン複製
日本語で書かれた詳細なディスク・クローンの方法は『Clonezilla その17 - ローカルディスクを他のPCのディスクにコピーする』に詳しい。
ClonezillaをUSBデバイスから起動。
disk_to_local_disk モードを選択。
旧ディスクが /dev/sda に、新ディスクが /dev/sdb に認識され、どちらを複写元にするかの選択画面が出る。
その後、複写先のディスク選択画面が出るが、残り1つのため選択肢は事実上無い。
さらに、複写元のディスクチェック(fsck)を行うか確認が行われる。
そして、クローン作業のコマンド文が表示され、最終確認を求められる。
/usr/bin/ocs-onthefly -g auto -e1 auto -e2 -r -j2 -f sda -t sdb
コマンド引数の説明は『DRBL command reference』に載っている。
-f 複写元デバイス
-t 複写先デバイス
-g auto で GRUBを自動構成
というあたりが重要なので、よく確認しておいて「ENTER」を押す。
さらに、再確認、再々確認のプロンプトがしつこいように表示される。
いよいよコピーが始まる。ddのように単調にコピーし続けるのではなく、パーティションごとにデータ領域を認識しながらコピーされているのがよくわかる。
この画面は、普段のバックアップで見慣れている画面と同じだ。
約2時間ちょっとで複写完了。
1テラバイトのハードディスクを、読み書き平均速度180MBytes/secで忠実に(完全に)コピーした場合
1 * 1024 * 1024 * 1024 * 1024 / ( 180 * 1024 * 1024 ) / 60 = 97 分
これだけかけて読み込みが行われ、書き込みも 97分掛かるので、合計194分掛かるはず。
2時間ちょっと(120分程度)ということは、3分の2に時間短縮できたわけだ。
複写後、Clonezillaでコマンドプロンプトを表示して、partedで忠実にアライメントを維持した状態でコピーされているか見てみる。
成功。
ハードディスクを換装し、起動、アクセス確認
UbuntuやWindowsの起動は問題なし。データパーティション内のデータも、ざっと確認した程度内では問題なし。
Windowsのライセンス認証も問題なかった。