今何をすべきか

今何をすべきか

いくつかの背景

私の友人は、オフィスでそれぞれ2つの1TBディスクを持つNAS Buffalo-LS-WVLを使用しています。これら2つのディスクはraid 1としてマウントされているように見えますが、読み取ることができますが、そうでない可能性があります。 NASに非常に遅い問題が発生したため、突然動作が停止しました。私は彼のデータを救うように頼んだ。どちらのディスクもまったく同じパーティションを持っています。 1つの物理パーティションと6つの論理パーティションがあり、データは6番目のパーティションにあります(0.95TBのうち約80GB)。

ディスクに/dev/sddハードウェアの問題(遅い、セクタ読み取りエラーなど)が発生したようですが、/ dev / sdeは物理的に良好なディスクです。

目標は、NASに含まれるデータを抽出することです。すべてではなくても、抽出できるデータが多いほど良いです。このデータは私の友人の会社にとって非常に重要です。

私はすでに試しました。

  1. 最初の試み:ディスクを別々に取り付ける

    これは最初の試みであり、正常に動作することを望んで各ディスクをインポートし、個別にマウントしようとした後に次のメッセージを受け取りました。

    root@ubuntu:~# mount /dev/sdd6 /mnt/n
    
    -or-
    
    root@ubuntu:~# mount /dev/sde6 /mnt/n
    

    どちらも私に同じメッセージを与えます:

    mount: unknown filesystem type 'linux_raid_member'
    
  2. 2番目の試み:ディスクアレイRAID 1を作成してマウントしてみます。

    さて、個別にインストールできない場合は、ディスクアレイを作成する必要があります。 (最も論理的な)元の構成がraid 1で、一度に1つのディスクを使用しているとします。

    root@ubuntu:~# mdadm --create --run --level=1 --raid-devices=2 \
                      /dev/md/md-singolo-e6--create-missing /dev/sde6 missing
    

    以下を提供します。

    mdadm: /dev/sde6 appears to be part of a raid array:    
    level=raid0    
    devices=2    
    ctime=Mon Sep 26 10:23:48 2011    
    mdadm: Note: this array has metadata at the start and may not be suitable as a boot device.  If you plan to store '/boot' on this device please ensure that    your boot-loader understands md/v1.x metadata, or use    --metadata=0.90    
    mdadm: Defaulting to version 1.2 metadata    
    mdadm: array /dev/md/md-singolo-e6--create-missing started.
    

    だから、初期のレイドでは、モード1ではなくモード0に進むようです。ディスクにセクタの問題があるため、新しいものは良くありません。

    とにかく、新しく作成されたRAID1アレイをマウントしようとしています(わからないことを知っていますが)。

    root@ubuntu:~# mkdir /mnt/md-singolo-e6--create-missing    
    root@ubuntu:~# mount /dev/md/md-singolo-e6--create-missing \
                     /mnt/md-singolo-a6--create-missing/
    

    与えられた:

    mount: /dev/md127: can't read superblock
    

    他のディスクもまったく同じ結果を示した。

  3. 3番目の試み:ディスクアレイの作成ディスクアレイ0そしてインストールしてみてください

    さて、今Raid0と言ったので始めましょう。

    root@ubuntu:~# mdadm --create --run --level=0 --raid-devices=2 \
                       /dev/md/md001hw /dev/sdd6 /dev/sde6 
    

    以下を提供します。

    mdadm: /dev/sdd6 appears to be part of a raid array:
    level=raid1
    devices=2
    ctime=Mon Oct 14 16:38:33 2013
    mdadm: /dev/sde6 appears to be part of a raid array:
    level=raid1
    devices=2
    ctime=Mon Oct 14 17:01:01 2013
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md/md001hw started.
    

    さて、作った後にインストールしてみましょう。

    root@ubuntu:~# mount /dev/md/md001hw /mnt/n
    
    mount: you must specify the filesystem type
    

    このとき、指定されたext2、3、4にはすべて-tエラーがあります。

  4. 4番目の試み:ディスクイメージの作成と使用

    さて、ディスクに問題があるため、ブロック読み取りエラー(エラー)がある場合に備えて、データパーティション(dd)のコピーを作成して0(同期)で埋めることをお勧めします。だから私は2つの画像を作成しました。

    これは良好なディスク(4MBブロック、より高速)で機能します。

    root@ubuntu:~# dd bs=4M if=/dev/sde6 of=/media/pietro/4TBexthdd/sde6-bs4M-noerror-sync.img conv=noerror,sync
    

    これは問題のディスクで動作します(最小ブロックサイズ、より安全です)。

    root@ubuntu:~# dd if=/dev/sde6 of=/media/pietro/4TBexthdd/sdd6-noerror-sync.img conv=noerror,sync
    

    両方のイメージを取得した後、上記のコマンドを使用してRAID 0として使用しようとしました。やるべきことはありません。私が得た答えは、画像が「ブロックデバイスではなく」配列を生成しないことです。

  5. 5回目の試み:一部のデータをバイト単位で保存

    さて、正しくインストールされない場合は、ヘッダー、フッター情報とともにバイト単位で読み込んでデータを抽出してみましょう。使った*最も重要なこと*各ディスクでこのタスクを実行します。ディスク1の場合:

    root@ubuntu:~# foremost -i /dev/sde6 -o /media/pietro/4TBexthdd/foremost_da_sde6/
    

    ファイル拡張子はありますが、内容はまったくないサブフォルダを作成します。ディスク2(損傷したディスク)の場合:

    root@ubuntu:~# foremost -i /dev/sdd6 -o /media/pietro/4TBexthdd/foremost_da_sdd6_disco2/
    

    サブフォルダ構造はほとんど生成されません。

    RAID 0アレイで試してみると、結果は同じです。

    root@ubuntu:~# foremost -i /dev/md/md001hw -o /media/pietro/4TBexthdd/foremost_da_raid_hw/
    

    サブフォルダ構造も作成されません。

助けが必要です/質問があります

  • 最初で最も重要な質問は次のとおりです。データを保存するには?私が試していないヒントがある人はいますか?
  • 私がやっていることと異なることを提案できる人はいますか?

その他の問題:

  • 私はこれが初めてですmdadm。私はすべてをうまくやっていますか?
  • 2011年9月26日に作成された元のアレイは、実際にRaid 0モードで作成されましたか?
  • パーティションイメージを使用してアレイを作成できないのはなぜですか?

付録

dmesg失敗したディスク()から読み取ったときの出力は次のとおりです/dev/sdd

[  958.802966] sd 8:0:0:0: [sdd] Unhandled sense code
[  958.802976] sd 8:0:0:0: [sdd]  
[  958.802980] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[  958.802984] sd 8:0:0:0: [sdd]  
[  958.802987] Sense Key : Medium Error [current] 
[  958.802994] sd 8:0:0:0: [sdd]  
[  958.802999] Add. Sense: Unrecovered read error
[  958.803003] sd 8:0:0:0: [sdd] CDB: 
[  958.803006] Read(10): 28 00 00 d5 c7 e0 00 00 f0 00
[  958.803021] end_request: critical target error, dev sdd, sector 14010336
[  958.803028] quiet_error: 36 callbacks suppressed
[  958.803032] Buffer I/O error on device sdd, logical block 1751292
[  958.803043] Buffer I/O error on device sdd, logical block 1751293
[  958.803048] Buffer I/O error on device sdd, logical block 1751294
[  958.803052] Buffer I/O error on device sdd, logical block 1751295
[  958.803057] Buffer I/O error on device sdd, logical block 1751296
[  958.803061] Buffer I/O error on device sdd, logical block 1751297
[  958.803065] Buffer I/O error on device sdd, logical block 1751298
[  958.803069] Buffer I/O error on device sdd, logical block 1751299
[  958.803074] Buffer I/O error on device sdd, logical block 1751300
[  958.803078] Buffer I/O error on device sdd, logical block 1751301
[  961.621228] sd 8:0:0:0: [sdd] Unhandled sense code
[  961.621236] sd 8:0:0:0: [sdd]  
[  961.621238] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[  961.621241] sd 8:0:0:0: [sdd]  
[  961.621243] Sense Key : Medium Error [current] 
[  961.621248] sd 8:0:0:0: [sdd]  
[  961.621251] Add. Sense: Unrecovered read error
[  961.621254] sd 8:0:0:0: [sdd] CDB: 
[  961.621255] Read(10): 28 00 00 d5 c8 d0 00 00 10 00
[  961.621266] end_request: critical target error, dev sdd, sector 14010576
[  964.791077] sd 8:0:0:0: [sdd] Unhandled sense code
[  964.791084] sd 8:0:0:0: [sdd]  
[  964.791087] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[  964.791090] sd 8:0:0:0: [sdd]  
[  964.791092] Sense Key : Medium Error [current] 
[  964.791096] sd 8:0:0:0: [sdd]  
[  964.791099] Add. Sense: Unrecovered read error
[  964.791102] sd 8:0:0:0: [sdd] CDB: 
[  964.791104] Read(10): 28 00 00 d5 c8 00 00 00 08 00
[  964.791114] end_request: critical target error, dev sdd, sector 14010368
[  964.791119] quiet_error: 22 callbacks suppressed
[  964.791122] Buffer I/O error on device sdd, logical block 1751296

答え1

悪い知らせを伝える人になるのは嫌だが…

Q:私は初めてmdadmを使います。すべてがうまくいっていますか?

答え:いいえ。実際、あなたは可能な限り破壊的な方法でほぼすべてのことをしました。データを読み取ることができる配列--createメタデータを使用する代わりに、--assemble(少なくともディスクがデータを読み取ることができる程度まで)配列メタデータを削除することに慣れています。これにより、重要なメタデータ(特にディスク順序、データオフセット、およびブロックサイズ)が失われます。

また、--create配列メタデータが重要なファイルシステム構造の上にスクロールされている可能性があります。

最後に、(3)段階で、mdadmが両方のディスクのRAID1について文句を言うことを確認した。両方のディスクで(2)を個別に試してみたので、これが起こることを願っています。 RAID1がディスク同期を開始しないことを心から願っています(たとえば、両方のディスクを同じRAID1アレイに追加する場合)。

今何をすべきか

いよいよドライブイメージを作ったようです。あなたはこれをしなければなりません。最初、少なくとも基本以上を試す前に--assemble。しかし、とにかく、

  • 不良ドライブの画像にほとんど/すべてのセクタがない場合は、専門的なデータ復旧が必要かどうかを確認してください。ファイル(およびファイルシステムメタデータ)はRAID0のドライブに分割されているため、両方のドライブを同時に復元する必要があります。プロフェッショナルなリカバリでドライブを読むこともできます。

  • 一部のセクターを除いて、ビデオがほとんど正常な場合は続行してください。

イメージファイルのコピーを作成します。イメージファイルのコピーのみが処理されます。これらのコピーを複数回破棄することができるので、最初からやり直すことができる必要があるという点は、いくら強調しても過度ではありません。特にディスクの1つにエラーが発生したため、ディスクを再イメージ化したくありません。

他の質問の1つに答えるには:

Q:パーティションミラーリングを使用してアレイを作成できないのはなぜですか?

A:イメージファイルの配列を組み合わせ(または作成)するには、ループバックデバイスを使用する必要があります。を使用してループバックデバイスに画像を接続できますlosetup。マンページを読んでください。しかし、これは似ていますlosetup --show -f /path/to/COPY-of-image。これでmdadm、ループデバイス(たとえば/dev/loop0)で使用できるようになります。

元の配列レイアウトの決定

元の配列を作成するために使用されたすべてのmdadmオプションを見つける必要があります(以前はそのメタデータを削除したため--create)。その後、--createこのオプションを使用して両方のループバックデバイスで実行できます。メタデータバージョン(-e)、RAIDレベル(-l、0のように見える)、ブロックサイズ(-c)、デバイス数(-n、2でなければならない)、およびデバイスの正確な順序を特定する必要があります。

最も簡単な方法は、2つの新しいディスクをインポートしてNASに挿入し、NASにその上に新しいアレイを作成させることです。最初に使用したのと同じNASファームウェアバージョンを使用するのが最善です。 IOW、初期設定を繰り返します。その後、ディスクを取り出し、mdadm -Eメンバーの1つに使用します。これはわずかに異なるRAID10アレイの例です。必要な内容を強調するために、いくつかの行を省略しました。

        Version : 1.0                 # -e
     Raid Level : raid10              # -l
   Raid Devices : 4                   # -n

     Chunk Size : 512K                # -c

   Device Role : Active device 0                         # gets you the device order
   Array State : AAAA ('A' == active, '.' == missing)

注:ここではext2/3/4を使用しているとします。それ以外の場合は、NASが実際に使用するファイルシステムに適したユーティリティを使用してください。

(ループバックデバイスで)次のオプションを使用して作成してみてください。e2fsck -nそれでも彼を知っていることを確認してください。それ以外の場合は、アレイを停止し、別の順序でデバイスを使用して再作成します。もう一度やり直してくださいe2fsck -n

両方が機能しない場合は、正しい順序であると思われる順序に戻ってスーパーブロックをバックアップする必要があります。マンページでは、e2fsck使用する数字がほぼ確実に4Kブロックサイズであるかどうかを教えてくれます。バックアップスーパーブロックのいずれも機能しない場合は、アレイを停止して別のディスクシーケンスを試してください。それでも問題が解決しない場合は、間違った選択をした可能性があります--create。画像の新しいコピーから始めて、いくつかの他のオプションを試してみてください。まず、別のメタデータバージョンを試してみましょう。

e2fsckを実行した後、ファイルシステムの破損の重大度を確認してください。完全に削除された場合、チャンクサイズが間違っていることを意味する可能性があります(より多くの試みのために配列を停止して再生成します)。

データをコピーします。

e2fsckにファイルシステムを回復させることをお勧めします。これによりファイルシステムが破損する危険がありますが、これがコピーを処理する理由です!その後、インストールしてデータをコピーできます。一部のデータが破損する可能性があり、破損が隠れる可能性があることに注意してください(たとえば、ドキュメントのページがNULLに置き換えられている可能性があります)。

NASから元のパラメータを取得できません。

もしそうなら、あなたは困っています。他のオプションは、最終的に機能するまで推測するか、16進エディタを使用して理解できるようにディスク形式を理解することです。この問題を解決するのに役立つ1つまたは2つのユーティリティがあります。

または、データ復旧会社を雇う。

関連情報