Windows에서 분할되지 않은 NTFS 볼륨을 읽을 수 있습니까? (단일 대형 파티션)

Windows에서 분할되지 않은 NTFS 볼륨을 읽을 수 있습니까? (단일 대형 파티션)

그래서 여러 가지 이유로 파티션 테이블 없이 28TB의 데이터를 포함하는 NTFS로 포맷된 45TB 단일 Linux 논리 볼륨을 사용하게 되었습니다(파일 시스템 자체는 28TB입니다).

파일 시스템은 Linux에서 생성되었으며 Linux에서 마운트할 수 있습니다. 동일한 상자의 KVM 기반 Windows VM 내에 이것을 마운트하려고 하면 문제가 발생합니다. Windows에는 28TB 파일 시스템이 표시되지 않지만 무작위 크기의 도움이 되지 않는 파티션이 몇 개 포함된 1.8TB 디스크가 표시됩니다.

무작위 크기의 파티션이 있는 Disk1을 보여주는 디스크 관리 출력

이는 Windows가 실제 NTFS 파일 시스템 데이터의 처음 몇 바이트를 파티션 테이블로 읽으려고 하기 때문이라고 생각합니다.

이 문제에 대한 몇 가지 가능한 해결책을 볼 수 있지만 실제로 실행하는 방법을 찾을 수는 없습니다.

  • Windows에서 분할되지 않은 디스크(단일 볼륨)를 파일 시스템으로 읽습니까?
  • 파일 시스템 자체에 저장된 데이터를 파괴하지 않고 이 논리 볼륨에서 어떻게든 파티션 테이블을 생성하시겠습니까?
  • 어떻게든 LVM 볼륨을 가리키는 파티션 테이블을 위조하고 이를 KVM 게스트(libvirt에서 실행)로 내보냅니다.

parted가 보고한 현재 "파티션 테이블"은 다음과 같습니다.

Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/chandos--dh-data: 48.0TB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  48.0TB  48.0TB  ntfs

답변1

실수로 디스크가 아닌 파티션을 이미지화한 비슷한 문제가 있었습니다. 이미지가 네트워크를 통해 복사되고 있었는데 다시 복사할 시간이 없었습니다. 하지만 28TB보다 훨씬 작았으며, 이미지 사본을 만들어야 하는 프로세스를 사용했습니다.

초기 이미지는 다음을 사용하여 촬영되었습니다.

dd if=/dev/sda1 of=/image.bin

파티션 테이블을 추가하기 위해 네트워크를 통해 모든 것을 복사하지 않고 MBR만 파일에 복사했습니다.

dd if=/dev/sda of=/mbr.bin bs=512 count=1

그런 다음 앞에 mbr을 추가하고 데이터를 복사했습니다.

fdisk -l /mbr.bin
# take the start position * units in bytes (ex start at 256 * units of 512 bytes = 131072 bytes)
truncate -s (disk size in bytes + number of above) /newfile.bin
dd if=/mbr.bin of=/newfile.bin
dd if=/image.bin of=/newfile.bin oflag=seek_bytes seek=(number from above)

완료되면 /newfile.bin완전한 파티션 테이블 + 데이터를 갖게 됩니다.

답변2

사실 저는 이에 대한 좋은 해결책을 찾지 못했습니다. 운 좋게도 새로 분할된 볼륨으로 마이그레이션하는 데 사용할 수 있는 최대 30TB의 공간을 갖춘 또 다른 드라이브 선반이 있습니다. 시간이 오래 걸리겠지만 효과가 있을 것입니다.

몇 가지 영리한 작업을 수행할 수 있다는 제안이 있었습니다.Linux 장치 매퍼(LVM 논리 볼륨과 함께 파일에서 가짜 GPT 파티션 테이블을 매핑하는 가상 장치 생성) 하지만 더 똑똑한 사람이 해결하도록 남겨 두겠습니다.

편집하다:실제로 이것에 대한 해결책을 작성했습니다.여기

답변3

2TB가 넘는 디스크는 GPT 파티션 테이블을 사용해야 합니다. 디스크 <2TB MBR이면 충분합니다.

관련 정보