この手順は、おそらく全てのBWx50シリーズ(BW750/BW850/BW950)に適用できる。 試してないけど。ホントは機種間でHDDの内容比較してみたいんだよねー。
一方、DMR-BW830には試して適用できた。参考までに。
このページの情報は一切無保証で、誤っている可能性もあることを 先に了承すること。このページを見て操作した挙句、アナタに何か不利益な ことが起こったとしても、我輩は一切それに関知しない。 ちなみに我輩には既に結構不幸なことが起こったがな!
どっかの雑誌でこういうのの特集を組んだことがあるらしい。 それを元にいろんな人々がHDD換装にチャレンジし、成功している模様。 情報として 大変よく纏まっているページが 既に存在するため、基本的には詳細はそっちを見ればよろしい。
纏めると、大まかには以下のようなカンジ。
最後のフォーマットは「必ず」必要なので、残念ながら、録画している番組データを 持ち越すことはできない。うーん残念。
以下の手順は、BW850(ソフトウェアバージョン:2.07)で確認した。換装先HDDは 東芝 DT01ABA200V。AVコマンドにも対応したニクいヤツ(ちょいお高い)。
換装後HDDには、以下の条件がある。これら満たされないHDDは使用できない。
というわけで、お勧めは以下のHDD群。ちうかもう一択じゃん!?というわけで、 我輩は東芝 DT01ABA200VをAmazonから入手。 換装後、あんま冷房しない部屋でひと夏越えたので、多分この選択は当たりだと思う。
| 型名 | サイズ | 回転数 | 価格(2014/04現在) |
|---|---|---|---|
| 日立 0S03224(=HDS5C3020ALA632) | 2TB | 5940rpm(CoolSpin) | 不明だがamazonではプレミアついたのか22000円程度 |
| 東芝 DT01ABA200V | 2TB | 5700rpm | 9000円程度 |
あ、今回わかったけど、AFT(4096byte/sector)のHDDでも大丈夫。 今回これが一番驚いた。
スゲー簡単なので省略。 正直、こんなに簡単だと思わなかった。後方3本、左右1本づつの計5本のネジを 抜くことで、天板が外れる。あとはHDDにアクセスし放題。見えるところに全ての ネジがあるから、自作PCよりも絶対簡単だと思う。
分解し終わったら、HDDのマウンタネジ四本とSATAケーブル・電源を抜けば、 HDDはすぐ分離できる。
コピー専用ガジェットを使う人が多いらしいが、我輩は貧乏なので、デスクトップ機の 6Gbpsポートに新旧HDDを接続して、自作1CDLinux(Knoppixでもいい)で起動してから 以下のddコマンドを使った。以下のコマンドでは旧=/dev/sda、新=/dev/sdbとする。
# dd if=/dev/sda of=/dev/sdb bs=1024M |
これで、500GBのコピーに3時間ちょっとかかる。ddの出力ではコピー速度は 47.9MB/sだった。実際には、1GBごとに読み書きを繰り返すわけだから、 読み書き共にほぼ100MB/s出ていたことになる。まぁまぁ優秀。
実際には、先頭2GBもコピーすれば十分。もしそうなら、40秒くらいでコピーは 完了する。
Windows上でHxDを使って、
当該HDDをバイナリレベルで編集した。なんでLinux上でやらなかったのかというと、
LinuxはSATAのHotPlugの動作がかなり怪しいため。この値の詳細も
こちらに書いてある。
表の上4箇所だけでいいという話があるが、この4箇所だけ変更してBW850上で
HDDフォーマットしても、下12箇所は変更されなかった。だもんで、念のために
我輩は下12箇所も変更した。
それが正しいかどうかは知らないが、バイナリを眺めた範囲だと
なんか変更しとかないといつかヤバいことになりそうな気がしたので。
2016/04/07追記。おそらく下の12箇所は不要。というのは、手前の機器では、残り
55時間くらいのところで追加録画できなくなったため。不要分を消せばそこまでは
繰り返し録画可能。あれー前試したはずだったんだけど…。
これ元に戻したら書けるようになるのかどうかは不明。今はもう録画データあるから
試してそれが見えなくなったら怖いしー。誰か試してくんないですかのぅ。
2017/01/22さらに追記。残り55時間で追加録画できなくなくなったのは、 この書き換えやHDDの残り容量が問題なのではなくて、 最大録画番組数(500番組)に引っかかったことが原因だったことがわかった。 500番組だと、30分番組を250時間分録画できることになるが、地デジアニメだと DRでも実時間の2/3、MXなら多分1/2以下のHDD容量しか食わないので、 これだと125〜166時間程度のHDD容量で、先に最大録画可能番組数に引っかかって しまう。というわけで、我輩は12箇所変更したまま運用中。それ以外に不具合は 今のところ存在しない。
| 編集箇所 | 編集前の値(リトルエンディアン) | 編集後の値(リトルエンディアン) | |
|---|---|---|---|
| Offset (16進) | Sector (10進、512byte/sector換算) | ||
| 411C4 | 520 | 51 BA 80 0E | 44 99 28 3A |
| 419C4 | 524 | ||
| 20411C4 | 66056 | ||
| 20419C4 | 66060 | ||
| 401C0 | 512 | 51 CA 8C 0E | 44 A9 34 3A |
| 40814 | 516 | ||
| 409C0 | 516 | ||
| 41014 | 520 | ||
| 41808 | 524 | ||
| 41814 | 524 | ||
| 20401C0 | 66048 | ||
| 2040814 | 66052 | ||
| 20409C0 | 66052 | ||
| 2041014 | 66056 | ||
| 2041808 | 66060 | ||
| 2041814 | 66060 | ||
2017/08/16追記。この数値の根拠は以下のとおり。
物理的に載せる方法は簡単なので省略。
BW850はコンセント挿したら半分起動しちゃうが、その後の起動で「リモコンのスタートボタンで」起動することに注意。 そうしないと、「HDDの異常を検出しました」というメッセージが表示され、 どうにもできなくなる。 スタートボタンで起動したら、[その他の機能へ]→[初期設定]→[HDD/ディスク]→ [HDD設定]→[HDD管理]→[HDDのフォーマット]を実行。
フォーマットを実行することで、(録画されていた番組は全てなくなるが) ディスク残量がリセットされる模様。逆に言えば、これをしないと、HDDコピーした HDD間で録画済の番組は引き継げるが、ディスク残量はリセットされず、HDDを換装した 意味が全くなくなる。
以上ッ! フォーマットまで無事終われば、総録画時間184.54時間の世界が我輩を待っている!
ところで。我輩機の診断コードは「0000 1051 0224 4007」になった。コレにどんな 意味があるのか、誰か教えてください是非。
ちょっと驚いたのは、BW850のHDDをそのままBW830に乗っけても、 ちゃんと起動するしフォーマットさえすればそのまま使えること。HDD先頭に乗ってる ファームウェア(?)は共通である可能性が高い。 オークションとかに「BW830/BW850/BW870に載せたらすぐに使えます!」というHDDが 出てるが、それは多分この特徴を利用している。
ただし、録画予約リストは、HDDをフォーマットしても残るので、これは引き継げる。 というか、引き継げないのは録画済番組だけじゃなかろうか…。
2014/11/11追記。HDDがヘタった中古のDMR-BW830を入手したので、 HDD換装するついでに、HDD間で録画番組が引き継げないか色々試してみた。 結果:不可能。やったのは以下のとおりだが、いずれも失敗。くそう。
うーん手ごわい。フォーマット直後の状態と一番組だけ録画した状態を比較すると、 先頭から512KBあたりから番組のヘッダらしきものが書かれていることが分かったので、 調べていけばなんとかなりそうな気がするが…なんか面倒になってきたしー。
もともとは、4TBへの換装を夢見て、 4TB HDDのHGST 0S03361(=HCS545050GLA380)を買ってきたのが始まりだった。 何度も情報を見直し、色々書き換え、いざ換装。一見フツーに動いて いるように見えたのだが、録画可能時間の表示がおかしいことに気づいた。
| HDD容量 | ディスク残量 |
|---|---|
| 500GB | 46:00 DR |
| 2TB | 184:54 DR |
| 3TB(4TBHDDで容量部分だけ変更して確認) | 73:54 DR (本来277:28くらいになるはず) |
| 4TB | 166:29 DR (本来370:04くらいになるはず) |
2TB時より3TBと4TBの時の方が減ってるし。 こうなるのは大概どこかでオーバーフローしているからだ。 すなわち、2TBを越えたら潔く先頭からデータを壊し始めたりするアレ。 イイカゲンなソフトウェア作らないでよPanasonic!(筋違い)。 この状態で使うのはリスクが高すぎるため、BW850の4TB化は泣く泣く諦めた。 2TBまでの表示は正しいので、じゃあ2TBで使うかー、ということで、前述の 2TB HDDへの換装となったわけだ。 4TB HDDを(サイズを制限して)2TBだけ使うこともできるが、それはもったいなすぎる。
ちょっとまじめに計算してみる。500GBで46:00(=2760分)、2TB(=2000GB)で184:54(=11094分)の 録画時間ということは、
が計算式だ。本当は3TB、4TBの時もコレが線形に続くはずなのだが、 現実にはそうなっていない。 一方、3GBと4GBの時の現実の計算式は以下。 傾きが微妙に違うけど、多分それはちょっとした誤差の範囲。
こちらが0分になるのは、えーと、12231/5.555 ≒ 2201.8GBの時か。
このときの2048byte単位の設定値は、0x4014B038(ビッグエンディアン)。
んー…。オーバーフローを起こしそうな、といえば、32bitを超える時がほとんどで、
そうなりそうなのは、セクタ位置を求めるために x4(2048/512=4だから)
した値を参照した時のような気がする。
じゃぁ、ということで、セクタ数(512byte/sector換算)が32bitを超えるのは、
と計算してみると、0x100000000/512 = 2199023255552 = 2199.0GB の時。
ああ、大体合ってるね。
ということで、BW850(というかBWx50)のファームウェアには、512byte/sectorで セクタ数を32bitで計算する箇所があり、それがオーバーフローしたためにこのような ことが起こっていると推測する。 Linux kernelにはこういうバグがよくあって、 じゃぁオーバーフローしたらどうなるかというと、 黙ってHDD先頭から上書き破壊し始めるという危険極まりない挙動になるという。 やっぱり怖くて2.2TBより大きな容量のHDD使えないじゃないの!。 Panasonicさんしっかりしてくださいよ!Made in Japanのソフトウェア品質って コレだと、松下幸之助が草葉の陰で号泣しちゃうよ! (どっかの国からの導入品かもしらんけどね)。 ああコレ、仕組み的にはLBAの2.2TB制限と同じだねそういえば。HDDレコーダには BIOSみたいな概念は無いから、純粋にファームウェアの問題だけど。
なお、これはBWx50の問題であり、最近の機種なら4TB化は可能なんだそう。 やっぱ古い機種って冷遇されるしかないんだよなー。昔の機種がどうかは知らないが、 多分同じような問題は残っていると思う。
以下は、換装前後のHDDの情報。 Linux上で、smartctl -aで読み出した。 ヤバそうな情報は伏字にて。
smartctl 5.43 2012-05-01 r3539 [i686-linux-3.3.7] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: Hitachi HCS545050GLA380
Serial Number: ##############
LU WWN Device Id: # ###### #########
Firmware Version: GM4OA5DG
User Capacity: 500,107,862,016 bytes [500 GB]
Sector Size: 512 bytes logical/physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 4
Local Time is: Sun Apr 13 10:33:56 2014 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: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
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: (10057) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No 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: ( 167) minutes.
SCT capabilities: (0x003d) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 016 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 054 Pre-fail Offline - 0
3 Spin_Up_Time 0x0007 133 133 024 Pre-fail Always - 344 (Average 346)
4 Start_Stop_Count 0x0012 099 099 000 Old_age Always - 7313
5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0
7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 020 Pre-fail Offline - 0
9 Power_On_Hours 0x0012 099 099 000 Old_age Always - 8232
10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 099 099 000 Old_age Always - 7313
192 Power-Off_Retract_Count 0x0032 094 094 000 Old_age Always - 7883
193 Load_Cycle_Count 0x0012 094 094 000 Old_age Always - 7883
194 Temperature_Celsius 0x0002 214 214 000 Old_age Always - 28 (Min/Max 10/45)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0
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 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.
|
まぁ…フツーですよな。
やっぱり中身は日立だったんですな。 東芝は3.5インチHDDは全部日立OEMで乗り切るつもりだろうか…? AFT(4096byte/sector)であることがこれからもわかる。
smartctl 5.43 2012-05-01 r3539 [i686-linux-3.3.7] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: Hitachi HCS5C3020BLE630
Serial Number: ##############
LU WWN Device Id: # ###### #########
Firmware Version: MZ4OAA90
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 4
Local Time is: Mon Apr 14 20:11:06 2014 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: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
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: (20024) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No 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: ( 334) minutes.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 016 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 054 Pre-fail Offline - 0
3 Spin_Up_Time 0x0007 100 100 024 Pre-fail Always - 213
4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 9
5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0
7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 020 Pre-fail Offline - 0
9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 0
10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 9
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 9
193 Load_Cycle_Count 0x0012 100 100 000 Old_age Always - 9
194 Temperature_Celsius 0x0002 214 214 000 Old_age Always - 28 (Min/Max 21/30)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0
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.
|