최종 업데이트 :
나는이 문제를 해결하기 위해 무엇을해야하는지 이미 알고 있었다. 나는 그것을 하는 방법 을 몰랐다 . 자동으로 수행 할 수있는 기성 도구가 있기를 바랐지만 찾을 수 없었습니다. 내 문제를 직접 해결하지는 못했지만 섹터 크기 문제에 대한 훌륭한 배경 지식을 제공하고 문제가 실제로 파티션 정렬 및 주소 지정이라는 확신을 얻었으므로 Rod의 대답을 받아들입니다. 이 문제가 같은 문제를 겪고있는 사람들은 무엇이든하기 전에 주석을 포함하여 철저하고 신중하게 읽으십시오.
처음에
컴퓨터가 있고 더 많은 공간이 필요합니다. 새로운 500GB 드라이브와 USB 인클로저를 구입했습니다. 곧 인클로저의 드라이브를 파티션으로 나누고 컴퓨터로 옮길 경우 파티션을 인식하지 못하고 그 반대도 마찬가지입니다. 인클로저에 문제가 있다고 생각했지만 걱정하지 않았습니다.
그런 다음 비극
멋진 날, 내 컴퓨터는 더 이상 켜지지 않기로 결정했습니다. 마더 보드 (브랜드 제외, 인쇄 된 큰 MADE IN CHINA)가 죽었습니다. 필자는 파일 서버로 사용했으며 500GB 드라이브에는 손실 할 수없는 데이터가 가득합니다. 지금은 파산하여 새 컴퓨터를 구입할 수 없기 때문에 유일한 희망은 "결함이있는"USB 인클로저였습니다.
조사
여러 Linux 배포판, 랩톱, VirtualBox 및 인클로저로 무장하여 문제에 대한 법의학 분석을 수행했습니다. dmesg는 파티션 크기가 드라이브 끝 이상이라고보고했습니다. 그래서 하드 디스크 데이터 시트를 검토하고 처음부터 섹터 수를 계산하고 dd를 사용하여 수동으로 드라이브 경계를 테스트했으며 fdisk를 시작하기 전까지 모든 것이 정상으로 보였습니다.
Note: Sector size is 4096 (not 512).
fdisk의 겸손 함 이 "노트"는 모든 문제의 근원이었습니다. 좀 더 조사한 후에 이러한 결론이 도출되었습니다.
USB 인클로저에 결함이 없습니다.
현재 죽은 마더 보드의 SATA 컨트롤러는 적어도 "이상한"것입니다. 4096 바이트 섹터를 운영 체제에보고하지 않았으므로 OS는 행복하게 512 바이트 섹터 주소를 사용하여 MBR을 작성했습니다.
이제 파티션에 액세스하려고하면 OS가 4096 바이트 섹터 드라이브에서 512 바이트 기반 주소를 사용하려고 시도하지만 물론 작동하지 않습니다.
질문
따라서 16 진수 편집기에서 MBR을 수동으로 편집하는 것 외에 MBR의 주소를 4096 바이트 섹터 크기로 유효하게 수정하려면 어떻게해야합니까?
파티션이 4096 바이트 섹터에 맞게 정렬되지 않았습니다. 다른 드라이브에 복사하거나 다른 드라이브에서 복사하지 않고 정렬 할 수있는 도구가 있습니까? (예비 드라이브가없는 경우) 또는 한 번에 조금씩 데이터를 측면으로 "이동"하는 도구를 만들어야합니까? 파티션은 ext3입니다.
감사!
최신 정보:
이 질문에서 dd를 사용하여 파티션을 이동시키는 영리한 방법이 있다는 것을 알았습니다. GNU / Linux에서 파티션을 이동하는 방법은 무엇입니까? 그러나 그것이 한 부문에서 작동하는지는 모르겠습니다. 나는 지금 그것을 테스트 할 수 없지만 시간이있을 때 할 것입니다.
업데이트 2 :
그래서 위의 방법을 사용하여 파티션을 성공적으로 정렬하고 16 진수 편집기에서 MBR을 수동으로 편집했습니다. HDD를 다시 연결하자마자 붐 파티션이 자동으로 마운트되었습니다! 나는 이것을 권장하지 않지만, 프로세스 중에 I / O 오류가 있었고 모든 것을 잃어 버릴 수 있습니다. Rod의 답변에 대한 의견을 참조하십시오. 다른 파티션의 경우 위험을 감수하지 않으며 이전 HDD를 사용하고 데이터를 복사 한 다음 다른 위치에 다시 붙여 넣어 한 번에 청크를 정렬합니다.
fdisk
를 사용 하여 MBR을 편집 할 수 있습니다 (나중에 이것을 배웠으므로 16 진 편집기 필요 없음). 각 시작점과 크기를 변경하고 적용하기 전에 변경 사항을 검토 할 수 있습니다. 따라서 : start fdisk
, 현재 구성을 적어 두거나 (또는 더 나은 MBR 백업 dd
) 시작 주소와 크기 값에 8을 곱한 다음 변경하십시오. 계산기로 모든 것을 확인하고 값의 의미를 이해해야합니다. Size = End-Start + 1이라는 fdisk
것을 알 수 있으며 1000 섹터 단위로 크기를 표시하므로 실제 값 등을보기 위해 전문가 모드를 켜야 할 수도 있습니다.