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

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

btrfsパーティションがあるmdadm raid1にディスクがあります。これで、RAIDコンテンツなしでこのパーティションを使用して正常にマウントしたいと思います。 mdadmスーパーブロックを0に設定しましたが、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

私は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実験中に安全上の理由で追加しました。)

関連情報