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だけで、残りは削除するシステムパーティションです。
私は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
は、実験中の安全上の理由から追加されました。)