第九夜 〜 おわりに 〜

 

目次 †

 

増量換装のポイント †

[00 01] †

 4 セットともに 59-340 バイト部分を [00] または [AA] で上書きする。

[00 02]-1 †

 24-28 : オリジナルの値そのままを使用。
 28-2C : HDD 容量に合わせて変更するが、その際 [00 02]-2 28-2C (0-Point 以降の HDD 残容量) が
         オリジナルの値に近くなるように計算し設定する。
 50-54 : 上記 28-2C バイト部分の値を 44-48 バイト部分の値で割った値となるが、
         この値が [00 05] モチーフの [65 1B 95 AE] と密接に関連していて、
         レコーダーが正常に機能するのに重要な名付けて「-(マイナス)60 ルール」が存在する。
         すなわち、この値から 0x60 または 0x61 を引いた値と [65 1B 95 AE] 内の最も大きなアドレスが
         一致しなければならないのが「-60 ルール」である。
         もしこのルールが守られない場合には、レコーダーは起動はするものの HDD にアクセスすると、
         「ハードディスク準備中です。操作できません。」と表示され、機能しなくなる。
         このルールは BD-W560 以外の機種で共通している。
 54-58 : [00 03]-L モチーフの開始アドレスであり、オリジナルの値そのままを使用。

[00 02]-2 †

 24-28 : 0-Point の位置であり、[00 02]-1 の 24-28 バイト部分と 28-2C バイト部分の値の合計値である。
	この値は、END-1GB などの HDD 末端イメージを書き込む時の指標となる。
 28-2C & 50-54 : HDD 全容量から 0-Point のアドレスを引いた値となる。
 54-58 : [00 03]-M モチーフの開始アドレスであり、[00 03]-L モチーフの長さが延長されるため、
         それに合わせて変更しなければならない。

[00 03]-L †

 増量する HDD 容量に応じて延長しなければならない。
 正確な長さを得るためには、予想よりも 5 ユニット程度長く作成し、
 その末端 10 ユニット程度のボディ部を [00] に書き換え、暫定的に書き込む。
 [00 03]-L の延長に対応して [00 03]-M/-S も各ユニットのアドレスを全て修正したのち
 [00 03]-L の後方に暫定的に書き込む。
 その際、[00 02]-2 の 54-58 バイト部分の [00 03]-M モチーフの開始アドレスを修正するのを忘れてはならない。
 その他 ([00 04/5]、END-1GB) の設定・書き込みを終え、正常にレコーダーが起動すれば HDD を取り出し
 [00 03]-L の末端を調べると [00] で消去した領域が自動的に正しい位置まで書き戻されているのが確認できる。
 正確な [00 03]-L 末端が得られれば、それに合わせて、もう一度 [00 03]-L の長さと [00 03]-M/-S、[00 02]-2 の
 アドレスを最終的に決定する。

[00 03]-M/-S †

 DV-AC82 では延長しなければならないが、その他の機種ではオリジナルと同じ長さでよいが、
 ともに [00 03]-L の延長により[00 03]-M/-S の各ユニットアドレスを全面的に修正する必要がある。

[00 04/05] †

 DV-AC82 では、END シグネチャーの位置を変更するため大幅な修正が必要となる。
 
 BD-W560 以外の機種で [65 1B 95 AE] の内容を、上記 [00 02]-1 で述べた「-60 ルール」に則って書き換えが必要。
 
 例えば、[00 02]-1 50-54 バイト部分を「00 0E 85 A0」に設定する場合、
 オリジナルの最大アドレス「00 03 9A C0」を 00 0E 85 A0 - 60 =「00 0E 85 40」に修正する。
 それ以降の値についても順次「-20」減じた値に修正する。
 * 大きい方から3番目のデータ 00 03 9A 80/00 0E 85 00 だけは最後尾に配置するので注意。
 
 オリジナル [65 1B 95 AE]					修正例
 例1 : BD-HDS65 500GB -> 2TB
 [00 02]-1 50-54 バイト部分を「00 0E 85 A0」に設定
 00 03 9B 20 - 0x60 = 00 03 9A C0			00 0E 85 A0 - 60 = 00 0E 85 40
 
 00 05 20 02 00 0C AB BF 65 1B 95 AE 1E F5 D1 02
 C9 05 99 3A 74 80 D1 A3 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 FA 00 00 00 00
 00 07 D0 00 00 00 00 00 00 00 00 1C 00 03 9A C0 ->			00 0E 85 40(1)
 00 00 00 20 00 03 9A A0 00 00 00 20 00 03 9A 60 ->	00 0E 85 20(2) 	00 0E 84 E0(4)
 00 00 00 20 00 03 9A 40 00 00 00 20 00 03 9A 20 ->	00 0E 84 C0(5) 	00 0E 84 A0(6)
 00 00 00 20 00 03 9A 00 00 00 00 20 00 03 99 E0 ->	00 0E 84 80(7)	00 0E 84 60(8)
 00 00 00 20 00 03 99 C0 00 00 00 20 00 03 99 A0 ->	00 0E 84 40(9)	00 0E 84 20(A)
 00 00 00 20 00 03 99 80 00 00 00 20 00 03 99 60 ->	00 0E 84 00(B)	00 0E 83 E0(C)
 00 00 00 20 00 03 99 40 00 00 00 20 00 03 99 20 ->	00 0E 83 C0(D)	00 0E 83 A0(E)
 00 00 00 20 00 03 99 00 00 00 00 20 00 03 98 E0 ->	00 0E 83 80(F)	00 0E 83 60(10)
 00 00 00 20 00 03 98 C0 00 00 00 20 00 03 98 A0 ->	00 0E 83 40(11)	00 0E 83 20(12)
 00 00 00 20 00 03 98 80 00 00 00 20 00 03 98 60 ->	00 0E 83 00(13)	00 0E 82 E0(14)
 00 00 00 20 00 03 98 40 00 00 00 20 00 03 98 20 ->	00 0E 82 C0(15)	00 0E 82 A0(16)
 00 00 00 20 00 03 98 00 00 00 00 20 00 03 97 E0 ->	00 0E 82 80(17)	00 0E 82 60(18)
 00 00 00 20 00 03 97 C0 00 00 00 20 00 03 97 A0 ->	00 0E 82 40(19)	00 0E 82 20(1A)
 00 00 00 20 00 03 97 80 00 00 00 20 FF FF FF FF ->	00 0E 82 00(1B)	FF FF FF FF(1C)
 00 07 CC A0 00 03 9A 80 00 00 00 20 00 00 00 00 ->	00 0E 85 00(3)*
 
 
 例2 : BD-HDW25 500GB -> 1TB
 [00 02]-1 50-54 バイト部分を「00 0E 7D E1」に設定。この場合、例外的に 0x61 を減算する。
 00 07 36 E0 - 0x60 = 00 07 36 80			00 0E 7D E1 - 0x61 = 00 0E 7D 80
 
 00 05 A0 01 00 0C 0B BF 65 1B 95 AE 1E F5 D1 81
 C9 05 6A 3A 74 82 D1 A3 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 6D 07 00 00
 00 00 07 00 00 00 00 00 00 00 00 0E 00 07 36 00 ->			00 0E 7D 00(3)
 00 00 00 40 00 07 36 40 00 00 00 40 00 07 36 80 ->	00 0E 7D 40(2)	00 0E 7D 80(1)
 00 00 00 40 FF FF FF FF 00 00 01 C0 00 00 00 40
 00 00 00 40 FF FF FF FF 00 00 01 C0 00 00 00 80
 00 00 00 40 00 00 00 C0 00 00 00 40 00 07 35 00 ->			00 0E 7C 00(7)
 00 00 00 40 00 07 35 40 00 00 00 40 00 07 35 80 ->	00 0E 7C 40(6)	00 0E 7C 80(5)
 00 00 00 40 FF FF FF FF 00 00 00 C0 00 07 35 C0 ->			00 0E 7C C0(4)
 00 00 00 40 00 07 34 00 00 00 00 40 00 00 00 00 ->	00 0E 7B 00(8)

END-1Block イメージ †

 DV-AC82/BD-HDW25 では、オリジナルデータを幾つかのパーツに分けて再配置しなければならない。
 HDD への書き込み位置は、0-Point ([00 02]-2 の 24-28 バイト部分の値に 0x1000 を乗じた値) を目印にする。
 例えば、[00 02]-2 の 24-28 バイト部分の値が「1D 18 0B BD」の場合、0-Point の HDD 絶対位置は、
 0x1D180BBD * 0x1000 = 0x1D180BBD000 (1,999,319,584,768 バイト) と計算できる。
 END-1GB イメージを HDD の正しい位置に書き込むには、ファイル内の 0-Point の位置(例えば「1C1BD000」)より
 0x1D180BBD000 - 1C1BD000 = 0x1D164A00000 (1,998,848,000,000) に書き込めばよいことがわかる。
 dd コマンドの bs/count/seek の値を決めるには、END-1GB イメージのサイズが 1.024GB とすると、
  bs=81920 に設定すると、
  count=1,024,000,000÷81920=12500、
  seek=0x1D164A00000÷81920=1,998,848,000,000÷81920=24400000 と計算されるので、
 $ sudo dd if=END-1GB.img of=/dev/diskN bs=81920 count=12500 seek=24400000
 

録画タイトルを保持したまま増量換装するには †

HDD を増量換装するなら、今まで録画してきたタイトルを持ち込みたくなるのは当然であろう。

オリジナル容量 HDD で 1分間から 5分間の短時間録画を DR または XP モードで数本実施し、
増量換装を行い、どうのようにすれば再生できるかを実験した。

その結果、ブルーレイレコーダーでは、比較的簡単に持ち込めることが判明したが、
DVD レコーダー(DV-AC82)では DR・XP モードの2種類の録画形式が存在するために、
少し手間がかかり問題が残るものの、何とか成功した。

ただ、短時間少数のサンプル実験のため、実際にはうまく再生されなかったり、
タイトルが録画リストから削除(消失)されることがあるかもしれないので参考までにとどめていただきたい。

なお、旧 HDD の録画タイトルの再生を確認後、1分間から 5分間の短時間録画を DR/XP モードで数本実施し、
古いタイトルと増量換装後に新しく録画したタイトルのいずれも再生に問題ないことを確認している。

ブルーレイレコーダー †

A. オリジナル HDD から 4Block 目イメージ (3-4GB 領域) と END-2GB/END-1GB イメージを取得しておく。

B. 増量換装用 4Block 目イメージを準備する。
  [00 01] はオリジナルを使用するが、各ブロックの 0x59-0x1C0 バイト部分を [AA AA..AA] で上書きする。
  [00 02] は増量換装用のデータを用いる。
  [00 03]-L は先頭部分をオリジナルのデータを使い、増量のため延長した部分のデータを増量換装用のデータを用いる。
  [00 03]-M/-S はオリジナルから切り出し、増量換装時のアドレスになるように修正して用いる。
  [00 04/05] はオリジナルのものを使用するが、[65 1B 95 AE]だけは増量換装用に修正した値に変更する。

C. オリジナル HDD を新しい大容量 HDD にクローンを作成する。
  PC 不要の HDD クローンスタンドを使うと便利。コピーする容量にもよるが数時間はかかる(250GB で約1時間ほど)。

D. 上記 A, B で準備した 4Block 目イメージ (3-4GB 領域) とオリジナルの END-2GB/END-1GB イメージを
  新しい大容量 HDD に書き込む。END-1GB イメージは 0-Point の位置を合わせて HDD に書き込む。
  END-2GB/END-1GB イメージは BUDA10 から 0x5FA0000 上流に存在する
  [01 00 00 00 EA 00 00 00 10 00 01 04 2E 00 00 00] 以降を書き込めばよい。
  BUDA10 を有しない BD-HDW25 では Sec0-Sec8 以降を書き込めばよい。

E. HDD をレコーダーに接続し、起動させ正常に再生できるのを確認する。

F. 新規に放送番組を短時間複数本 DR/XP モードで録画し、新旧録画タイトルのいずれも正しく再生されるのを確認する。

DVD レコーダー(DV-AC82) †

A. オリジナル HDD から 2Block 目イメージと END-2GB/END-1GB イメージを取得しておく。

B. 新しい大容量 HDD に増量換装用イメージを書き込み、レコーダーに接続・起動させ正常に起動できるのを確認する。

C. アンテナケーブルと B-CAS カードをセットし、DR モードと XP モードで2本ずつ1分間録画を実施する(計4番組)。
  正常に再生されるのを確認したのち、HDD を取り出し、2Block 目イメージを保存しておく。

D. 増量換装用 2Block 目イメージを準備する。
  [00 01] はオリジナルを使用するが、各ブロックの 0x59-0x1C0 バイト部分を [AA AA..AA] で上書きする。
  [00 02] は増量換装用に修正したデータを用いる。
  [00 03]-L/-M/-S は上記 C で取得した録画テストしたイメージのものを使用する。
  [00 04/05] はオリジナルのものを使用する。

E. 増量換装用 END-1Block イメージを準備する。
  DV-AC82 の増量換装法に記した手順で、オリジナルの END-1Block 目から各領域を切り出し、
  新規イメージファイルに上書きし作成する。
  録画済みデータには、END-1Block イメージの末端に録画情報が順次追加されていくので、
  取りこぼしがないようにデータの最後に注意し作成する。

F. オリジナル HDD を新しい大容量 HDD にクローンを作成する。
  PC 不要の HDD クローンスタンドを使うと便利。コピーする容量にもよるが数時間はかかる(250GB で約1時間ほど)。

G. 増量換装用に準備した 2Block 目イメージと END-1GB イメージを新しい大容量 HDD に書き込む。
  END-1GB イメージは 0-Point の位置を合わせて HDD に書き込む。

H. HDD をレコーダーに接続し、正常に再生できるのを確認する。
  これまでの実験から [00 01]、[00 03]-L、[00 03]-MS を調整することで、再生できるようになったが、
  詳細な原因・理由は特定できていない。

I. 新規に放送番組を短時間複数本 DR/XP モードで録画し、新旧いずれも正常に再生されるのを確認する。
  現在までのところ DR モードでの新規録画では問題がないが、XP モードで録画したタイトルを再生すると、
  再生開始後すぐにスタック(再生が停止するが、早送りでスキップできる)してしまう現象が確認されている。
  スタックする XP 録画タイトルを丸ごと削除、あるいはスタックを含む領域をシーン消去することで回避でき、
  これ以降の録画に問題はないと思われる。

この XP モードで録画できる(イメージに DVD_RTR_VMG0 を持つ)機種は、DV-AC82 DVDレコーダーと
ブルーレイディスクレコーダーの 2-5倍モードの BD-HDW25/30(2008年)は確認しているが、それ以降 2009年までの
2-7倍モード(2009年前半)、2-8.5倍モード(2009年後半)では確認できていないので不明である。
取説では 2-7倍モード(2009年前半)までが XP モードで録画できるようだ。

BD-HDW25 での録画実験から、ブルーレイディスクレコーダーと DVD レコーダーにおける XP モード録画は
まったく異なるものであることが判明した。後者のみが DVD_RTR_VMG0 に録画関連情報が記録されているが、
前者の DVD_RTR_VMG0 には何も記録されておらず、ハイビジョン画質 2-5倍と同じ録画形式であった。
名前は同じ「XP」であるが、BD/DVD レコーダーで録画形式が異なるのである。
ブルーレイディスクレコーダーでは、DVD への高速ダビングができなくなっているのはそのためであろう。

 

増量換装後の HDD トラブル解消法 †

増量換装に成功したレコーダーを運用するにあたり、様々な原因でトラブルに遭遇する。 
リモコンが効かなくなったり、画面がフリーズしたり、再起動を繰り返したり、などなど。
そんな時には、レコーダー前面のリセットボタンを先の細いもので押し電源を切ることになる。
増量換装していない本来の容量の HDD では、リセットによりある程度修復に成功するが、
増量換装後の HDD では、100%修復に失敗し起動できなくなるか、起動できたとしても
「ハードディスク準備中です。操作できません。」のメッセージが表示され、詰みの状態となる。
レコーダー側からすれば増量換装されていることにまったく気付いていないため、
本来の HDD 容量として修復するからであり、レコーダーに責任はないのである。

修復できなければただの黒い箱となってしまい、これまでつらつら書き綴ってきた意味がなくなってしまうので、
解決方法を探るべく、果敢にリセットボタンを押してみたところ、予想通り起動しなくなってしまった。

実験条件
レコーダー : DV-AC82 845GB 増量換装
録画データ : 250GB 時に HD 3本/XP 1本、845GB 時に XP 2本 の計 6本を録画済

電源ボタンを押し起動、すべての録画タイトルが再生できるのを確認。<状態0>
リセットボタンを押すと電源が切れた状態になる。<状態1>
電源ボタンを押し起動させると、
「ディスクを確認しています。完了まで10分以上かかる場合があります。」とのメッセージが
表示されたままで、10分以上経っても完了しないので、もう一度リセットボタンを押す。<状態2>
電源ボタンを押し起動させると、前回同様
「ディスクを確認しています。完了まで10分以上かかる場合があります。」とのメッセージが
表示されるが、今度は 2~3分で起動が完了する。
しかし、HDD にアクセスすると「ハードディスク準備中です。操作できません。」となる。
電源ボタンを押し「切」にする。<状態3>

各状態0〜3で [00 01]〜[00 05] のデータを取得し比較検討した。

<状態1> : リセットボタンで電源が切れた状態のイメージ
[00 01] のいずれかのブロックの 23 バイト目が [8C] であり、他の 3つのブロックで [0C]
であるはずが、4つの全ブロックで [0C] に変更されている。
[00 02]~[00 05] 顕著な変更はない。

<状態2> : 2回リセットで電源が切れた状態のイメージ
[00 01] の 4ブロックの前 2ブロックが大きく変更されている。
[00 02]~[00 03] 顕著な変更はない。
[00 04/05] では [65 1B 95 AE] と ID が [6D 1A 17 39] で始まる録画データの
オリジナル・バックアップの片方でデータが破壊されている。
 
<状態3> : 2回リセットでようやく起動できた後の電源を切った状態のイメージ
[00 01] の 4ブロックすべて大きく変更されている。
[00 02]~[00 03] 顕著な変更はない。
[00 04/05] では [65 1B 95 AE] と ID が [6D 1A 17 39] で始まる録画データの
オリジナル・バックアップの両方でデータが破壊されている。

結論から述べると、<状態1>が最も修復が容易であり、次に<状態2>、そして<状態3>になってしまうと
オリジナル・バックアップ両方でデータが破壊されているので修復不可能となる。
すなわち、リセット操作後直ちに電源プラグを抜き、HDD からデータを取得することが肝要である。
パニックに陥り何とか起動させようと何度もリセット操作を繰り返すと録画データは修復不可能となる。

<状態1>、<状態2>からの修復方法であるが、
<状態1>では、[00 01] の4ブロックすべての 23 バイト目を [0C] から [8C] に書き換えるだけで修復できるはず。

<状態2>では、破壊されたデータを復元しないといけないので、もう少し手間がかかる。
[00 01] で 23 バイト目が [8C] となっているブロックを探し、[0C] に修正する。
更にその一つ前のブロックの 23 バイト目の [0C] を [8C] に修正する。
もし、[8C] となっているブロックが第1ブロックであれば、第4ブロックを [8C] に修正する。
[00 05] では、ID に [65 1B 95 AE] と [6D 1A 17 39] を含むデータの片方が破壊されているので
正常な方からデータをコピーし移植する。

例 : 
正常なデータ 0x23903800
00 05 20 01 00 06 09 93 6D 1A 17 39 F5 28 B1 BA
47 8E 1D 3A 74 E8 D1 A3 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 08 80 00 00 ┐
00 00 00 C0 00 00 00 00 00 00 00 03 00 00 00 80 │
00 00 00 40 00 00 00 C0 00 00 00 40 00 00 01 00 │
00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 ┘

破壊されたデータ 0x23903000
00 05 60 00 00 06 09 93 6D 1A 17 39 F5 28 B1 BA
47 8E 1D 3A 74 E8 D1 A3 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 08 80 00 00 ┐
FF FF FF 40 00 00 00 00 00 00 00 01 00 00 00 00 ┘

修復したデータ 0x23903000
00 05 60 00 00 06 09 93 6D 1A 17 39 F5 28 B1 BA
47 8E 1D 3A 74 E8 D1 A3 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 08 80 00 00 ┐
00 00 00 C0 00 00 00 00 00 00 00 03 00 00 00 80 │
00 00 00 40 00 00 00 C0 00 00 00 40 00 00 01 00 │
00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 ┘

HDD から取得したイメージファイル上で上記の修正を施し、
HDD に書き戻せば正常に起動し、録画タイトルも再生できると思われる。
これできっと上手くいくはず。
幸いなことに、録画データ本体や ENDシグネチャーには書き換えが生じないので、
書き込む位置さえ間違えなければ、修復作業を何度もトライできるので安心である。

その後 BD-HDW80 を用いて、2TB-HDD 増量換装前後に短時間放送番組録画を実施し
数回リセット操作を繰り返してみたところ、延々と「ディスクを確認しています。」が
表示されるだけで正常に起動が完了しないが、幸いなことに [65 1B 95 AE] や
録画に関するデータが破壊されることはなく、上記の<状態1>に相当した。

何度もリセット操作をせずに、早めに HDD から必要なデータ回収し修復しするのが得策であろう。

増量換装後のトラブルに冷静に対処できるよう、運用を開始する前にリセット操作による
[00 01]、[65 1B 95 AE]、[6D 1A 17 39] のデータの変化を各自確認し、
修復できるようにしておくことをお薦めする。

 

END シグネチャーの CRC-32 について †

END-1Block イメージの END シグネチャーには、その先頭の長さ 0x200 あるいは 0x400 からなる
/HDD0/thmidxt などの文字が書き込まれているヘッダ領域と、それに続くボディ領域に分けられるが、
それぞれの末尾4バイトに誤り検出符号である CRC-32 の値が書き込まれている。
デジタル放送録画で用いられている CRC-32 は、CRC32_MPEG2 と呼ばれるもので、
オンライン上で計算してくれるサイトCRC Calculator (Javascript) が存在する。

ヘッダ領域では、その先頭から末尾4バイトを除いた 0x0-0x1FC/0x3FC の部分のデータを入力すれば計算してくれる。
ボディ領域では、その先頭4バイトと末尾4バイトを除いた 0x4-0x1FC/0x3FC の部分のデータを入力すれば計算してくれる。

この知識が何かの役に立つのかはわからないが、強いて挙げるとすれば、
/tnavlst シグネチャーに記録されている録画タイトルを、レコーダーを介さず直接データを書き換える際に役立つかもしれない。


Counter: 91, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-10-05 (金) 22:55:00 (17d)