이전에 삭제된 파티션이 포함된 MBR 테이블이 있습니다.
타사 도구나 testdisk와 같은 소프트웨어를 사용하지 않고 MBR 파티션 항목을 재조립하고 삭제된 파티션을 복구할 수 있는 방법이 있습니까?
답변1
대답은 "그냥 놔두세요"처럼 간단할 수도 있고 매우 복잡할 수도 있습니다. 나는 내 역사상 두 번의 MBR 사고를 겪었는데, 둘 다 "손이 머리보다 빠르게 움직이는 것" 때문이었습니다. MBR 테이블에서 파티션을 "삭제"하는 더 많은 방법이 있습니다. cli 프로그램과 GUI 프로그램을 이용하여 디스크의 처음 512바이트를 동작시킨다. MBR에는 4개의 기본 파티션을 나타내는 4개의 레코드가 있습니다. 그러나 GUI 프로그램은 확장된 MBR을 자동으로 사용하므로 복구 조사가 복잡해질 수 있습니다. 원칙적으로 두 가지 목표를 따를 수 있습니다. - 원래 MBR을 복원하고, - 원래 파티션 내용을 저장합니다. 기본 Linux 도구를 사용하거나 정교한 GUI 프로그램을 찾을 수 있습니다. 디스크 여유 공간이 충분하다면 원본 디스크를 건드리지 말고 먼저 비트 복사본(디스크 이미지)을 만드는 것이 좋습니다. R-Studio 프로그램은 훌륭하게 작동하지만 라이센스에 대해 잘 모르겠습니다. 원시 파티션 파일 시스템(NTFS, ext3)의 유형을 알고 있는 경우 시작 서명을 검색할 수 있습니다. 손실된 파티션의 원래 크기와 순서에 대해 염두에 두고 있는 모든 정보는 스캔해야 하는 공간을 줄이는 데 도움이 될 수 있습니다. 예를 들어 첫 번째 20GB와 두 번째 200GB라는 두 개의 파티션이 있다는 것을 기억한다면 첫 번째 파티션의 시작 부분은 디스크의 시작 부분 근처에 있고 두 번째 파티션의 시작 부분은 디스크 시작 부분에 있을 수 있다고 판단할 수 있습니다. 섹터 39062500 44040192 사이에서 발견되었습니다. NTFS를 찾고 있다고 가정하면 다음을 사용하여 서명을 검색할 수 있습니다.
$ hd disk_image.dd -s20000000000 -n2548578304
원시 디스크에서 이러한 명령을 실행하려면 루트 권한이 있어야 합니다.
파티션의 시작 부분을 성공적으로 찾았다면 찾은 파티션을 저장한 다음 새 MBR을 생성하고 해당 파티션을 위한 충분한 공간을 확보한 다음 저장된 파티션을 새 위치에 다시 복사하는 것이 더 쉬워 보입니다. 또한 일부 표준 도구( , , )를 사용하여 바이트를 섹터로 다시 계산하고 MBR 테이블을 재구성하려고 시도할 수도 있지만 fdisk
결과가 기대에 미치지 못할 수도 있습니다. sfdisk
자세한 내용을 제공해 주시면 parted
더 많은 도움을 드릴 수 있습니다. 즉, 디스크 용량, 원래 파티션의 크기(또는 대략적인 크기), 파티션 삭제 방법, MBR 복원에 사용된 운영 체제 등이 무엇입니까? 일부 파일을 찾아서 저장해야 한다면 sleuthkit과 같은 특수 도구를 사용할 수 있습니다.
답변2
모든 파일 시스템에는징후. 따라서 파티션에서 어떤 파일 시스템이 사용되는지 알고 있다면 16진수 편집기를 사용하여 블록 장치를 열고 파일 시스템을 검색할 수 있습니다. 파일 시스템은 파티션의 시작 부분(또는 그 근처)에서 시작하는 경향이 있으므로 파일 시스템의 시작 부분을 찾으면 파티션의 시작 섹터도 발견했을 가능성이 높습니다.
파티션은 다음 파티션이 시작되기 전에 종료되는 경향이 있으므로 마지막 파티션을 제외하고 종료 섹터를 결정하는 방법입니다.
시작/끝 섹터가 있으면 파티셔닝 도구를 사용하여 이러한 파티션을 만들 수 있습니다. 그런 다음 기도하고 파일 시스템을 마운트해 보십시오.
물론, 이 과정을 어렵거나 불가능하게 만드는 상황이 있습니다.
- 파일 시스템이 암호화된 블록 장치(예: LUKS)에 저장된 경우.
- 가상 머신용 파일 시스템이나 디스크 이미지가 있는지 여부. 추가 정보가 없으면 디스크 이미지와 파티션의 차이를 알 수 없습니다.
위에서 설명한 내용은 기본적으로 testdisk
자동화된 내용입니다.