您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Process(开机流程)包含了Linux开机程序
BootProcessBootProcess(開機流程)包含了Linux開機程序,作業系統載入程式(bootloader)管理,包括常見的LILO及OpenLinux預設的GRUB作業系統載入程式。另外Linux與許多作業系統一樣,都具有運作層級(run-level)的觀念。Linux運作層級可用來定義系統的作業模式。像是單一使用者模式(SingleUser),與多重使用者模式等。一般Linux系統的開機流程如下:1.LoadBIOS–載入BIOS資訊。包含CPU,Memory,及各種Device的資訊。2.載入BootLoader–進入作業系統載入程式。一般常見的BootLoader有LILO及GRUB兩種。BootLoader是作用是載入你所選擇的作業系統。3.由BootLoader載入LinuxKernel。4.由Kernel載入init初始化程式。init檢查/etc/inittab檔案並進入不同的開機層級。init的工作有a.設定預設路徑--PATH變數b.設定網路狀態讀取/etc/sysconfig/network檔c.啟動swap(虛擬記憶體)d.mount檔案系統e.檢查檔案系統–也就是執行fsck指令(檢查並除錯)f.雜項(例如設定字型,清除暫存檔等等)g.將開機訊息經由dmesg放入/var/log/dmesg中。(使用dmesg指令便可看到開機時出現的一連串訊息。這個指令很好用,例如新增一顆硬碟時,硬碟的代號–如/dev/hdd--會在開機時指定,並會在開機訊息中提示,但開機訊息通常一閃即逝,此時便可在開機後便可用dmesg重新觀看開機訊息,一般會配合more使用,如dmesg|more)h.根據不同的開機層級啟動不同的服務。i.登入後由Shell接管LinuxBootLoader:LILO與GRUBLinuxBootLoader可以簡單視為多重單機的載入程式。BootLoader作主要的工作便是載入提供使用者開機選單,若有多重作業係統共存,則根據使用者的選擇載入不同的作業系統核心。1.LInuxLOader–LILOLilo是最常見的LinuxBootLoader。操作:在使用LILO開機時,一開始會出現boot:提示符號,此時按Tab鍵可出現多重開機選單。例如:boot:此時按TabLinuxWindowsNT出現兩個作業系統,以及下一行boot:此時輸入Linux便會進入linux作業系統,輸入WindowsNT便會進入WindowsNT(通常是windows2000)作業系統)LILO設定檔:/etc/lilo.confLILO執行檔:/sbin/lilo/sbin/lilo.real(一般執行檔是上面那個,但在OpenLinux地下為了安全性考量(例如當設定檔寫錯,又重新執行lilo時,便可能無法開機),上面那個是假的,真正的lilo執行檔是lilo.real)說明:LILO設定檔設定多重開機選單及其對應的核心位置(也就是核心所在的硬碟分割區位置)。使用more觀看/etc/lilo.conf時可能會看到以下內容:#…..(井號後面是註解,通常是一些說明的文字!)boot=/dev/hdainstall=/boot/boot.bpromptdelay=50message=/boot/messagedefault=linuxother=/dev/hda1label=WindowsNTimage=/boot/vmlinuz-2-4-2-modularlabel=linuxroot=/dev/hda3vga=274…………一個開機選單可能會有非常多的參數。以下針對較重要的參數作介紹:boot表示lilo安裝的硬碟位置。例如boot=/dev/had表示lilo安裝在第一顆硬碟。由於每次更改lilo的設定時都必須重新啟動lilo,所以要讓系統知道lilo的安裝位置,以便將更動寫入。delay表示預設的秒數。例如delay=10表示在出面boot:提示符號時,若過了十秒使用者還未有動作,便使用預設的作業系統開機。root指定Linuxrootpartition的位置。Rootpartition就是根目錄/image指定核心的位置及檔案名稱label指定開機選單的名稱。也就是在boot:時按Tab鍵會看到的選單名稱。other其他作業系統所在的硬碟分割區位置。每次更改lilo設定檔時需重新啟動lilo,設定黨才會更新。重新啟動的方法是直接執行/sbin/lilo。不過這裡千萬要注意,lilo.conf中的設定若有錯誤,可能會造成系統無法開機。在測試lilo設定檔時,最好先將lilo.conf備份起來,並準備一張開機磁片,在lilo開機失敗時可使用開機磁片開機,進入linux後再將lilo.conf改回來。2.GRandUnifiedBootLoader–GRUBGRUB是linux底下較新的BootLoader,也是現在大多數linux系統預設的bootloader。GRUB具有以下特點:1.不用安裝在硬碟前1024磁柱。2.變更或新增分割區及設定檔時,不用重新啟動GRUB3.在開機時可進入命令列模式進行GRUB維護及修改。4.畫面較好看…(其實還好啦)進入GRUB開機選單時,一開始就會出現不同作業系統的選單。不像Lilo還要按Tab鍵才會出現。此時可直接移動上下鍵選取要開機的作業系統。直接按Enter便可開機。另外再移動上下鍵選取作業系統十,亦可在選單上直接按e進入開機設定的編輯畫面。此時在螢幕上會顯示指令件及說明文字。GRUB的開機設定編輯指令如下:b啟動系統e編輯選單c進入命令列模式o(小寫)在光棒指示行後增加新行O(大寫)在光棒指示行前增加新行d刪除光棒指示行Enter編輯完之後存檔基本上,編輯這裡的開機設定並不會影響到真正的系統設定。在下一次開機時,選單又會回復到原本的樣子。除非真正更動到GRUB的設定檔。在選單上按e鍵進入編輯模式時,通常會看到下列兩行:root(hd0,0)kernel/vmlinuz-2.4.18-3root=/dev/hda5……第一行是表示GRUB安裝的位置。這裡要注意到的是,hd0代表避一顆硬碟,hd1代表第二顆。而後面的0代表第一個partition,而1則代表第二個分割區。這一行的硬碟代號與分割區的表示方法與之前所學的不太一樣。第二行是表示核心的位置及檔案名稱,以及rootpartition(也就是根目錄)的分割區位置。其中root=……所使用的硬碟代號與分割區的表示方法則與之前所學的相同。/dev/hda1表示第一顆硬碟的第一個分割區。GRUB的設定檔:/boot/grub/menu.lst使用more觀看此設定檔時,會發現這個設定檔和lilo的設定檔很像,不過有些名詞不太一樣。如:title指定開機選單的名稱。類似lilo中的label。kernel指定核心的位置及檔案名稱。類似lilo中的image。chainloader用來載入Microsoft的作業系統。類似lilo中的other。基本上,更改這個選單後,在下次開機時便會生效。不像lilo還要執行/sbin/lilo.real才會生效。Run-Level--Linux的運作層級Linux與許多作業系統類似,都具有運作層級的觀念。例如在windows底下,亦具有多種不同的模式,如一般模式,保護模式等。Linux運作層級的觀念是,根據系統目前的用途,來控制系統應該啟動哪些服務。例如在全功能的模式下,只少需啟動多人多工,圖形介面,以及網路的服務。而在其他模式底下,可能就不提供網路服務,甚至在維修模式底下不提供多人連線服務等。Linux的Run-Level分為0~6共七種模式,描述如下:0關機模式,這個模式是一個過度狀態。在系統或管理者下達關機指令時,系統會臨時切換到這個模式。管理者絕對不能將系統的run-level設為0,否則系統一開機完便會馬上關機。1單一使用者模式。系統在此模式不會啟動網路服務,圖形介面等。2多使用者模式,但不提供NFS檔案共享服務。3全功能的多使用者模式,但不含圖形介面。4系統保留5全功能多使用者模式。包含多人,網路,GUI介面等。6重開機模式。與runlevel0類似,亦為系統的過度模式。在系統重開機時會暫時切換到這個模式。注意到管理者亦不可將此模式設為預設的runlevel模式,否則系統會在開機後馬上重開機。開機時,最早執行的程式為init,這個程式會抓取/etc/inittab檔案,檢查檔案中預設的run-level,並根據不同的run-level開啟不同的服務。使用more觀看/etc/inittab,應該會看到如下的資訊:上面的井號部分是對不同的開機層級所做的簡短說明。之後有一行id:3:initdefault:便是系統指定預設層級的地方。如上例指定開機層層級為run-level3,若要更改不同的開機層級,例如要更改為開機層級5,只需將上述的3改為5即可。另外開機層級亦可在GRUB的開機選單中指定。例如在開機選單中LinuxWindowsNT將光棒移到Linux那行,並按e進入編輯選單,會出現root(hd0,0)kernel/vmlinuz-2.4.18-3root=/dev/hda5……將光棒移到第二行,再按e進入第二行的編輯模式,再那一行的最後加一個空白在接數字,例如:kernel/vmlinuz-2.4.18-3root=/dev/hda5……3或者kernel/vmlinuz-2.4.18-3root=/dev/hda5……5便可直接進入不同的run-level,如第一行進入run-level3,第二行進入run-level5。#0-halt(DoNOTsetinitdefaulttothis)#1-Singleusermode#2-Multiuser,withoutNFS(Thesameas3,ifyoudonothavenetworking)#3-Fullmultiusermode#4-unused#5-X11#6-reboot(DoNOTsetinitdefaulttothis)#id:3:initdefault:不同的run-level服務分別存放在/etc/rc.d/rc0.d/etc/rc.d/rc1.d/etc/rc.d/rc2.d/etc/rc.d/rc3.d/etc/rc.d/rc4.d/etc/rc.d/rc5.d/etc/rc.d/rc6.d
本文标题:Process(开机流程)包含了Linux开机程序
链接地址:https://www.777doc.com/doc-638027 .html