簡體   English   中英

如何檢測可引導的NTFS文件系統?

[英]How to detect a bootable NTFS filesystem?

硬盤具有4個主(MBR)分區,所有分區均格式化為NTFS。 其中只有一個包含可啟動的操作系統(Windows XP,Windows Vista,Windows 7,Windows 8或Windows 10)。 我的引導程序程序如何確定哪個文件系統可引導? 是否可以僅通過讀取文件系統的引導扇區(即前512個字節)來完成?

分區表中的活動位已丟失。

僅檢查字節0是0xeb或0xe9以及字節510是0x55還是字節511是0xAA是不夠的,因為即使Linux上由mkfs.ntfs工具創建的不可引導的NTFS文件系統也通過了此測試,並且預期的和所需的輸出情況是不可引導的。

如果我的程序能夠列出NTFS文件系統根目錄中的文件,我應該尋找(NTLDR)哪些文件或目錄?

如果我的程序只有文件系統的前40960個字節,它還能確定分區是否可引導嗎? (最好使用盡可能簡單的邏輯。)

這是正確的嗎:如果文件\\ BOOTMGR或\\ NTLDR存在於NTFS文件系統上,則(可以)將其引導。

根據我的最佳理解,檢測NTFS文件系統是否包含可啟動Windows的最簡單方法是檢查根目錄中是否存在任何文件BOOTMGR或NTLDR,因為其中一個文件將由啟動代碼加載。

NTFS引導扇區(即文件系統的前512個字節)不包含有關可引導性的確定信息,因為它對於可引導和不可引導的文件系統可以完全相同。

有關Windows啟動的更多信息(具有文件BOOTMGR和NTLDR的角色):

值得一看的是os-prober的源代碼。 os-probes / mount / x86 / 20microsoft中,它確實在尋找文件BOOTMGR和NTLDR(均為小寫)。 它還有一些其他檢查,例如對於BOOTMGR,它檢查文件boot / bcd,對於NTLDR,它檢查文件ntdetect.com和boot.ini。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM