boot.ini

boot.ini

boot.ini

  boot.ini 這個檔案檔是 Windows NT/2000/XP/Server 2003,特別是 ntldr 用來判斷在啟動(開機)過程中,必須顯示的作業系統選項。根據預設值,boot.ini 檔是唯讀且隱藏的系統檔案,而且不容許任何手動式的修改。

您可以從 [控制台(Control Panel)] 裡選擇 [系統(System)] 圖示,便可很容易的變更此檔的內容。而檔案內容中的 ARC 路徑範例都可讓 Windows NT/2000/XP/Server 2003 找到 %SystemRoot%(Windows NT/2000 是 WINNT,Windows XP/Server 2003 是 WINDOWS。)目錄,以便載入位於此目錄下的檔案來完成開機程序。

  下面是典型的 Boot.ini 檔的格式:

    [boot loader]
    timeout=T
    default=ARC0
    [operating systems]
    ARC1="description" [/switches]
    ARC2="description" [/switches]
    ……
    C:\ = “description”

    C:\="Microsoft Windows"
    C:\cmdcons\bootsect.dat="Microsoft Windows Recovery Console" /cmdcons


  下列資訊為逐行解釋以上的 Boot.ini 檔:
[boot loader]:後面所接的內容不一定要換行,各內容之間留空也可。
Timeout:用來設定在選定預設的作業系統前 Windows NT 等候的時間,T 以秒計。
Default:用來設定預設的作業系統。注意:當作業系統為 Windows NT 時,就必須使用 ARC(Advanced RISC Computing,進階 RISC 運算)路徑語法。其它的作業系統如 MS-DOS 或 Windows 98 則不用。
[operating systems] 後面所接的內容不一定要換行,各內容之間留空也可。
ARCx:ARC 路徑語法,後面會再詳述,x 為數字﹔最多只能有 10 個作業系統。
"description":選單的描述,也就是我們看到選單的文字。
[/switches]:參數,需要時才加上,後面會有詳盡的敘述。

  關於 timeout 的部分,可以再仔細分析如下:
預設值為 30 秒 ;
直接進入預設作業系統則請設定 0;
在 Control Panel \ System 設定的範圍是 0 ~ 999,超過該範圍會出現錯誤訊息﹔所有超過以上範圍的值必須直接修改 boot.ini 檔案,無法在 Control Panel 中來設定﹔
不管預設作業系統為何,若要強制必須要選定作業系統,否則停留在該選單畫面,則設定為 -1﹔
如設定值 大於 999,則等待時間依照設定值﹔
如設定值 小於 -1 或是 非數字,其表現如同設定為 0﹔
如果 [operating systems] 只有一個作業系統,那 timeout 的所有設定無效,開機時也不會顯現開機選單。

ARC 路徑語法

    multi(W)disk(X)rdisk(Y)partition(Z)\%SystemRoot%
    scsi(W)disk(X)rdisk(Y)partition(Z)\%SystemRoot%
    signature(V)disk(X)rdisk(Y)partition(Z)\%SystemRoot%

  其中 V、W、X、Y 及 Z 是用來識別其左方項目的數字,%SystemRoot% 為安裝 Windows 的目錄路徑,一般的預設路徑為 C:\WINNT,但可以手動調整。以上的路徑名稱,請使用英文小寫。

multi(W)
W:是代表配接卡的序數,必須永遠都是 0。
X:如果 ARC 路徑是以 MULTI() 為開頭,則 Y 永遠都是 0,因為 MULTI() 會調用 INT 13 呼叫,因此不需要 DISK() 參數的資訊。
Y:代表配接卡上的磁碟機的序數,通常是介於 0 與 3 之間的數字。
Z:是代表分割區的數字。所有分割區都有一個代表數字,除了類型 5 (MS-DOS 延伸分割區) 與類型 0 (未使用) 的分割區,主要分割區的序號會排在前面,然後才是邏輯磁碟。
Z 的第一個有效數字是 1,反之,W、Y 與 Y 都是從 0 開始。
  ARC 路徑的 MULTI(X) 語法只用在 x86 電腦上。在 Windows NT 3.1 版中,此路徑只適用於 IDE 與 ESDI 磁碟機;在 Windows NT 之後的版本(3.5, 3.51, 4.0, 2000, XP),此路徑也適用於 SCSI 磁碟機。
  MULTI() 語法指出 Windows NT 必須依靠電腦的 BIOS 以載入系統檔案。這表示作業系統會使用插斷(INT)13 BIOS 呼叫來尋找並載入 NTOSKRNL.EXE 以及啟動 Windows NT 所需的任何其他檔案。

scsi(W)
W:NTBOOTDD.SYS 驅動程式可辨識的配接卡的序數。
X:目標磁碟的 SCSI ID。
Y:目標磁碟的 SCSI 邏輯單元號碼 (LUN),此數字幾乎永遠都是 0。
Z:是代表分割區的數字。所有分割區都有一個代表數字,除了類型 5 (MS-DOS 延伸分割區) 與類型 0 (未使用) 的分割區,主要分割區(Primayr Partition)的序號會排在前面,然後才是邏輯分割區(Logical Partition),而不是按照建立時間的順序關係。
Z 的第一個有效數字是 1,反之,W、Y 與 Y 都是從 0 開始。
  使用 SCSI() 語法時,w 的值是依據 NTBOOTDD.SYS 而定。Windows NT 下的每一個 SCSI 驅動程式都有自己排序控制器的方法,雖然通常是和所載入的控制器的 BIOS 順序相符合(亦即如果有載入 BIOS)。
  此外,如果您有多個使用不同裝置驅動程式的控制器,在判斷 W 參數時,您只能將那些被 NTBOOTDD.SYS 控制的配接卡算進去。

signature(V)
  signature(V) 其實和 scsi(W) 在其他部分的語法差不多,不過 V 是 disk signature。在微軟的文件中所舉數值 V 的例子是 8 位 16 進位數,如 8b467c12。Signature() 語法僅用於下列其中一種條件:
安裝 Windows 2000 的磁碟分割大於 ~7.8 GB,或者該磁碟分割的最終柱號碼 (Ending cylinder number) 大於 1024,而且系統 BIOS 或開機控制器 BIOS 不支援 INT13 擴充。
安裝 Windows 2000 的磁碟機與其 BIOS 被停用的 SCSI 控制器相連接,導致開機程序中不能使用 INT13 BIOS 呼叫。
  signature() 語法相等於 scsi() 語法,但在 Windows 2000 中,則使用 signature() 語法來代替 scsi() 語法,以支援隨插即用結構。由於 Windows 2000 是一個隨即用作業系統,每次啟動 Windows 2000 時, SCSI 控制器號碼例項皆有可能不同,特別是在安裝程式結束後又新增了新的 SCSI 控制器硬體時。
  使用 signature() 語法,可以使 Ntldr 定位到磁碟簽名與括號內的數值相符合的磁碟機,而不用去管磁碟機是與哪個 SCSI 號碼連接。
  signature() 值是由實體磁碟主開機記錄 (MBR) 中解壓縮的。 該唯一的十六進位數字,是在安裝的文字模式部份過程寫入 MBR 的,或者是由 Microsoft Windows NT 4.0 或以前版本的安裝寫入的。

沒有留言:

張貼留言