2017-12-13 1 views
0

하드 디스크에는 4 개의 기본 (MBR) 파티션이 있으며 모두 NTFS로 포맷됩니다. 그 중 하나에 부팅 가능한 운영 체제가 포함되어 있습니다 (Windows XP, Windows Vista, Windows 7, Windows 8 또는 Windows 10). 부트 로더 프로그램은 어떤 파일 시스템이 부팅 가능한지 어떻게 알 수 있습니까? 파일 시스템의 부트 섹터 (즉 처음 512 바이트)를 읽는 것만으로 가능합니까?부팅 가능한 NTFS 파일 시스템을 검색하는 방법은 무엇입니까?

파티션 테이블의 활성 비트가 손실되었습니다.

바이트 0이 0xeb 또는 0xe9이고 바이트 510이 0x55이고 바이트 511이 0xAA인지 확인하는 것만으로는 충분하지 않습니다. Linux의 mkfs.ntfs 도구로 만든 부팅 가능하지 않은 NTFS 파일 시스템이이 테스트를 통과하고 예상되는 이 경우 필요한 출력은 부팅 할 수 없습니다.

내 프로그램 파일이나 디렉토리 내가 (NTLDR)를 찾고해야 NTFS 파일 시스템의 루트 디렉토리에있는 파일을 나열 할 수 있다면? 내 프로그램이 모든 파일 시스템의 첫 번째 40960 바이트 인 경우 파티션이 부팅 가능한 경우

, 아직 결정할 수 있습니다? (. 바람직하게는 단순한 논리를 최대한으로)

이 올바른인가 : 파일 \ BOOTMGR 또는 \ NTLDR는 NTFS 파일 시스템에있는 경우, 다음은 (아마도) 부팅합니다.

+0

참조 : http://wiki.osdev.org/Partition_Table – Caramiriel

+0

@Caramiriel : 어떻게 그 링크 도움이 NTFS 파일 시스템 부팅 여부를 검출 하는가? 나는 거기에서 아무 것도 찾을 수 없었다. – pts

+0

파티션 테이블 레코드 (바이트 오프셋 0)는 파티션이 부팅 가능한지 여부를 알려줍니다. 그 외에도 [NTFS 부트 섹터] (https://technet.microsoft.com/en-us/library/cc977221.aspx)를 사용할 수 있는지 확인할 수 있습니다. 부팅 가능의 정의에 달려있다. – Caramiriel

답변

0

NTFS 파일 시스템에 부팅 가능한 Windows가 있는지 여부를 감지하는 가장 간단한 방법은 부팅시 이러한 파일 중 하나가로드되기 때문에 루트 디렉터리에 BOOTMGR 또는 NTLDR 파일이 있는지 확인하는 것입니다 암호. 이 부팅 및 부팅 할 수없는 파일 시스템에서 동일 할 수 있기 때문에

NTFS는 부트 섹터 (파일 시스템의 즉 512 바이트), 부팅 가능성에 대한 명확한 정보가 포함되어 있지 않습니다.

(파일 BOOTMGR과 NTLDR의 역할) 윈도우 부팅에 대한 몇 가지 추가 정보를 원하시면 : 그것은 또한 os-prober의 소스 코드를보고 가치가

. os-probes/mounted/x86/20microsoft에서는 실제로 BOOTMGR 및 NTLDR 파일 (모두 소문자)을 찾습니다. 또한 BOOTMGR은 boot/bcd 파일을 검사하고 NTLDR의 경우 ntdetect.com 및 boot.ini 파일을 검사하는 것과 같은 몇 가지 추가 점검이 있습니다.

관련 문제