欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux操作系統(tǒng)內(nèi)核啟動參數(shù)詳解

  發(fā)布時間:2015-06-03 15:14:02   作者:佚名   我要評論
這篇文章主要介紹了Linux操作系統(tǒng)內(nèi)核啟動參數(shù)詳解,本文講解了常用的設(shè)備無關(guān)啟動時參數(shù)、內(nèi)核開發(fā)和調(diào)試的啟動時參數(shù)等內(nèi)容,需要的朋友可以參考下

Linux內(nèi)核在啟動的時候,能接收某些命令行選項或啟動時參數(shù)。當(dāng)內(nèi)核不能識別某些硬件進(jìn)而不能設(shè)置硬件參數(shù)或者為了避免內(nèi)核更改某些參數(shù)的值,可以通過這種方式手動將這些參數(shù)傳遞給內(nèi)核。

如果不使用啟動管理器,比如直接從BIOS或者把內(nèi)核文件用“cp zImage /dev/fd0”等方法直接從設(shè)備啟動,就不能給內(nèi)核傳遞參數(shù)或選項--這也許是我們使用引導(dǎo)管理器比如LILO的好處之一吧。

Linux的內(nèi)核參數(shù)是以空格分開的一個字符串列表,通常具有如下形式:

復(fù)制代碼
代碼如下:

name[=value_1][,value_2]...[,value_10]

“name”是關(guān)鍵字,內(nèi)核用它來識別應(yīng)該把“關(guān)鍵字”后面的值傳遞給誰,也就是如何處理這個值,是傳遞給處理例程還是作為環(huán)境變量或者拋給“init”。值的個數(shù)限制為10,你可以通過再次使用該關(guān)鍵字使用超過10個的參數(shù)。

首先,內(nèi)核檢查關(guān)鍵字是不是 `root='',`nfsroot='',`nfsaddrs='', `ro'', `rw'',`debug''或`init'',然后內(nèi)核在bootsetups數(shù)組里搜索于該關(guān)鍵字相關(guān)聯(lián)的已注冊的處理函數(shù),如果找到相關(guān)的已注冊的處理函數(shù),則調(diào)用這些函數(shù)并把關(guān)鍵字后面的值作為參數(shù)傳遞給這些函數(shù)。比如你在啟動時設(shè)置參數(shù)name=a,b,c,d,內(nèi)核搜索bootsetups數(shù)組,如果發(fā)現(xiàn)“name”已注冊,則調(diào)用“name”的設(shè)置函數(shù)如name_setup(),并把a(bǔ),b,c,d傳遞給name_setup()執(zhí)行。 所有型如“name=value”參數(shù),如果沒有被上面所述的設(shè)置函數(shù)接收,將被解釋為系統(tǒng)啟動后的環(huán)境變量,比如“TERM=vt100”就會被作為一個啟動時參數(shù)。

所有沒有被內(nèi)核設(shè)置函數(shù)接收也沒又被設(shè)置成環(huán)境變量的參數(shù)都將留給init進(jìn)程處理,比如“single”。

【常用的設(shè)備無關(guān)啟動時參數(shù)】

1、init=...

設(shè)置內(nèi)核執(zhí)行的初始化進(jìn)程名,如果該項沒有設(shè)置,內(nèi)核會按順序嘗試/etc/init,
/bin/init,/sbin/init, /bin/sh,如果所有的都沒找到,內(nèi)核會拋出 kernel panic:的錯誤。

2、nfsaddrs=...

設(shè)置從網(wǎng)絡(luò)啟動時NFS的啟動地址,已字符串的形式給出。

3、nfsroot=...

設(shè)置網(wǎng)絡(luò)啟動時的NFS根名字,如果該字符串不是以 "/"、","、"."開始,默認(rèn)指向“/tftp-boot”。
以上2、3在無盤站中很有用處。

4、no387

該選項僅當(dāng)定義了CONFIG_BUGi386時才能用,某些i387協(xié)處理器芯片使用32位的保護(hù)模式時會有BUG,比如一些浮點(diǎn)運(yùn)算,使用這個參數(shù)可以讓內(nèi)核忽略387協(xié)處理器。

5、no-hlt

該選項僅當(dāng)定義了CONFIG_BUGi386時才能用,一些早期的i486DX-100芯片在處理“hlt”指令時會有問題,執(zhí)行該指令后不能可靠的返回操作系統(tǒng),使用該選項,可以讓Linux系統(tǒng)在CPU空閑的時候不要掛起CPU。

6、root=...

該參數(shù)告訴內(nèi)核啟動時使用哪個設(shè)備作為根文件系統(tǒng)。比如可以指定根文件為hda8:root=/dev/hda8。

7、ro和rw

ro參數(shù)告訴內(nèi)核以只讀方式加載根文件系統(tǒng),以便進(jìn)行文件系統(tǒng)完整性檢查,比如運(yùn)行fsck;rw參數(shù)告訴內(nèi)核以讀寫方式加載根文件系統(tǒng),這是默認(rèn)值。

8、reserve=...

保留端口號。格式:reserve=iobase,extent[,iobase,extent]...,用來保護(hù)一定區(qū)域的I/O端口不被設(shè)備驅(qū)動程序自動探測。在某些機(jī)器上,自動探測會失敗,或者設(shè)備探測錯誤或者不想讓內(nèi)核初始化設(shè)備時會用到該參數(shù);比如: reserve=0x300,32device=0x300,除device=0x300外所有設(shè)備驅(qū)動不探測 0x300-0x31f范圍的I/O端口。

9、mem=...

限制內(nèi)核使用的內(nèi)存數(shù)量。早期BIOS設(shè)計為只能識別64M以下的內(nèi)存,如果你的內(nèi)存數(shù)量大于64M,你可以指明,如果你指明的數(shù)量超過了實際安裝的內(nèi)存數(shù)量,系統(tǒng)崩潰是遲早的事情。如:mem=0x1000000意味著有16M內(nèi)存,如果是mem=0x6000000,就是96M內(nèi)存了。注意:很多機(jī)型把部分內(nèi)存作為BIOS的映射,所以你在指定內(nèi)存大小的時候一定要預(yù)留空間。你也可以在 pentium或者更新的CPU上使用mem=nopentium關(guān)閉4M的頁表,這要在內(nèi)核配置時申明。

10、panic=N

默認(rèn)情況,內(nèi)核崩潰--kernel panic 后會宕機(jī)而不會重啟,你可以設(shè)置宕機(jī)多少秒之后重啟機(jī)器;也可以在/proc/sys/kernel/panic文件里設(shè)置。

11、reboot=[warm|cold][,[bios|hard]]

該選項僅當(dāng)定義了CONFIG_BUGi386時才能用。2.0.22的內(nèi)核重啟默認(rèn)為cool reboot,warm reboot 更快,使用"reboot=bios"可以繼承bios的設(shè)置。

12、nosmp 和 maxcpus=N

僅當(dāng)定義了 __SMP__,該選項才可用。可以用來禁用多CPU或者指明最多支持的CPU個數(shù)。

【內(nèi)核開發(fā)和調(diào)試的啟動時參數(shù)】

這些參數(shù)主要用在內(nèi)核的開發(fā)和調(diào)試上,如果你不進(jìn)行類似的工作,你可以簡單的跳過本小節(jié)。

1、debug

Linux的日志級別比較多(詳細(xì)信息可以參看Linux/kernel.h),一般地,日志的守護(hù)進(jìn)程klogd只把比DEBUG級別高的日志寫進(jìn)磁盤;如果使用該選項,klogd也把內(nèi)核的DEBUG信息寫進(jìn)日志。

2、profile=N

在做內(nèi)核開發(fā)的時候,如果想清楚
的知道內(nèi)核在什么地方耗用了多少CPU的時鐘周期,可以使用核心的分析函數(shù)設(shè)置變量prof_shift為非0值,有兩種方式可以實現(xiàn):一種是在編譯時指定,另一種就是通過“profile=”來指定; 他給出了一個相當(dāng)于最小單位--即時鐘周期;系統(tǒng)在執(zhí)行內(nèi)核代碼的時候,profile[address >;>; prof_shift]的值就會累加,你也可以從
/proc/profile得到關(guān)于它的一些信息。

3、swap=N1,N2,N3,N4,N5,N6,N7,N8

設(shè)置內(nèi)核交換算法的八個參數(shù):
max_page_age,       page_advance,     page_decline,  page_initial_age,
age_cluster_fract, age_cluster_min, pageout_weight,bufferout_weight。

4、buff=N1,N2,N3,N4,N5,N6 

設(shè)置內(nèi)核緩沖內(nèi)存管理的六個參數(shù):max_buff_age, buff_advance,buff_decline,buff_initial_age, bufferout_weight, buffermem_grace。

使用 RAMDISK的參數(shù)(僅當(dāng)內(nèi)核配置并編譯了CONFIG_BLK_DEV_RAM)。一般的來說,使用ramdisk并不是一件好事,系統(tǒng)自己會更加有效的使用可用的內(nèi)存;但是,在啟動或者制作啟動盤時,使用ramdisk可以很方便的裝載軟盤等設(shè)備上的映象(尤其是安裝程序、啟動過程中),因為在正真使用物理磁盤之前,必須要加載一些必要的模塊,比如文件系統(tǒng)模塊,scsi驅(qū)動等。早期的ramdisk(比如1.3.48的核心)是靜態(tài)分配的,必須以ramdisk=N來指定ramdisk的大??;現(xiàn)在ramdisk可以動態(tài)增加。一共有四個參數(shù),兩個布爾型,兩個整形。

1、load_ramdisk=N

如果N=1,就加載ramdisk;如果N=0,就不加載ramdisk;默認(rèn)值為0。

2、prompt_ramdisk=N

N=1,提示插入軟盤;N=0,不提示插入軟盤;默認(rèn)為1。

3、ramdisk_size=N或者ramdisk=N

設(shè)定ramdisk的最大值為N KB,默認(rèn)為4096KB。

4、ramdisk_start=N

設(shè)置ramdisk的開始塊號為N,當(dāng)ramdisk有內(nèi)核的映象文件是需要這個參數(shù)。

5、noinitrd

(僅當(dāng)內(nèi)核配置了選項CONFIG_BLK_DEV_RAM和CONFIG_BLK_DEV_INITRD)現(xiàn)在的內(nèi)核都可以支持initrd了,引導(dǎo)進(jìn)程首先裝載內(nèi)核和一個初始化的ramdisk,然后內(nèi)核將initrd轉(zhuǎn)換成普通的ramdisk,也就是讀寫模式的根文件系統(tǒng)設(shè)備。然后Linuxrc執(zhí)行,然后裝載真正的根文件系統(tǒng),之后ramdisk被卸載,最后執(zhí)行啟動序列,比如/sbin/init。

選項noinitrd告訴內(nèi)核不執(zhí)行上面的步驟,即使內(nèi)核編譯了initrd,而是把initrd的數(shù)據(jù)寫到 /dev/initrd,只是這是一個一次性的設(shè)備。

The End!

相關(guān)文章

  • linux系統(tǒng)不同對象升級方法詳細(xì)介紹

    在Linux環(huán)境下,升級的對象可以是一般的軟件,可以是編譯器,也可以是系統(tǒng)的內(nèi)核,甚至是系統(tǒng)本身。下文就分別講講對不同對象的升級方法,需要的朋友可以參考一下
    2015-10-22
  • Ubuntu 15.10系統(tǒng)10月22日發(fā)布 采用Linux Kernel 4.2內(nèi)核

    Ubuntu最后一個版本Ubuntu 15.10即將發(fā)布,最終版將采用Linux內(nèi)核為4.2版,具體說來,Ubuntu 15.10進(jìn)入凍結(jié)階段后,其軟件棧和內(nèi)核都不會再有升級,這能夠讓開發(fā)者更好地進(jìn)
    2015-10-13
  • 關(guān)于Linux內(nèi)核編譯失敗的一些解決方案

    這篇文章主要介紹了關(guān)于Linux內(nèi)核編譯失敗的一些解決方案,以initrd影響啟動的問題作為重點(diǎn)講解,需要的朋友可以參考下
    2015-07-03
  • Linux如何禁止系統(tǒng)內(nèi)核Kernel自動升級避免不必要的麻煩

    Linux系統(tǒng)在進(jìn)行升級的時候內(nèi)核也會跟著更新,有時為了避免不必要的麻煩,如何禁止系統(tǒng)內(nèi)核Kernel自動升級,可以看看下面的文章
    2015-06-25
  • 存儲技術(shù)原理分析:基于Linux 2.6內(nèi)核源代碼 PDF掃描版[MB]

    《存儲技術(shù)原理分析》適合作為高校計算機(jī)相關(guān)專業(yè)本科生和研究生學(xué)習(xí)操作系統(tǒng)的輔助和實踐教材,也適合作為Linux愛好者學(xué)習(xí)內(nèi)核的參考書籍。
    2015-05-09
  • Linux內(nèi)核的文件預(yù)讀詳解

    這篇文章主要介紹了Linux內(nèi)核的文件預(yù)讀詳解,本文講解了來自磁盤的需求、來自程序的需求、預(yù)讀的概念、Linux的預(yù)讀架構(gòu)、預(yù)讀算法概要等內(nèi)容,需要的朋友可以參考下
    2015-04-09
  • Ubuntu 13.10安裝最新Linux內(nèi)核的可行方法

    Linux內(nèi)核剛推出的時候還不能使用,需要等待一段時間,下面小編給大家介紹個方法,讓Ubuntu系統(tǒng)能夠安裝最新的Linux內(nèi)核,感興趣的朋友可以嘗試下
    2015-03-04
  • Linux內(nèi)核編程指南(第3版) PDF掃描版[40MB]

    《Linux內(nèi)核編程指南(第3版)》面向希望深入學(xué)習(xí)這種操作系統(tǒng)的讀者,全面介紹了Linux操作系統(tǒng)的技術(shù)原理。
    2015-03-02
  • 深入Linux內(nèi)核架構(gòu) PDF掃描版[23MB]

    深入Linux內(nèi)核架構(gòu)借助內(nèi)核源代碼中最關(guān)鍵的部分進(jìn)行講解,幫助讀者掌握重要的知識點(diǎn),從而在運(yùn)用中充分展現(xiàn)Linux系統(tǒng)的魅力。
    2015-03-02
  • Linux內(nèi)核模塊編寫詳解

    內(nèi)核編程常常看起來像是黑魔法,而在亞瑟 C 克拉克的眼中,它八成就是了。Linux內(nèi)核和它的用戶空間是大不相同的:拋開漫不經(jīng)心,你必須小心翼翼,因為你編程中的一個bug就
    2015-11-02

最新評論