星期五, 6月 09, 2006

more about NTFS - boot sector , mbr

很多篇整理來的

上一篇的"Volume Boot Record" 是partition 的boot sector。
disk 的boot sector還是叫做 mbr 。
http://en.wikipedia.org/wiki/Volume_Boot_Record


NT Loader (ntldr) 安裝在 partition 的boot sector中,不需要裝在mbr。
ps boot process是:
  1. MBR code 尋找 active partition,load active partition的boot sector。
  2. boot sector code 在partition中找 ntldr 這個program
  3. ntldr 這個program 在partition中找 boot.ini 這一個檔案。
  4. 依照boot.ini 描述的內容。開機
http://www.edatapower.com/edpforum/viewthread?thread=7752

這一篇也有說明NT Boot動作:
  1. partition boot sector 找到partition中的 ntldr - load and run ntldr
  2. ntldr 切換32bit flat memory mode,找到partition中的boot.ini。
  3. ntldr follow boot.ini 的設定,run ntdetect.com 做出硬體列表。
  4. ntldr 列出 boot.ini 的內容,讓user 選擇。
這一篇說明NT的boot process說得很詳細,包括 NT Kernel,Service 的boot process都有寫出來。
BOOT.INI 的第二段 [Operation Systems] 使用ARC 作boot path 指定,"ARC"就是"Advance RISC Computer"。

有關boot error message:
Non-system disk or disk error
Replace and press any key when ready
這是DOS boot disk中沒有system file。重新format並且copy system file。

Boot: Couldn't find NTLDR
Please insert another disk
這是NT 的boot process但是bootloader不在disk上。(說明說..bootloade 要在第一個partition的mbt上?? 越說越不清楚 @_@)。
http://www.comptechdoc.org/os/windows/ntwsguide/ntwsbooting.html
http://www.felgall.com/ntsrv5.htm


BPB
在每個partition的sector0 中有一塊BPB (BIOS Parameter Block),存放partition的geometry parameter : sector number, head..。
這一塊的參數,同樣個一顆HD,在不同的hardware下作partition的話,結果會不一樣。
Win98 會忽略BPB中head 參數的檢查,所以不會出錯。
NT 會檢查所有參數,一有不合,就會出現"NTLDR is missing" 的訊息。
解決方法:
  1. 要在本機上進行partition。避免不同的hd controller會產生不同的BPB資料。
  2. DOS的 sys c: 命令會重寫BPB。可以用這個方法將BPB 寫正確,但這個動作同時將boot sector的ntldr覆蓋掉了。
http://www.teway.net/Support_techInfo.asp?NewsID=4123

沒有留言:

網誌存檔