我有一个磁盘位于带有 btrfs 分区的 mdadm raid1 中。现在我想使用这个没有 raid 内容的分区并正常挂载它。我已经将 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
我不是 mdadm 方面的专家,但假设原始数据只有一个偏移量,你是对的,因为你可以更改分区表来访问分区。您可能需要删除分区,然后在所需位置创建新分区。 MBR 是自包含的,不会将任何数据写入分区本身(仅适用于主分区)。
或者,您可以使用循环设备包装块设备,从给定的偏移量开始。据报道,偏移量为 2048 个扇区,相当于 2048 · 512 = 1048576 字节。
offset=1048576
losetup -f /dev/sdb3 -o $offset
然后挂载新创建的循环块设备(通常是/dev/loop0
)。
或者直接使用mount:
mount -o loop,ro,offset=$offset /dev/sdb3 /mountpoint
(ro
出于实验过程中安全原因添加。)