チェックサムエラーのため、mdadm はマウントされません

チェックサムエラーのため、mdadm はマウントされません

私は 1TB ディスク 4 台に Ubuntu raid5 をインストールしていますが、ダーティ シャットダウンや電源の問題は発生していません。ブートディスクは 5 番目のディスクで、mdadm 上にはありません。また、ブートディスクには XP もインストールしていますが、これは今日起動したばかりです。XP は mdadm をマウントできないか、ディスクにアクセスできない、またはそう思っていました。

XP を終了してから、Ubuntu が起動しなくなりました。おそらく、待機後に /dev/md0 をマウントできないため、fstab がブロックしているのでしょう。これで、元の Ubuntu インストールにアクセスできなくなりました。

そこで、RAID メンバーをすべて削除して外部ディスク ベイに配置し、MacBook で Ubuntu を起動してリカバリを実行しました。

/dev/sdh:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 05143452:9d98ca6b:c59a91b5:fda8b846
           Name : vikas-VirtualBox:0
  Creation Time : Sat Dec 31 17:31:47 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 1953263024 (931.39 GiB 1000.07 GB)
     Array Size : 2929889280 (2794.16 GiB 3000.21 GB)
  Used Dev Size : 1953259520 (931.39 GiB 1000.07 GB)
    Data Offset : 259072 sectors
   Super Offset : 8 sectors
   Unused Space : before=258984 sectors, after=6576 sectors
          State : clean
    Device UUID : b0cc00bc:b20c2671:1eb062bc:28eb229b

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Aug 11 17:08:49 2017
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 846ac784 - correct
         Events : 18840

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
===============================
/dev/sdf1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 05143452:9d98ca6b:c59a91b5:fda8b846
           Name : vikas-VirtualBox:0
  Creation Time : Sat Dec 31 17:31:47 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 1953259520 (931.39 GiB 1000.07 GB)
     Array Size : 2929889280 (2794.16 GiB 3000.21 GB)
    Data Offset : 259072 sectors
   Super Offset : 8 sectors
   Unused Space : before=258984 sectors, after=3072 sectors
          State : clean
    Device UUID : a36f72c1:d4ec55f0:e4a4ff8a:19a0d659

    Update Time : Fri Aug 11 17:08:49 2017
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 965ce69e - expected 965ce69d
         Events : 18840

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
===============================
/dev/sde1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 05143452:9d98ca6b:c59a91b5:fda8b846
           Name : vikas-VirtualBox:0
  Creation Time : Sat Dec 31 17:31:47 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 1953259520 (931.39 GiB 1000.07 GB)
     Array Size : 2929889280 (2794.16 GiB 3000.21 GB)
    Data Offset : 259072 sectors
   Super Offset : 8 sectors
   Unused Space : before=258984 sectors, after=3072 sectors
          State : clean
    Device UUID : 04920971:8ce054dc:4756516d:07eedc84

    Update Time : Fri Aug 11 17:08:49 2017
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 3f4afc07 - expected 3f4afc06
         Events : 18840

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
===============================
/dev/sdi:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 05143452:9d98ca6b:c59a91b5:fda8b846
           Name : vikas-VirtualBox:0
  Creation Time : Sat Dec 31 17:31:47 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 1953263024 (931.39 GiB 1000.07 GB)
     Array Size : 2929889280 (2794.16 GiB 3000.21 GB)
  Used Dev Size : 1953259520 (931.39 GiB 1000.07 GB)
    Data Offset : 259072 sectors
   Super Offset : 8 sectors
   Unused Space : before=258984 sectors, after=6576 sectors
          State : clean
    Device UUID : 426c61e9:ea61c2f3:cf27167c:09807918

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Aug 11 17:08:49 2017
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 7171c8e1 - correct
         Events : 18840

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

組み立て力を試すとき:

sudo mdadm --assemble /dev/md0 --verbose --force --run /dev/sde1 /dev/sdf1 /dev/sdh /dev/sdi
mdadm: looking for devices for /dev/md0
mdadm: /dev/sde1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdh is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdi is identified as a member of /dev/md0, slot 3.
mdadm: added /dev/sdf1 to /dev/md0 as 1
mdadm: added /dev/sdh to /dev/md0 as 2
mdadm: added /dev/sdi to /dev/md0 as 3
mdadm: added /dev/sde1 to /dev/md0 as 0
mdadm: failed to RUN_ARRAY /dev/md0: Invalid argument

dmesg から:

[ 2208.363750] RAID conf printout:
[ 2208.363752]  --- level:5 rd:4 wd:4
[ 2208.363755]  disk 0, o:1, dev:sde1
[ 2208.363758]  disk 1, o:1, dev:sdf1
[ 2208.363760]  disk 2, o:1, dev:sdh
[ 2208.363763]  disk 3, o:1, dev:sdi
[ 2208.363994] md0: invalid bitmap file superblock: bad magic
[ 2208.363997] md0: bitmap file superblock:
[ 2208.364000]          magic: ff88ffff
[ 2208.364002]        version: 11
[ 2208.364005]           uuid: 00000000.00000000.00000000.00000000
[ 2208.364007]         events: 0
[ 2208.364009] events cleared: 0
[ 2208.364012]          state: 00000000
[ 2208.364014]      chunksize: 0 B
[ 2208.364016]   daemon sleep: 0s
[ 2208.364018]      sync size: 0 KB
[ 2208.364020] max write behind: 0
[ 2208.364023] md0: failed to create bitmap (-22)

私の推測では、何らかの理由で XP ブートがこれらのディスク メンバーに触れたため、魔法が異なっていると考えられます。

新しいアレイのオプションを見たことがあります--createが、データが失われるかどうかはわかりません。次に、別の Ubuntu で作成した場合、他の Ubuntu で動作を再開しますか?

すべてのメンバーの整合性を検証し、チェックサムをリセットする簡単な方法はありませんか? ご提案ください。ありがとうございます。

答え1

私は見つけたこのメールスレッド、これはあなたと同じ問題を説明しているようです。

その人にとっての解決策は、次のコマンドを実行することでした:

sudo mdadm -A --update=super-minor /dev/md0

そのユーザーは次のように書いています:

私は mdadm のソースを少し調べて、このことを自分で理解しました。どうやら mdadm はスーパー ブロックを読み取るときに、無効なビットマップのビットマップ ファイルを自動的にクリアするようです (ただし、カーネルはそうしません)。したがって、必要なのは、mdadm がそのスーパー ブロックをディスクに保存し直す方法を見つけることだけです。私にとってこの問題を解決した魔法のコマンドは次の通りです。

mdadm -A --update=super-minor /dev/md0

--update コマンドは、ディスクをマウントする前に mdadm に RAID スーパー ブロックをディスクに保存するように強制し、ビットマップ フラグをクリアします。

しかし、そのユーザーはメタデータバージョンを持っており00.90.01mdadm(8)マニュアルページ:

超マイナーv0.90のメタデータにのみ関連します

つまり、名前新しいバージョンの1.2スーパーブロックの配列の代わりに超マイナーこれはバージョン 1 のメタデータには存在しません。

man ページから:

-う--更新=

配列を組み立てる際に各デバイスのスーパーブロックを更新します。このフラグに指定できる引数は、次のいずれかです。スパーク2.2要約ユーザID名前ホームホスト再同期バイト順序デバイスサイズビットマップなし、 または超マイナー

名前オプションは名前スーパーブロックに格納されている配列の。これはバージョン 1 のスーパーブロックでのみサポートされます。

関連情報