1.載入bios的硬體資訊,獲取第乙個啟動裝置
2.讀取第乙個啟動裝置mbr的引導引導程式(grub)的啟動資訊
3.載入核心作業系統的核心資訊,核心開始解壓縮,並嘗試驅動所有的硬體裝置
4.核心執行init程式,並獲取預設的執行資訊
5.init程式執行/etc/rc.d/rc.sysinit檔案
6.啟動核心的外掛程式模組
7.init執行執行的各個批處理檔案(scripts)
8.init執行/etc/rc.d/rc.local
9.執行/bin/login程式,等待使用者登入
10.登入之後開始以shell控制主機
bootloader: 引導載入器,引導程式
mbr:第乙個扇區
grub
kernel
支援核心模組的動態裝載和解除安裝
核心組成部分:
核心檔案:/boot/vmlinuz-version-release
模組檔案:/lib/modules/version-release
centos 6,7 initramfs.img
dracut命令
init程式的型別:
sysv: init, centos 5之前
upstart: init,centos 6
systemd:systemd, centos 7
/sbin/init centos6之前
執行級別:為系統執行或維護等目的而設定;0-6:7個級別
0:關機
1:單使用者模式(root自動登入), single, 維護模式
2:多使用者模式,啟動網路功能,但不會啟動nfs;維護模式
3:多使用者模式,正常模式;文字介面
4:預留級別;可同3級別
5:多使用者模式,正常模式;圖形介面
6:重啟
預設級別:3, 5
切換級別:init #
檢視級別:runlevel ; who -r
process:定義了要執行的程序
示例:
/etc/init/control-alt-delete.conf
/etc/init/tty.conf
/etc/init/start-ttys.conf
/etc/init/rc.conf
/etc/init/prefdm.conf
for srv in /etc/rc.d/rcn.d/k*; do
$srv stop
done
for srv in /etc/rc.d/rcn.d/s*; do
$srv start
done
刪除:
修改指定的鏈結型別
chkconfig [–level levels] name
瞬態(transient)服務被xinetd程序所管理
不便或不需寫為服務指令碼放置於/etc/rc.d/init.d/目錄,且又想開機時自動執行 的命令,可直接放置於/etc/rc.d/rc.local檔案中
/etc/rc.d/rc.local在指定執行級別指令碼後執行
可以根據情況,進行自定義修改
1:2345:respawn:/usr/sbin/mingetty tty1
2:2345:respawn:/usr/sbin/mingetty tty2
6:2345:respawn:/usr/sbin/mingetty tty6
x:5:respawn:/etc/x11/prefdm -nodaemon
總結:/sbin/init --> (/etc/inittab) --> 設定預設執行級別 --> 執行系統初始 指令碼、完成系統初始化 --> (關閉對應下需要關閉的服務)啟動需要啟動服務 -> 設定登入終端
centos 6 init程式為: upstart, 其配置檔案:
/etc/inittab, /etc/init/*.conf,配置檔案的語法 遵循 upstart配置檔案語 法格式,和centos5不同
/mnt/sysroot/
udev通過此路徑下輸出的資訊動態為各裝置建立所需要裝置檔案,udev是 執行使用者空間程式
專用工具:udevadmin, hotplug
udev為裝置建立裝置檔案時,會讀取其事先定義好的規則檔案,一般在 /etc/udev/rules.d及/usr/lib/udev/rules.d目錄下
示例:lsmod |grep xfs
modinfo xfs
了解全部硬體裝置資訊
hal-device:centos 6
(1) 配置核心選項
支援「更新」模式進行配置:make help
(a) make config:基於命令列以遍歷的方式配置核心中可配置的每個選項
(b) make menuconfig:基於curses的文字視窗介面
(c) make gconfig:基於gtk (gnome)環境視窗介面
(d) make xconfig:基於qt(kde)環境的視窗介面
支援「全新配置」模式進行配置
(a) make defconfig:基於核心為目標平台提供的「預設」配置進行配置
(b) make allyesconfig: 所有選項均回答為「yes「
(c) make allnoconfig: 所有選項均回答為「no「
(2) 編譯
全編譯:make [-j #]
編譯核心的一部分功能:
(a) 只編譯某子目錄中的相關**
cd /usr/src/linux
make dir/
(b) 只編譯乙個特定的模組
cd /usr/src/linux
make dir/file.ko
示例:只為e1000編譯驅動:
make drivers/net/ethernet/intel/e1000/e1000.ko
刪除/lib/modules/目錄下不需要的核心庫檔案
刪除/usr/src/linux/目錄下不需要的核心原始碼
刪除/boot目錄下啟動的核心和核心映像檔案
更改grub的配置檔案,刪除不需要的核心啟動列表
systemd:系統啟動和伺服器守護程序管理器,負責在系統啟動或執行時,激 活系統資源,伺服器程序和其它程序
systemd新特性
系統引導時實現服務並行啟動
按需啟動守護程序
自動化的服務依賴關係管理
同時採用socket式與d-bus匯流排式啟用服務
系統狀態快照
核心概念:unit
unit表示不同型別的systemd物件,通過配置檔案進行標識和配置;檔案中主 要包含了系統服務、監聽socket、儲存的系統快照以及其它與init相關的資訊
配置檔案
/usr/lib/systemd/system:每個服務最主要的啟動指令碼設定,類似於之前的 /etc/init.d/
/run/systemd/system:系統執行過程中所產生的服務指令碼,比上面目錄優 先執行
/etc/systemd/system:管理員建立的執行指令碼,類似於/etc/rcn.d/sxx的功 能,比上面目錄優先執行
linux系統啟動
本文簡單介紹一下從我們按開機鍵到可以登入系統,這段時間系統和電腦硬體是怎麼一起工作的。既做為對自己知識的乙個總結整理,也可以給linux初級使用者做乙個入門介紹,高手請略過。一般來說linux的啟動可以分成三個階段 bios階段,系統引導階段,系統啟動階段。一 bios階段 bios 基本輸入輸出系...
linux系統啟動
本文簡單介紹一下從我們按開機鍵到可以登入系統,這段時間系統和電腦硬體是怎麼一起工作的。既做為對自己知識的乙個總結整理,也可以給linux初級使用者做乙個入門介紹,高手請略過。一般來說linux的啟動可以分成三個階段 bios階段,系統引導階段,系統啟動階段。一 bios階段 bios 基本輸入輸出系...
Linux系統啟動
1.系統啟動流程大概 1 啟動bios 2 mbr中的引導 bootcode 3 執行引導程式 linux中用的最多的是grub 引導程式的主要作用是用來載入核心 4 載入系統核心 5 執行init 6 runlevel init根據當前預設的執行級別來啟動相關的程式及裝置 2.bios basic...