?? the linux bootprompt-howto 中譯版(續2).txt
字號:
作者:孤獨求敗
日期:00-1-16 4:39:36
3.5 其它另外的核心啟動參數
這些啟動參數讓使用者調整某些核心內部的參數。
The `debug' Argument
核心經由 printk() 函式傳達重要(以及沒那麼重要)的訊息給管理
者(operator)。 如果訊息很重要, printk() 函式也會顯示到主控臺(console)
上, 就如同丟給 klogd() 記錄到磁碟上一般。 如同記錄到磁碟上一般在主控臺
上顯示重要訊息的原因是因為在不幸的狀況下 (例如磁碟損壞)訊息將無法存入
磁碟而漏失。
到底什麼重要什麼不重要其門檻藉由 console_loglevel 變數設定。 預設是把任
何比 DEBUG(等級 7)重要的東西記錄到主控臺上去。 (這些等級定義在
kernel.h 含入檔中)指定 debug 啟動參數將使主控臺的記錄等級設為 10, 所
以所有核心訊息都會出現在主控臺上。
主控臺記錄等級通常也可以在執行期間經由 klogd() 程式選項設定。 查看你系
統之安裝版本的線上說明頁看看該怎麼做。
`init=' 參數
核心啟動時預設執行 `init' 程式,這支程式接下來經由執行 getty 程式, 跑
`rc' 指令稿(scripts)以及諸如此類的東東為使用者設定電腦。 核心首先尋找
/sbin/init ,然後是 /etc/init (depreciated), 而最後它會去試 /bin/sh (
可能在 /etc/rc )。 如果說,例如,如果你的 init 程式壞掉了,只要使用
init=/bin/sh
這個啟動參數就能讓你在啟動時直接跳到解譯環境(shell),使你能夠換掉壞掉的
程式。
`no387' 參數
某些 i387 協同處理器晶片有臭□(bugs),在 32 位元保護模式下會出現。 例如
,部份早期的 ULSI-387 晶片在執行浮點運算時會死當, 這似乎是因為
FRSAV/FRRESTOR 指令的一只□。 使用 `no387' 啟動參數使 Linux 就算你真的
有數值輔助處理器也忽略它的存在。 當然編譯核心時你必須加入數值模擬支援!
如果你有某些能夠使用 80287 浮點處理單元(FPU)的古董級 386 機器那這也很有
用, 因為 linux 無法使用 80287。
`no-hlt' 參數
i386(及其後繼者) 家族的中央處理器有個 `hlt' 指令用來告訴中央處理器現
在□□沒事做, 直到某個外部設備(鍵盤,數據機,磁碟等等)呼叫中央處理器
執行任務為止。 這個指令會使中央處理器進入‘省電’模式, 像個死
人(zombie)般坐在那里直到有個外部設備叫它起來 (經由中斷(interrupt) ,通
常是)。 部份早期的 i486DX-100 晶片處理這個 `hlt' 指令有問題, 使用過這
個指令後它們不能可靠地回到運作模式。 使用 `no-hlt' 這個指令告訴 Linux當
無事可做時跑個無窮回圈而不停住你的中央處理器。 讓有這些晶片的人們能夠使
用 Linux,然而還是建議有可能的話就換掉這些晶片。
`no-scroll' 參數
啟動時使用這個參數可以關閉卷頁(scrolling)特性,這個特性使得 Braille 終
端機難以使用。
`panic=' 參數
在不太可能發生的核心異常(kernel panic)事件下(像是核心偵測到內部錯誤,
并認為這樣的錯誤嚴重到應該發出警訊并停止任何作業),
預設的處理方式是就停在那兒直到有人過來并注意到螢幕上的異常警訊然後重新
啟動機器。
然而如果機器是在無法觸及,隔離的地方跑的話也許會希望它能自動重置自己然
後回到線上。 例如,啟動時使用 panic=30 會使核心在發生核心異常 30 秒後試
著重新啟動自己。 若此值為零則使用預設的處理方式,就是一直在那兒等。
注意,這個逾時(timeout)設定也可經由 /proc/sys/kernel/panic 系統控制
(sysctl)介面讀取與設定。
`profile=' 參數
核心發展者們可以打開某個選項以得知核心如何使用中央處理器時間以及用在那
□, 以便最大化效率(efficiency)與效能(performance)。 這個選項讓你在啟動
時設定觀察變化的計數(the profile shift count)。 此值一般設為二。你也可
以在編譯核心時打開此功能。無論那種情況,你都需要像 readprofile.c 這類可
以處理 /proc/profile 輸出的工具。
`reboot=' 選項
這個選項控制重置電腦時 (典型是經由 /sbin/init 處理的
Control-Alt-Delete 動作) Linux 所做的重新啟動之種類。 新的 v2.0 核心預
設的動作是做‘冷’開機 (完全重置,基本輸出入系統執行記憶體檢查等等)以
代替‘暖’開機 (沒有完全重置,沒有記憶體檢查)。
改為預設冷開機是為了要在便宜的/爛爛的,暖開機請求沒辦法重新啟動的硬體
上工作。 可以使用 reboot=w 設為原先的方式(暖開機),其實可以用任何以
w 開頭的字來設定。
為什麼這會造成困擾? 某些具有記憶體快取的磁碟控制器能夠感測到暖開機,
并且把所有暫存的資料寫到磁碟上。 冷開機可能會重設該卡,在快取卡記憶體里
面的回寫(write-back)資料就會漏失。 已經有人回報系統記憶體檢查很花時間以
及/或是小型電腦智慧介面基本輸出入系統 (SCSI BIOSes)冷開機時花較久的時
間初始化是使用暖開機的好理由。
`reserve=' 參數
這是用來保護輸出入埠區域不要偵測。這個指令的格式是:
reserve=iobase,extent[,iobase,extent]...
在某些機器上也許必須避免設備驅動程式去檢查(自動偵測)在某些特殊區域的
設備。 這可能是因為硬體設計的不良而會使得啟動終止(像是某些乙太網路卡)
, 會被誤認的硬體,狀態會因為較前面的偵測而改變的硬體, 或者只是你不想
讓核心初始化的硬體。
此 reserve 啟動時期參數藉由指定一段不要偵測的輸出入埠□圍以解決此問題。
此段區域在核心的輸出入埠注冊表格當中被視為已經在該處找到設備 (名稱為
reserved )而保留。注意,絕大部份的機器都不需要此機制。 只有真的有問題
或特殊情況才會需要用到這東東。
位於指定之區域中的輸出入埠乃是靠著在偵測一段輸出入區域之前先執行
check_region() 以避免設備偵測。 這用於某些遇上 NE2000 會掛掉或者會誤認
其它設備的驅動程式。
正確的設備驅動程式不應該去偵測保留區域,除非另一個啟動參數明確地指示它
這樣做。 這意謂著 reserve 經常與其它啟動參數一起使用。 如果你指定一段保
留區域以保護某特定設備的話, 你必須明確地指定此設備的偵測□圍, 大部份
的驅動程式如果有給它們明確的位址就會忽略輸出入埠注冊表。
例如,此啟動列
_________________________________________________________________
reserve=0x300,32 blah=0x300
_________________________________________________________________
保留 0x300-0x31f 不讓除了 `blah' 的設備驅動程式外的所有驅動程式去偵側。
如同一般啟動時期所用的格式,它也有 11 個參數之限制, 因此每個 reserve
關鍵字只能指定 5 個保留區域。 如果你有異常復雜的需求,可以使用多重
reserve 指定。
`vga=' 參數
注意,這并不真的是個啟動參數。它是由 LILO 解譯的選項, 與所有其它由核心
處理的啟動參數并不相同。 然而因為它的使用變得如此普遍故值得在此加上一筆
。 這個選項也可以經由使用 rdev -v 或相同的 vidmode 指令對 vmlinuz 檔案
作設定。 這使得設定程式碼能夠在真的啟動 Linux 核心之前使用視訊(video)基
本輸出入系統改變預設的顯示模式。 典型的模式是 80x50, 132x44 等等。 使用
此選項最好的方式是以 vga=ask 啟動, 如此在啟動核心前會有個列表提示你的
顯示卡可以使用的各種模式。 一旦你從上述列表得知你想使用的號碼,以後就可
以把它放在 `ask' 的位置。 更進一步的資訊請參閱隨附於所有新版核心的
linux/Documentation/svga.txt 檔案。
注意,新的核心(2.1 版以上)有改變顯示模式的設定程式碼選項 Video mode
selection support, 所以如果你想使用這個特性那麼你就得打開這個選項。
4. 小型電腦智慧介面(SCSI)周邊的啟動參數
這一節包含用來傳遞有關小型電腦智慧介面(SCSI)卡(host adapters)及 SCSI 設
備之資訊的啟動參數說明。
4.1 中層驅動程式的參數
中層驅動程式處理像磁碟,光碟及磁帶等等而不深入介面卡的特性。
最大偵測邏輯號碼(LUN)數(`max_scsi_luns=')
每個 SCSI 設備本身里面都可以包含一個‘子設備’號碼。 最常見的例子是那些
一次可以放好幾張片子的新型 SCSI 光碟機。 每張光碟由指定之設備的‘邏輯號
碼(Logical Unit Number: LUN)’定址。 但大部份的設備,像硬碟機,磁帶機等
等都是單一個的設備, 而邏輯號碼設為零。
只有一個邏輯編號的設備若軔體寫得不好就會出問題。 某些設計不良的 SCSI 設
備(舊的以及就那麼巧被你碰上的新設備)無法接受不為零的邏輯編號偵測。 它
們會掛在那,而且有可能把整個 SCSI 匯流排(bus)都帶著一起陪葬。
較新的核心有一個配置選項可以讓你設定所要偵測之最大邏輯編號。 預設只偵測
到邏輯編號零以必免上述問題。
在啟動時指定要偵測的邏輯號碼可以鍵入 `max_scsi_luns=n' 作為啟動參數,
其中 n 是介於壹到捌的數字。 要避免上述問題可以使用 n=1 以避免這些個爛設
備不高興。
SCSI 磁帶驅動程式的參數(`st=')
SCSI 磁帶驅動程式的某些啟動時期配置可以藉由使用下列參數達成:
_________________________________________________________________
st=buf_size[,write_threshold[,max_bufs]]
_________________________________________________________________
前面兩個數字的單位是千位元組。預設的 buf_size 是 32kB。 最多可以指定為
16384kB,大的荒謬。 write_threshold 緩沖區確認送至磁帶的值,預設為
30kB。 最大緩沖區個數視偵測到的裝置數量而定,預設值為二。使用□例如:
_________________________________________________________________
st=32,30,2
_________________________________________________________________
完整的細節可以在 README.st 檔案中找到, 位於核心原始程式碼結構(tree)的
scsi 目錄里。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -