web-dev-qa-db-ja.com

mdadm raid 1 RAIDを削除し、データオフセットを削除して正常にマウントする方法は?

Btrfsパーティションを持つmdadmraid1にあったディスクがあります。今、私はこのパーティションをレイドのものなしで使用し、通常どおりにマウントしたいと思います。すでにmdadmスーパーブロックをゼロにしましたが、mdadmが作成したオフセットがまだ存在し、パーティションをマウントできません。スーパーブロックを削除する前に、データオフセットが2048であることに気付きました。

私は今何ができますか?その2048ビットでパーティションを移動しようとしますが、正確にそれを行う方法がわかりません。

パーティションテーブルを変更し、開始セクターをさらに2048ビットに設定するだけで十分ではないでしょうか。

編集:これがmdadmからの完全な情報です

mdadm --examine /dev/sdb
/dev/sdb:
   MBR Magic : aa55
Partition[0] :      4980480 sectors at         2048 (type fd)
Partition[1] :      4194304 sectors at      4982528 (type fd)
Partition[2] :     11329536 sectors at      9437184 (type fd)
root@debian-test:/home/debian# mdadm --examine /dev/sdb3
/dev/sdb3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 8bd40f46:896acdc5:6f3fa1f7:67f779fc
           Name : dsm-virtualbox:2
  Creation Time : Thu Jul 12 23:05:16 2018
     Raid Level : raid1
   Raid Devices : 1

 Avail Dev Size : 11327488 (5.40 GiB 5.80 GB)
     Array Size : 5663744 (5.40 GiB 5.80 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
   Unused Space : before=1968 sectors, after=0 sectors
          State : clean
    Device UUID : 5cf0a635:f107d2b7:18498037:0a9d68f7

    Update Time : Thu Jul 12 23:29:40 2018
       Checksum : b3b49d3d - correct
         Events : 6


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

興味があるのはパーティション3だけで、残りは削除するシステムパーティションです。

1
Fizz Khalifa

私はmdadmの専門家ではありませんが、オフセットだけの生データを想定すると、パーティションにアクセスするためにパーティションテーブルを変更できるので正しいです。おそらく、パーティションを削除してから、目的の場所に新しいパーティションを作成する必要があります。 MBRは自己完結型であり、データはパーティション自体に書き込まれません(これはプライマリパーティションにのみ当てはまります)。

または、特定のオフセットから開始して、ブロックデバイスをループデバイスでラップすることもできます。伝えられるところによると、オフセットは2048セクターであり、2048・512 = 1048576バイトに相当します。

offset=1048576
losetup -f /dev/sdb3 -o $offset

次に、新しく作成されたループブロックデバイスをマウントします(通常は/dev/loop0)。

またはマウントを直接使用する:

mount -o loop,ro,offset=$offset /dev/sdb3 /mountpoint

roは、実験中の安全上の理由から追加されました。)

0
Hermann