OS X 도구를 사용하여 Windows 파티션 부팅 고정 늦었습니다! Windows는 BIOS 모드로

저는 2013 년 초반 Mac Book Pro : OS X, Windows 7 및 Ubuntu에서 3 중 부팅 시스템을 사용했습니다. 내 부팅 관리자로 rEFInd를 사용하고 있습니다. 내 Windows는 레거시 BIOS 부팅을 사용하여 부팅하고, OS X 및 Ubuntu는 기본 EFI 부팅으로 부팅합니다.

OS X Yosemite로 업데이트하기 전까지 모든 작업이 진행되었습니다. 그건 내 Windows를 부러 뜨 :

“부팅 장치 없음 – 부팅 디스크를 넣고 아무 키나 누르십시오”

업데이트하기 전에 부트 섹터를 백업해야한다고 생각합니다.하지만 지금은 너무 늦었습니다! Windows는 BIOS 모드로 부팅하기 때문에 하이브리드 MBR을 읽으며 Windows 파티션은 부팅 가능으로 표시되지 않았습니다. fdisk로 부팅 가능한 것으로 플래그를 지정하면 메시지가 다음으로 변경됩니다.

“누락 된 운영 체제”

gdisk를 사용하여 fdisk 및 GPT로 MBR을 확인했으며 실제로 호환되고 동기화되었습니다. 인터넷 검색 및 모든 노력을하던 중 마침내 문제가 무엇인지 깨달았습니다.

나는 몇 주 전에 OS X에서 OS X 파티션을 줄이고 특정 Windows 소프트웨어를 사용하여 Windows 파티션을 크기 조정하여 Windows 파티션의 크기를 조정하여 현재 사용중인 새로운 여유 공간을 수용 할 수 있도록했습니다 전에 Windows 파티션. 이제 그 프로그램은 오직 MBR 만 업데이트 된 것으로 보입니다 : GPT 관점에서는 Windows 파티션 이전에 파티션되지 않은 공간이 있고 MBR 관점에서는 Windows에서 공간을 사용합니다.

그러나 요세미티를 설치할 때 하이브리드 MBR이 GPT를 준수하도록 동기화하여 Windows 파티션의 위쪽 부분을 여유 공간으로 표시했습니다. “여유 공간”에는 물론 Windows 부트 로더와 많은 데이터가 포함되어 있습니다!

내 질문은, 디스크의 겉보기에 파티션되지 않은 부분을 스캔하고 Windows 파티션의 첫 섹터를 결정하는 방법이 있습니까? 나는 그것이 가능하다고 생각하지만, 나는 그것을위한 올바른 도구가 필요하다.

자세한 내용은 내 GPT 데이터입니다.

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI System Partition
   2          409640       731723959   348.7 GiB   AF05  Macintosh HD
   3       731723960       732993495   619.9 MiB   AB00  Recovery HD
   4       799528960       906948607   51.2 GiB    0700  WINDOWS 1
   5       906948608       977104895   33.5 GiB    0700  UBUNTU

및 보호 / 하이브리드 MBR의 데이터 :

 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -     409639] <Unknown ID>
 2: AC 1023 254  63 - 1023 254  63 [    409640 -  731314320] <Unknown ID>
 3: AB 1023 254  63 - 1023 254  63 [ 731723960 -    1269536] Darwin Boot
*4: 0C 1023 254  63 - 1023 254  63 [ 732993496 -  173955112] Win95 FAT32L

66.235465 섹터, 51.2 GiB Windows 파티션 이전의 31.7 GiB 간격이 있음에 유의하십시오. Windows가 작동 할 때, 파티션은 약 80 GiB 파티션으로 보았습니다. 따라서 Windows 파티션의 “진짜”시작은 그 어딘가에 존재합니다. 그것을 스캔하는 방법?



답변

내 문제를 해결하지는 못했지만 답변으로 게시 할 것입니다. 결국 이것은 분실 된 사례였습니다. Aftermath : 저는 Windows 파티션을 OS X 파티션에 백업했습니다.

sudo dd bs=512 if=/dev/disk0 of=windows_backup skip=732993496 count=173955112

이제 저는 안전하게 검사 할 수있는 80 기가의 헥스 덤프를 가지고있었습니다. 모든 종류의 메타 데이터를 검색하기 위해 16 진수 편집기를 사용했습니다.

  • NTFS 볼륨을 시작하는 “NTFS”(ASCII로 인코딩 됨).
  • NTFS의 $ MFT 또는 마스터 파일 테이블에서 파일 항목 레코드를 시작하는 “FILE”(ASCII로 인코딩 됨).
  • NTFS 시스템 파일 이름 (예 : “MFT”, 리틀 엔디안 UTF-16 및 ASCII 사용)

… 등등. 그러나 성공하지 못했습니다. 덤프에서 모든 종류의 데이터를 찾을 수 있었지만 부트 레코드 (볼륨의 첫 번째 섹터), $ 부트 파일 (부트 레코드 이후 첫 15 섹터), $ MFT 파일 파일 시스템에있는 모든 파일의 기록을 유지하는 파일은 사라졌습니다.

메타 데이터 파일의 백업 파일이고 볼륨의 중간에 저장된 $ MFTMirr 파일조차도 찾을 수 없다는 것을 당황스럽게 만듭니다.

볼륨의 마지막 섹터 인 표준 위치에서 부트 섹터의 백업을 찾을 수있었습니다. 그러나 볼륨 크기를 조정하기 전의 데이터는 오래되었습니다. 부트 섹터에는 $ MFT 파일 메타 데이터 파일의 오프셋이 저장되어 있지만 참조를 검사하는 것은 의의가 없으므로 아무 가치가 없습니다.

결국 볼륨이 완전히 붕괴되었다고 결론을 내 렸습니다. 이 이야기의 교훈? 하이브리드 마스터 부트 레코드는 악합니다. 또한 볼륨의 크기를 조정 한 프로그램이 하위 작업을 수행하여 일부 메타 데이터를 업데이트하지 못하는 것으로 보입니다.