菜鳥學Linux 第035篇筆記 腳本知識、啓動流程
系統啓動流程
1. POST-->2. BIOS(Boot sequence)-->3. MBR(BootLoader)
--> 4. Kernel (initrd, initramfs)-->5. init(/etc/inittab,)
RHEL6:
upstart 項目名稱
/etc/inittab
/etc/init/*.conf
kernel內核初始化工作:
硬件探測
裝載驅動
掛載根文件系統(rootfs,ro)
啓動用戶空間中的第一進程init
/etc/inittab:
設定默認運行級別
系統初始化腳本(/etc/rc.d/rc.sysinit)
運行指定級別的服務腳本
/etc/rc.d/init.d/
/etc/rc.d/rc#.d
rc0.d--rc6.d
K*
S*
00-99運行次序,數字越小越先被執行
rc.local
啓動虛擬終端
啓動圖形終端
/etc/rc.d/rc.sysinit
檢測,並且以讀寫方式重新掛載根文件系統
設定主機名
檢測並掛載/etc/fstab中的其它文件系統
啓用swap交換分區
初始化外圍硬件設備的驅動
根據/etc/sysctl.conf設定內核參數
激活udev和selinux
激活LVM和RAID設備
清理過期鎖和PID文件
裝載鍵映射
增加之前所做的小linux功能
1.關機重啓
2.主機名
3.運行對應服務腳本
4.啓動終端
5.支持用戶
6.定義單用戶級別
7.裝載網卡驅動,啓用網絡功能;
8.提供一個web服務器
busybox: 1M
kernel:
安裝RHEL5, RHEL6
定製安裝:
自動化安裝
定製引導盤
shutdown
halt
reboot
poweroff
init 0
init 6
mount -n 掛載時不更新/etc/mtab文件
cat /proc/mounts
已經實現的功能
1. 關機重啓;
2. 終端
3. 主機名
4. IP地址(模塊的裝載和服務的實現)
5. functions
6. 終端提示信息
/etc/issue文件的內容
7. rc.sysinit 掛載/etc/fstab中定義的其它文件系統
8. 設定內核參數
/etc/sysctl.conf
sysctl -p
9. 用戶
PAM: Pluggable Authentication Module
/etc/pam.d/*
繞過PAM /bin/login:
框架nsswitch: Network Service Switch
庫: libnss_file.so, libnss_nis.so, libnss_ldap.so
配置文件: /etc/nsswitch.conf
NIS LADP MySQL
/etc/passwd
/etc/group
10. 單用戶模式
總算明白點點這個怎麼製作,但目前未再進行深研究,相信應該可以成功了。
下一章的小linux已經成功,所以這裏等以後再來研究吧!
腳本編程知識點
${#A} 表示取變量A的值所點字符長度
. /etc/inittab 表示將該文件讀到當前腳本中,這樣就可以在當前腳本中引用其函數