怎麼啟動linux
A. Linux鎿嶄綔緋葷粺鐨勫惎鍔ㄦラよ︾粏璇存槑
1銆佽誨彇MBR鐨勪俊鎮錛屽惎鍔˙oot Manager
Windows浣跨敤NTLDR浣滀負Boot Manager錛屽傛灉鎮ㄧ殑緋葷粺涓瀹夎呭氫釜鐗堟湰鐨刉indows錛屾偍灝遍渶瑕佸湪NTLDR涓閫夋嫨鎮ㄨ佽繘鍏ョ殑緋葷粺銆
Linux閫氬父浣跨敤鍔熻兘寮哄ぇ錛岄厤緗鐏墊椿鐨凣RUB浣滀負Boot Manager錛屾垜浠灝嗗湪鍚鍔ㄧ$悊絝犺妭涓鍚戞偍浠嬬粛瀹冪殑浣跨敤鏂瑰紡銆
2銆佸姞杞界郴緇熷唴鏍革紝鍚鍔╥nit榪涚▼
init榪涚▼鏄疞inux鐨勬牴榪涚▼錛屾墍鏈夌殑緋葷粺榪涚▼閮芥槸瀹冪殑瀛愯繘紼嬨
3銆乮nit榪涚▼璇誨彇鈥/etc/inittab鈥濇枃浠朵腑鐨勪俊鎮錛屽苟榪涘叆棰勮劇殑榪愯岀駭鍒錛屾寜欏哄簭榪愯岃ヨ繍琛岀駭鍒瀵瑰簲鏂囦歡澶逛笅鐨勮剼鏈銆傝剼鏈閫氬父浠モ渟tart鈥濆弬鏁板惎鍔錛屽苟鎸囧悜涓涓緋葷粺涓鐨勭▼搴忋
閫氬父鎯呭喌涓嬶紝鈥/etc/rcS.d/鈥濈洰褰曚笅鐨勫惎鍔ㄨ剼鏈棣栧厛琚鎵ц岋紝鐒跺悗鏄鈥/etc/rcN.d/鈥濈洰褰曘備緥濡傛偍璁懼畾鐨勮繍琛岀駭鍒涓3,閭d箞瀹冨瑰簲鐨勫惎鍔ㄧ洰褰曚負鈥/etc/rc3.d/鈥濄
4銆佹牴鎹鈥/etc/rcS.d/鈥濇枃浠跺す涓瀵瑰簲鐨勮剼鏈鍚鍔╔window鏈嶅姟鍣ㄢ渪org鈥
Xwindow涓篖inux涓嬬殑鍥懼艦鐢ㄦ埛鐣岄潰緋葷粺銆
5銆佸惎鍔ㄧ櫥褰曠$悊鍣錛岀瓑寰呯敤鎴風櫥褰
Ubuntu緋葷粺榛樿や嬌鐢℅DM浣滀負鐧誨綍綆$悊鍣錛屾偍鍦ㄧ櫥褰曠$悊鍣ㄧ晫闈涓杈撳叆鐢ㄦ埛鍚嶅拰瀵嗙爜鍚庯紝渚垮彲浠ョ櫥褰曠郴緇熴 (鎮ㄥ彲浠ュ湪鈥/etc/rc3.d/鈥濇枃浠跺す涓鎵懼埌涓涓鍚嶄負鈥淪13gdm鈥濈殑閾炬帴)
濡傛灉鎯砋buntu鍦ㄦ瘡嬈″惎鍔ㄥ埌command prompt 錛屽彲浠ヨ緭鍏ヤ互涓嬫寚浠:
$echo 鈥渇alse鈥 | sudo tee /etc/X11/default-display-manager
褰撲笅嬈″紑鏈烘椂錛屽氨浼氫互鎸囦護妯″紡鍚鍔錛屽傛灉鎯沖彉鍥炲惎鍔▁ window錛屽彲浠ヨ緭鍏:
$echo 鈥/usr/bin/gdm鈥 | sudo tee /etc/X11/default-display-manager
B. LINUX操作系統的啟動過程
一、啟動內核
首先介紹啟動內核部分。電腦啟動時,BIOS裝載MBR,然後從當前活動分區啟動,LILO獲得引
導過程的控制權後,會顯示LILO提示符。此時如果用戶不進行任何操作,LILO將在等待制定
時間後自動引導默認的操作系統,而如果在此期間按下TAB鍵,則可以看到一個可引導的操作
系統列表,選擇相應的操作系統名稱就能進入相應的操作系統。
當用戶選擇啟動LINUX操作系統時,LILO就會根據事先設置好的信息從ROOT文件系統所在的分
區讀取LINUX映象,然後裝入內核映象並將控制權交給LINUX內核。LINUX內核獲得控制權後,
以如下步驟繼續引導系統:
1. LINUX內核一般是壓縮保存的,因此,它首先要進行自身的解壓縮。內核映象前面的一些
代碼完成解壓縮。
2. 如果系統中安裝有可支持特殊文本模式的、且LINUX可識別的SVGA卡,LINUX會提示用戶
選擇適當的文本顯示模式。但如果在內核的編譯過程中預先設置了文本模式,則不會提示選
擇顯示模式。該顯示模式可通過LILO或RDEV工具程序設置。
3. 內核接下來檢測其他的硬體設備,例如硬碟、軟盤和網卡等,並對相應的設備驅動程序
進行配置。這時,顯示器上出現內核運行輸出的一些硬體信息。
4. 接下來,內核裝載ROOT文件系統。ROOT文件系統的位置可在編譯內核時指定,也可通過
LILO或RDEV指定。文件系統的類型可自動檢測。如果由於某些原因裝載失敗,則內核啟動
失敗,最終會終止系統。
二、執行init程序
其次介紹init程序,利用init程序可以方便地定製啟動其間裝入哪些程序。init的任務是
啟動新進程和退出時重新啟動其它進程。例如,在大多數Linux系統中,啟動時最初裝入
六個虛擬的控制台進程,退出控制台窗口時,進程死亡,然後init啟動新的虛擬登錄控制台,
因而總是提供六個虛擬登陸控控制台進程。
控制init程序操作的規則存放在文件/etc/inittab中。Red Hat Linux預設的inittab文
件如下:
#
#inittab This file describes how the INIT process should set up the system in a certain
#run-level.
#
#
#Default runlevel.The runlevels used by RHS are:
#0-halt(Do NOT set initdefault to this)
#1-Single user mode
#2-Multiuser,without NFS(the same as 3,if you do not have networking)
#3-Full multiuser mode
#4-unused
#5-X11
#6-reboot(Do NOT set initdefault to this)
#
id:3:initdefault:
#system initialization
si::sysinit:/etc/rc.d/rc.sysinit
10:0:wait:/etc/rc.d/rc 0
11:1:wait:/etc/rc.d/rc 1
12:2:wait:/etc/rc.d/rc 2
13:3:wait:/etc/rc.d/rc 3
14:4:wait:/etc/rc.d/rc 4
15:5:wait:/etc/rc.d/rc 5
16:6:wait:/etc/rc.d/rc 6
#Things to run in every runlevel
ud:once:/sbin/update
#Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
#When our UPS tells us power has failed,assume we have a few minutes of
power left.Schele a
#shutdown for 2 minutes from now.
#This does,of course,assume you have powered installed and your UPS
connected and working
#correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Restored;Shutdown Cancelled"
#Run gettys in standard runlevels
1:12345:respawn:/sbin/minggetty tty1
2:2345:respawn:/sbin/minggetty tty2
3:2345:respawn:/sbin/minggetty tty3
4:2345:respawn:/sbin/minggetty tty4
5:2345:respawn:/sbin/minggetty tty5
6:2345:respawn:/sbin/minggetty tty6
#Run xdm in runlevel 5
x:5:respawn:/usr/bin/X11/xdm -nodaemon
Linux有個運行級系統,運行級是表示系統當前狀態和init應運行哪個進程並保持在這種
系統狀態中運行的數字。在inittab文件中,第一個項目指定啟動時裝入的預設運行級。
上例中是個多用戶控制台方式,運行級為3。然後,inittab文件中每個項目指定第二個
欄位的項目用哪種運行級(每個欄位用冒號分開)。因此,對運行級3,下列行是相關的:
13:3:wait:/etc/rc.d/rc 3
1:12345:respawn:/sbin/minggetty tty1
2:2345:respawn:/sbin/minggetty tty2
3:2345:respawn:/sbin/minggetty tty3
4:2345:respawn:/sbin/minggetty tty4
5:2345:respawn:/sbin/minggetty tty5
6:2345:respawn:/sbin/minggetty tty6
最後六行建立Linux提供的六個虛擬控制台。第一行運行啟動腳本/etc/rc.d/ rc 3;
這將運行目錄/etc/
rc.d/rc3.d中包含的所有腳本,這些腳本表示系統初始化時要啟動的程序。一般來說,
這些腳本不需要編輯或改變,是系統預設的。