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