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
실험 중 안전상의 이유로 추가했습니다.)