ext4로 포맷된 4TB 드라이브는 파일 시스템 유형이 잘못되어 마운트할 수 없습니다.

ext4로 포맷된 4TB 드라이브는 파일 시스템 유형이 잘못되어 마운트할 수 없습니다.

USB를 통해 데이터 센터의 외부 인클로저에 새로운 4TB 드라이브를 연결했습니다. 전체 드라이브를 사용하기 위해 기본 매개변수를 사용하여 파티션을 생성하기 위해 원격으로 디스크를 사용했습니다. 그런 다음 mkfs.ext4를 실행합니다. 많은 양의 데이터를 복사한 후 드라이브를 배송받았습니다.

집에 있는 컴퓨터에 연결한 경우(내부 SATA를 통해) 드라이브를 마운트할 수 없습니다.

파일 시스템 유형이 잘못되었습니다. 슈퍼블록 오류가 발생했습니다. 이에 대한 오류 질문이 많이 표시됩니다. 차이점은 ext4를 사용하여 포맷했다는 것을 알고 있다는 것입니다.

파티셔닝이 너무 일찍 시작되는 것에 대해 언급하는 질문을 보았습니다. 이것은 내 fdisk -l 출력입니다.

Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
42 heads, 63 sectors/track, 2953150 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xfb4c8856

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1             256   976754645   488377195   83  Linux

데이터 손실을 방지하기 위해 할 수 있는 일이 있나요? 아니면 다시 배송하고 처음부터 다시 배송을 받아야 합니까?

답변1

빠른 답변

데이터 손실을 방지하기 위해 할 수 있는 일이 있나요?

예. 설치 후 다음과 같은 데이터에 액세스할 수 있습니다.

mount -o ro,offset=((256*4096)) /dev/sda /path/to/mountpoint

( ro만일의 경우에 대비해 파일이 올바르게 보이면 remount 를 사용할 수 있습니다 -o rw.)


설명하다

이 답변무슨 일이 일어났는지 설명하세요:

셸은 드라이브를 고급 포맷 4Kn 장치로 컴퓨터에 노출시켜 MBR을 사용하는 Windows XP 시스템과의 호환성을 허용합니다. 논리 섹터 형식을 변경하면 드라이브가 섀시에서 제거될 때 파티션 테이블이 유효하지 않게 될 수 있습니다.

이제 드라이브는 각각 512바이트인 7814037168개의 논리 섹터 용량을 보고합니다. 캐비닛에는 각각 4096바이트의 논리 섹터가 976754646개 있습니다.

현재 파티션 항목은 4096바이트 섹터 기준으로 유효합니다. 이는 섹터 번호 256에서 마지막 섹터인 976754645까지의 파티션을 나타냅니다. 섹터는 0부터 시작하여 번호가 지정되고 N 섹터는 0부터 N-1까지 번호가 지정됩니다.

이것이 MBR(DOS) 파티션 테이블임을 알 수 있습니다. GPT에서는 백업 테이블을 위해 장치 끝에 매우 적은 섹터가 필요합니다. 사용되지 않은 섹터가 없으므로 MBR

그러나 이제 모든 도구는 512바이트 논리 섹터가 있는 장치를 볼 수 있습니다. 파티션 테이블에는 유일한 파티션 범위가 섹터 번호 256부터 976754645까지인 것으로 다시 표시되는데, 이는 잘못된 것입니다.

이제 올바른 값은 다음과 같습니다.

  • 256*8 = 2048
  • (976754645+1)*8-1 = 7814037167

후자가 마지막 섹터라는 점에 유의하세요( fdisk7814037168 섹터가 있다고 말씀하셨습니다).

이제 MBR 파티션 테이블이 너무 많은 섹터를 차지하므로 복구할 수 없습니다. 무엇을 비교할 것인가위키피디아설명하다:

블록 주소와 크기는 32비트를 사용하여 MBR의 파티션 테이블에 저장되므로 512바이트 섹터(실제 또는 시뮬레이션)가 있는 드라이브와 가장 높은 시작 주소를 사용하는 파티션의 최대 크기는 2TiB -512바이트(2,199,023,255,040바이트)를 초과할 수 없습니다. 또는 4,294,967,295 섹터 × 섹터당 512바이트). 이러한 용량 제한을 완화하는 것이 GPT 개발의 주요 동기 중 하나입니다.

기기 끝 부분에 보조(백업) 파티션 테이블을 위한 공간이 없기 때문에 GPT로의 전체 변환이 쉽지 않습니다. MBR은 장치 시작 부분에만 존재합니다. GPT는 시작과 끝 모두에 공간이 필요합니다.

파일 시스템이 시작된 오프셋을 여전히 알 수 있습니다 mount. 이것이 바로 내 명령이 수행하는 작업입니다. 오프셋은 256*4096바이트(또는 2048*512바이트, 동일한 숫자)입니다. 위에 주어진 명령은 쉘을 사용하여 오프셋을 계산합니다. 오프셋은 전체 장치의 시작 부분에서 계산되므로 이 명령에서는 /dev/sda이를 대신 사용합니다 /dev/sda1.

내 테스트에 따르면 ext4는 기본 장치의 논리 섹터 크기에 의존하지 않으므로 이 방법으로 설치할 수 있습니다.

이제 "반송하고, 다시 시작하고, 다시 반송하는 것"이 ​​도움이 되지 않는다는 것이 분명해졌습니다. 인클로저는 논리 섹터 크기를 다시 변환하고 파일 시스템이 얼마나 잘 마운트되는지 놀라게 될 것입니다. 반면에 이제 디스크를 지우고 GPT 파티션 테이블과 파일 시스템을 다시 만든 다음 드라이브를 배송하는 경우 동일한 인클로저를 통해 연결하면 데이터 센터에 설치되지 않습니다.


힌트

디스크를 앞뒤로 배송해야 하는 경우 파티션 테이블(예 mkfs.ext4 /dev/sda: ) 없이 전체 장치의 파일 시스템인 슈퍼플로피를 고려하십시오. mount /dev/sda /path/to/mountpoint간섭 섀시가 있거나 없이 이러한 파일 시스템을 마운트할 수 있습니다.

답변2

나는 사용할 것이다테스트 디스크. (확실할 때까지 드라이브에 쓰지 마십시오.) 이는 드라이브에 액세스하기 위해 다양한 옵션을 시도하는 데 도움이 되며, 성공하면 드라이브의 데이터(복사 가능)를 다른 디스크에 표시할 수도 있습니다. 백업한 후 찾은 디스크 구조 데이터를 작성하고 테스트 디스크 없이 컴퓨터의 드라이브에 액세스할 수 있는지 시도해 보겠습니다.

이 도구를 조심해서 사용하세요. 하지만 이와 같은 상황에서는 도움이 될 수 있습니다.

관련 정보