ふるた技工所(てっこうしょ)

ふるた技工所(てっこうしょ)

PR

キーワードサーチ

▼キーワード検索

プロフィール

Aちゃん22

Aちゃん22

フリーページ

2017.03.26
XML
カテゴリ: ソフト開発日誌
bad block を含む VMDK ファイルを dd でコピーすることにした。dd に conv=noerror を付けると不良ブロックは「無かったもの」として飛ばされる。つまり、dd の of= に指定したファイルは飛ばしたブロック数分だけ短くなる。都合が悪い。

不良ブロックで dd が終了する度に seek=, skip= を増加させて、手打ちで dd を何回も使いながら、VMDK ファイルのコピーは完了した。コピーできないブロックは 0x00 の連続パターン (厳密には hole) としてコピーする。コピー後の VMDK ファイルを仮想マシンで fsck した結果、エラー無し。2, 3 のファイルはデータ欠損しているはず。

今後の対応も考えて dd を使って不良ブロックは 0x00 パターン (hole) としてコピーする bash スクリプトを書く 。スクリプトを最も簡単に呼び出すコマンドラインは次の通り。

$ ./dd-error-skip.sh if= file-contains-bad-blocks of= copy-to-file

実在の不良ブロックを含むファイルをテストできる機会はそんなに無い。デバックができる良い機会だ。 不良ブロックを 0x00 データとしてコピーしたログを確認する 。良く動いてる。

最近のハードディスクの構造、ファイルシステムのアロケーションユニットの傾向を踏まえて、デフォルトのブロックサイズは 4096 バイトとした。






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2017.03.27 00:25:24
コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

カレンダー

サイド自由欄

コメント新着


© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: