第四夜 〜 HDD 換装 ー 同量換装と増量換装 〜

目次 †

 

オリジナルディスクイメージの取得 †

取り出した内蔵 HDD を SATA接続 HDD ケースに入れ PC に接続する。
レコーダーの HDD は通常のファイルシステム(フォーマット)を持たないため、
macOS では「セットしたディスクは、このコンピュータで読み取れないディスクでした。」の
警告パネルが表示されるので「無視」のボタンを押す。

注意:決して「初期化...」を選択してはいけない。
   HDD の先頭・末端領域が書き換えられてしまい、ゲームオーバーとなる。

HDD を安全に取り外すには、macOS の「ディスクユーティリティ.app」を開き、その画面の左ペインに
表示される当該 HDD を選択し、メニューの「ファイル」→「取り出す」をクリックする。

macOS のターミナルを開き dd コマンドでディスクイメージを取得するが、機種によって必要な領域が異なる。

必要な先頭領域

 機種		DV-AC82		DV-AC82 以外
 イメージ	1~2Block 目	1~3Block 目

注意:ここでの「Block」は独自の定義であり、1Block = 1.024GB に相当し
   dd コマンドで ディスクイメージを取得する時の単位である。

機種により必要な領域が異なるのは、主として辞書情報のデータ量による。
辞書情報とは録画タイトルを変更する際の文字コードの集合と思われる。
ディスクイメージの内容については後述する。

注意:以下のコマンドの /dev/rdiskN は読み込むデバイス (HDD) を指定しているが、
   その番号「N」は状況により異なるので $ diskutil list で確認する。

先頭領域イメージの取得 †

# HDD 先頭から 1Block 目 (0-1.024GB) のイメージを取得
$ sudo dd if=/dev/rdiskN of=/path/オリジナルイメージ-1.img bs=81920 count=12500

# HDD 先頭から 2Block 目 (1.024-2.048GB) のイメージを取得
$ sudo dd if=/dev/rdiskN of=/path/オリジナルイメージ-2.img bs=81920 count=12500 skip=12500

# HDD 先頭から 3Block 目 (2.048-3.072GB) のイメージを取得
$ sudo dd if=/dev/rdiskN of=/path/オリジナルイメージ-3.img bs=81920 count=12500 skip=25000

簡単な説明:詳しくは文献 9 を参照。

sudo : dd コマンドによる外付け HDD の読み書きにはルート(管理者)権限が必要。
if=  : input-file の略で読み込み元を指定。
       読み込み速度を上げるため/dev/diskNではなく/dev/rdiskNを指定している。
of=  : output-file の略で書き込み先を指定。
       保存先 (path) とファイル名 (イメージ名) は任意。
bs=  : ブロックサイズ。一度に読み出すデータ量。
       デフォルトは512であるが、512の倍数であれば大きいほど速くなるが、大き過ぎると逆に遅くなる。
count= : 読み出す bs の総数。読み出しデータ量は bs x count = 1,024,000,000 = 1.024GB
skip=  : 読み込み元 (if) で読み飛ばす (skip) カウント数。ここでは 12500 の倍数となる。

取得したディスクイメージは、7z形式などの圧縮ファイルにして保存しておくと、ファイルサイズを削減できる。
圧縮ファイルを USB メモリーや DVD/CD メディアにコピーしてバックアップしておくとよい。

注意:HDD が健康な(=データが読み取れる)状態でイメージを取得しておくことを強くお勧めする。

もし不幸にも HDD に I/O エラーが発生している場合には、dd コマンドに「conv=sync,noerror」を付けると
エラー部分を「00」で埋めて読み続けてくれる。
少しでも多くの情報を得るため、時間はかかるが bs の値を最小の 512 に指定する。
その際 HDD への負荷を抑えるために、「bs=81920 conv=sync,noerror」で全体のイメージを取得後、
I/O エラーが発生している部分のみ「bs=512 count=P skip=Q conv=sync,noerror」で再度データ取得を試みる。

例)# HDD 先頭から 1Block 目 (0-1.024GB) に I/O エラーが発生した場合
$ sudo dd if=/dev/rdiskN of=/path/オリジナルイメージ-1.img bs=81920 count=12500 conv=sync,noerror
dd: /dev/rdisk1: Input/output error
dd: /dev/rdisk1: Input/output error
5813+0 records in
5813+0 records out
476200960 bytes transferred in 43.285464 secs (11001406 bytes/sec)
dd: /dev/rdisk1: Input/output error
12500+0 records in
12500+0 records out
1024000000 bytes transferred in 67.278026 secs (15220423 bytes/sec)

この場合、476200960 バイト(81920 (bs) x 5813 (records); records は count と同じ意味)まで読み出せているが、
その後の 1 count(476200960-476282880 バイト)に I/O エラーが発生し読み出しに失敗していることがわかる。

この読み出せなかった 476200960-476282880 バイト部分だけをできる限り読み出すために、
bs=512 conv=sync,noerror で細かく設定する。

bs=512 にする場合、count=P、skip=Q の値は
 P = 81920 (bs) x 1 (count) / 512 (bs) = 160 (count)
 Q = 476200960 (byte) / 512(bs) = 930080 (count)
と計算されるので、

$ sudo dd if=/dev/rdiskN of=/path/NoError.img bs=512 count=160 skip=930080 conv=sync,noerror

で読み出すことができる。

得られたイメージ NoError?.img をバイナリエディタで開き、上記コマンドの後に表示される
メッセージをもとに I/O エラーで読み出せなかった部分を確認し、
bs=81920 で取得したイメージの該当する領域に上書きする。

I/O エラーが発生した HDD から(強引に)読み出したデータは、
必ずしも正しいものとは限らないことに留意する必要がある。
I/O エラーが頻発するような重度障害を負った HDD から読み出したデータに、
まったく関係のない他領域のデータが混入していたこともあった。

I/O エラーの発生した部分が、レコーダーの機能にとって重要なデータ領域でなければ
「00」のまま用いることができるが、レコーダーが起動しないなどの致命的な問題が
起こる場合、あるいは HDD 障害が深刻で PC が認識(アクセス)できない場合には、
残念ながら諦めるしかない。

 

HDD 換装ー同量換装と増量換装の準備 †

HDD 換装予定の新しい HDD(AV コマンド対応)を準備する。

新しい HDD の準備 †

新しい HDD の先頭・末端 10GB 領域に「00」を書き込み既存のデータを消去しておく。

# 先頭 10GB 領域のゼロ消去
$ sudo dd if=/dev/zero of=/dev/rdiskN bs=81920 count=125000

# 末端 10GB 領域のゼロ消去
$ sudo dd if=/dev/zero of=/dev/rdiskN bs=81920 count=125000 seek=X

HDD容量	実容量(バイト)	   最終Block	seek 値 [End-10Block]
250GB	  250,059,350,016     244	 2925000
320GB	  320,072,933,376     312	 2925000
500GB	  500,107,862,016     488	 5975000
1TB	1,000,204,886,016     976	12075000
2TB	2,000,398,934,016   1,953	24287500
3TB	3,000,592,982,016   2,930	36500000

X (seek 値) は、(最終Block - 10) x 12500 で計算される。

注意:換装予定の HDD がゼロ消去されていることが確認できていれば、このステップは省略できる。
   使用済みの HDD の場合、両端をゼロ消去しておかないと、
   レコーダーでの初期化後でも以前書き込まれていたデータが残ってしまう可能性があるので、
   必ず両端領域をゼロ消去しておく。

オリジナルクリーンディスクイメージの書き込み †

上記「オリジナルディスクイメージの取得」で得られたイメージを換装予定の HDD に dd コマンドを用いて書き込む。

DV-AC82
オリジナルの内蔵 HDD から取得した 1Block 目 (0-1.024GB) 全部と
2Block 目 (1.024-2.048GB) の 0xE768000 までを新しい HDD の先頭領域に書き込む。

# DV-AC82 1Block 目イメージを HDD の 1Block 目に書き込む
$ sudo dd if=/path/オリジナルイメージ-1.img of=/dev/rdiskN bs=81920 count=12500

# DV-AC82 2Block 目イメージの 0xE768000 までを HDD の 2Block 目 0xE768000 までに書き込む
$ sudo dd if=/path/オリジナルイメージ-2.img of=/dev/rdiskN bs=81920 count=2962 seek=12500

ディスクイメージの一部領域のみを書き込むには、「count=」と「skip=」の値で設定する。

例)# DV-AC82 2Block 目イメージの 0xE768000 までを HDD の 2Block 目 0xE768000 までに書き込む
すなわち、DV-AC82 2Block 目イメージの先頭から 0xE768000 までのデータを
HDD の 2Block 目の先頭から 0xE768000 の領域に書き込む場合。

書き込み元のファイル (イメージ-2.img) 内の位置を、16進数表記・10進数表記で書くと、

          16進数表記	10進数表記
開始位置: 0x0		0
終了位置: 0xE768000	242,647,040

書き込み先 (ここでは HDD) の位置を、16進数表記・10進数表記で書くと、
HDD の 2Block 目の先頭から書き込みを開始するので、
開始位置と終了位置は、1Block 分(0x3D090000, 1,024,000,000)加えなければならない。

          16進数表記	10進数表記
開始位置: 0x3D090000	1,024,000,000
終了位置: 0x4B7F8000	1,266,647,040

先ず、bs= の値を決めなければならないが、それには、書き込み元・書き込み先の開始位置・終了位置の10進数表記の4つの値
0、242,647,040、1,024,000,000、1,266,647,040 の最大公約数を調べる。(1番目の 0 は除外する)

カシオのウェブサイト で計算できる。正確には、最大公約数は 163840 となるが、ここではこれまで用いてきた 81920 を採用する。
もちろん 163840 を用いてもよい。

bs=81920 として積の形で表示すると、

書き込み元 開始位置           0 = 81920 x     0 (skip) ┐
                                                       ├ (count)
書き込み元 終了位置   242647040 = 81920 x  2962        ┘
書き込み先 開始位置  1024000000 = 81920 x 12500 (seek) ┐
                                                       ├ (count)
書き込み先 終了位置  1266647040 = 81920 x 15462        ┘

skip の値: 書き込み元データの読み飛ばす(スキップ)する範囲
 第1行目の右辺第2項「0」、すなわち、書き込み元の開始位置を bs の値で割った商である。

count の値: 書き込みデータ量
 第2行目の右辺第2項から第1行目の右辺第2項の値を引いた「2962」となる。
 これは、書き込み先の第4行目の右辺第2項から第3行目の右辺第2項の値を引いた「2962」と一致する。
 書き込むデータと書き込まれるデータのサイズが同じになるのは当然で、一致しなければ計算が間違っている。

seek の値: 書き込み先の書き込み開始位置
 第3行目の右辺第2項「12500」、すなわち、書き込み先の開始位置を bs の値で割った商である。

以上の計算から、

$ sudo dd if=/path/イメージ-2.img of=/dev/rdiskN bs=81920 count=2962 seek=12500

と bs/count/seek の値を指定すればよいことになる。(skip=0 は省略できる)

DV-AC82 以外
オリジナルの内蔵 HDD から取得した 1Block 目から 3Block 目 (0-3.072GB) までを新しい HDD の先頭領域に書き込む。

# 1Block 目イメージを (0-1.024GB) に書き込む
$ sudo dd if=/path/オリジナルイメージ-1.img of=/dev/rdiskN bs=81920 count=12500

# 2Block 目イメージを (1.024-2.048GB) に書き込む
$ sudo dd if=/path/オリジナルイメージ-2.img of=/dev/rdiskN bs=81920 count=12500 seek=12500

# 3Block 目イメージを (2.048-3.072GB) に書き込む
$ sudo dd if=/path/オリジナルイメージ-3.img of=/dev/rdiskN bs=81920 count=12500 seek=25000

換装 HDD の ID 登録と初期化 †

イメージを書き込んだ新しい HDD をレコーダーに接続し、赤外線リモコンで HDD-ID を一致させたのち、HDD を初期化する。

A. レコーダーに新しい HDD を接続する。
  レコーダーはテレビと HDMI ケーブルなどで映像を出力できるように準備しておく。
  アンテナ線・BCAS カードの接続・挿入は不要。電源ケーブルはまだ抜いておく。

B. テレビの入力切替をレコーダーの HDMI 入力に合わせておく。

C. 電源プラグをコンセントに差し込む。

DV-AC82
電源ランプが赤く点滅し、約30秒後に点灯に移行し背面ファンが停止する。
レコーダー本体またはレコーダー付属リモコンの電源ボタンを押し、レコーダーを起動させる。
テレビ画面中央に

   ”ハードディスクの初期化に失敗しています。
    もう一度ハードディスクを初期化してください。”

のメッセージが表示されるので、リモコンの「戻る」ボタンを押し表示を消すと、

   ”     ディスクを確認しています。
     完了まで10分以上かかる場合があります。”

が表示される。2〜3分待つと今度は、

   ”ハードディスク更新中です。
     しばらくおまちください。”

が表示されるので、レコーダー本体前面の HDD ランプが白く点灯するまで待つ。

   ”ハードディスクの初期化に失敗しています。
    もう一度ハードディスクを初期化してください。”

のメッセージが表示される。

BD-HDW25/30
電源ランプが赤く点滅し、しばらく(3-5分後)すると、テレビ画面に

     ”ハードディスクの初期化に失敗しています。
       もう一度ハードディスクを初期化してください。”

のメッセージが表示される。レコーダー本体またはレコーダー付属リモコンの電源ボタンを押し、レコーダーを起動させる。
電源ボタンで起動できなければレコーダー本体前面にあるリセットボタンを細いピンで押しリセットし、
電源ランプが点滅から点灯に移行し背面ファンが停止してから、もう一度電源ボタンを押し起動させる。

BD-HDS63/65, BD-HDW70/75/80, BD-W560
レコーダー本体の液晶に「WAIT」の文字が点滅する。
しばらくすると「OFF」の文字が表示され、背面ファンが停止する。電源ボタンを押し起動させる。
「WAIT」の文字が点滅が10分間以上続いたり、背面ファンが停止しない場合には、
レコーダー本体前面にあるリセットボタンを細いピンで押しリセットし、
電源ランプが点滅から点灯に移行し背面ファンが停止してから、もう一度電源ボタンを押し起動させる。

これ以降各機種共通

レコーダーが起動すると、テレビ画面に

  ”ハードディスクにエラーが発生しましたので
     一部の機能がご利用できません
   再度電源を入れ直した後も発生する場合は
    お客様ご相談窓口までご連絡ください。”

が表示される。レコーダー本体前面の HDD ランプが白く点灯するまで待つ。

D. メンテナンスモードから HDD-ID を一致させる。

リモコン「戻る」ボタンで上記のメッセージを消し、
「スタートメニュー」→「各種設定」→「デジタル設定」→「システム動作テスト」の順に辿り、
「システム動作テスト」の画面を出す。

ここで PC に USB 接続した赤外線リモコンをレコーダー本体前面にある赤外線受光部に近づけ、
PC のターミナル(端末)から

$ /path/BtoIrRemoconMac C1AA5A8F30F501

を入力しリターンキーを押すとテレビ画面に「メイン検査メニュー」が表示される。もし表示できなければ、
表示されるまで何度も上記コマンドを実行する。

「メイン検査メニュー」が表示されれば、以下の操作はレコーダー付属リモコンで行う。
画面表示の項目移動には、リモコンのカーソル(決定ボタンの周囲のリング上の上下左右三角マーク)を用いる。

「メイン検査メニュー」の「HDDID」の項目がひときわ目立つ赤色背景で「不一致」となっている。
最下段の「出荷設定(SHIP)」を選びリモコンの「決定」ボタンを押すと、
その右側の欄が赤くなり「HDD」となる。または、既に水色背景で「ON」となっている場合もある。

リモコンの「赤」ボタン (エージングへ) を押し「PVR検査メニュー」を表示させる。
リモコンで「HDD-ID登録」の項目に移動し「ON」を押すと「不一致」から「済」に変更される。
(エージングは実行する必要はないように思われる。)
リモコンの「赤」ボタン で「メイン検査メニュー」に戻ると、「HDDID」の項目が白バックで「済」になる。
リモコンの「緑」ボタン (終了) で画面を閉じる。

DV-AC82 の場合のみ、リモコンの「スタートメニュー」ボタンを押し、
「設定」→「初期化・更新」→「ハードディスク初期化」から「する」を選択し、
確認画面が表示されるので、迷わず「はい」を選択、ハードディスクの初期化を実行する。
初期化が完了すると、自動的に電源がオフとなる。

それ以外の機種ではハードディスクの初期化の必要はなく、リモコンの電源ボタンを押し、電源を切る。
この時、即座に背面ファンが停止する。

もし次回起動時に

   ”ハードディスクの初期化に失敗しています。
    もう一度ハードディスクを初期化してください。”

のメッセージが表示されれば、ハードディスクの初期化を実行する。

E. 正常に起動するかを確認する。

もう一度電源ボタンを押し起動させる。

DV-AC82 の場合のみ、

   ”ディスクを確認しています。完了まで10分以上かかる場合があります。”
   ”ハードディスク更新中です。しばらくおまちください。”

のメッセージが順に表示される。根気よく待つと、ようやく HDD ランプが白く点灯に変わり起動が完了する。

その他の機種では、

   ”電源プラグの抜き差しやリセット操作などによりディスクを確認しています。
     完了まで10分以上かかる場合があります。”

あるいは、

   ”ハードディスク更新中です。しばらくおまちください。”

のメッセージが表示される。根気よく待つと、ようやく HDD ランプが白く点灯に変わり起動が完了する。

起動が完了すれば、リモコンの「録画リスト」ボタンあるいは「スタートメニュー/ホーム」ボタンを押し、
「再生・編集」を選択し、録画リスト画面が表示されると HDD が正常に認識・動作している。

もしも、

   ”ハードディスク準備中です。操作できません。”
   ”辞書情報の読み込みに失敗しました。”
   ”ハードディスクの更新に失敗しました。”

などのメッセージが表示されるようであれば、HDD に書き込んだイメージ自体か書き込み方に問題がある
可能性が高いので、もう一度確認し実行する。

クリーンなディスクイメージの取得 †

クリーンなディスクイメージとは、初期状態の HDD 先頭および末端領域のデータのことを意味する。

上記「オリジナルディスクイメージの取得」で得られたイメージには、使い込まれるうちに雑多なデータが書き込まれたり、
何らかの修復が施されデータ構造が乱れている可能性が高いため、HDD 換装時に思わぬ障害を生じかねない。

HDD 増量換装をスムーズに行うため、クリーンなディスクイメージが必要となる。

初期化した HDD をレコーダーから取り出し、SATA接続 HDD ケースに入れ PC に接続する。

macOS のターミナルを開き dd コマンドでディスクイメージを取得するが、機種によって必要な領域が異なる。

必要な先頭領域
機種		DV-AC82		DV-AC82 以外
イメージ		第 2Block	第 4Block

必要な末端領域
機種		BD-W560 以外	 	BD-W560
イメージ		End-2, End-1Block	End-4, End-3Block

注意:以下のコマンドの /dev/rdiskN は読み込むデバイス (HDD) を指定しているが、
   その番号「N」は状況により異なるので $ diskutil list で確認する。

先頭領域イメージの取得

# HDD 先頭から 2Block 目 (1.024-2.048GB) のイメージを取得
$ sudo dd if=/dev/rdiskN of=/path/クリーンイメージ-2.img bs=81920 count=12500 skip=12500

# HDD 先頭から 4Block 目 (3.072-4.096GB) のイメージを取得
$ sudo dd if=/dev/rdiskN of=/path/クリーンイメージ-4.img bs=81920 count=12500 skip=37500
 

末端領域イメージの取得

  • BD-W560 以外
# HDD 末端から -2Block 目のイメージを取得
$ sudo dd if=/dev/rdiskN of=/path/クリーンイメージ-End-2.img bs=81920 count=12500 skip=[End-2Block]

# HDD 末端から -1Block 目のイメージを取得
$ sudo dd if=/dev/rdiskN of=/path/クリーンイメージ-End-1.img bs=81920 count=12500 skip=[End-1Block]

 skip の値は、以下のリストを参照。

HDD容量	実容量(バイト)	   最終Block	seek/skip 値 [End-2Block]/[End-1Block]
250GB	  250,059,350,016     244	 3025000/ 3037500
320GB	  320,072,933,376     312	 3875000/ 3887500
500GB	  500,107,862,016     488	 6075000/ 6087500
1TB	1,000,204,886,016     976	12175000/12187500
2TB	2,000,398,934,016   1,953	24387500/24400000

実容量 (バイト): 総セクタ数 (1セクタ=512) x 512
最終Block: 実容量 ÷ 1,024,000,000 の商
  • BD-W560
# HDD 末端から -4Block 目のイメージを取得
$ sudo dd if=/dev/rdiskN of=/path/クリーンイメージ-End-4.img bs=81920 count=12500 skip=[End-4Block]

# HDD 末端から -3Block 目のイメージを取得
$ sudo dd if=/dev/rdiskN of=/path/クリーンイメージ名-End-3.img bs=81920 count=12500 skip=[End-3Block]

 skip の値は、以下のリストを参照。

HDD容量	実容量(バイト)	   最終Block	seek/skip 値 [End-4Block]/[End-3Block]
500GB	  500,107,862,016     488	 6050000/ 6062500
1TB	1,000,204,886,016     976	12150000/12162500
2TB	2,000,398,934,016   1,953	24362500/24375000
3TB	3,000,592,982,016   2,930	36575000/36587500

実容量 (バイト): 総セクタ数 (1セクタ=512) x 512
最終Block: 実容量 ÷ 1,024,000,000 の商

取得したディスクイメージは、7z形式などの圧縮ファイルにして保存しておくと、ファイルサイズを削減できる。
圧縮ファイルを USB メモリーや DVD/CD メディアにコピーしてバックアップしておくとよい。

 

動作確認 †

ここまでの作業で、同容量の HDD で置換する同量換装は完了する。

放送番組を問題なく録画できるか確認しておく。
レコーダー本体にアンテナケーブルを接続、B-CAS カードを挿入し、テレビ放送を受信できるよう設定する。

短時間でいいので HDD に録画し、再生可能か、録画残時間は録画時間に応じて減っているか、
録画タイトルのチャプター分割・結合・シーン消去などの編集作業に問題ないか、
タイトル名が変更できるか、そして最後にタイトルを消去できるかを確認する。

すべて問題なければ、レコーダー本体から電源・アンテナ・HDMI ケーブルを取り外した後、
HDD をマウンターに固定ネジで組み付け、マウンターを本体に固定し、上蓋を元の戻しネジ止めする。

好みの設置場所に移動させ、ケーブル類を接続し最終的な起動確認をして完了となる。

より大きな容量の HDD で置換する増量換装の場合は、次に進む。


Counter: 684, today: 8, yesterday: 0

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