日志系統
Linux系統啟動流程
PC: OS(Linux)
POST-->BIOS(Boot Sequence)-->MBR(bootloader,446)-->Kernel-->initrd-->(ROOTFS)/sbin/init(/etc/inittab)
啟動的服務不同:
運行級別:0-6
0:halt
1: single user mode, 直接以管理員身份切入, s,S,single
2:multi user mode, no NFS
3: multi user mode, text mode
4:reserved
5: multi user mode, graphic mode
6: reboot
詳解啟動過程
bootloader(MBR)
LILO: LInux LOader
GRUB: GRand Unified Bootloader
Stage1: MBR
Stage1_5:
Stage2: /boot/grub/
grub.conf
default=0 # 設定默認啟動的title的編號,從0開始
timeout=5 # 等待用戶選擇的超時時長,單位是秒
splashimage=(hd0,0)/grub/splash.xpm.gz # grub的背景圖片
hiddenmenu # 隱藏菜單
password redhat
password --md5 $1$HKXJ51$B9Z8A.X//XA.AtzU1.KuG. (說明:使用grub-md5-crypt雜質加密)
title Red Hat Enterprise Linux Server (2.6.18-308.el5) # 內核標題,或操作系統名稱,字符串,可自由修改
root (hd0,0) # 內核文件所在的設備;對grub而言,所有類型硬盤一律hd,格式為(hd#,N);hd#, #表示第幾個磁盤;最后的N表示對應磁盤的分區;
kernel /vmlinuz-2.6.18-308.el5 ro root=/dev/vol0/root rhgb quiet # 內核文件路徑,及傳遞給內核的參數
initrd /initrd-2.6.18-308.el5.img # ramdisk文件路徑
password --md5 $1$HKXJ51$B9Z8A.X//XA.AtzU1.KuG.
title Install Red Hat Enterprise Linux 5
root (hd0,0)
kernel /vmlinuz-5 ks=http://172.16.0.1/workstation.cfg ksdevice=eth0 noipv6
initrd /initrd-5
password --md5 $1$FSUEU/$uhUUc8USBK5QAXc.BfW4m.
查看運行級別:
runlevel:
who -r
查看內核release號:
uname -r
破壞grub,bootloader
dd if=/dev/zero of=/dev/sda count=1 bs=400
sync 同步到磁盤
安裝grub stage1:
# grub
grub> root (hd0,0)
grub> set (hd0)
安裝grub第二種方式:
# grub-install --root-directory=/path/to/boot's_parent_dir /PATH/TO/DEVICE
grub.conf文件損壞
grub> find
grub> root (hd#,N)
grub> kernel /PATH/TO/KERNEL_FILE
grub> initrd /PATH/TO/INITRD_FILE
grub> boot
啟動后重建grub.conf
Kernel初始化的過程:
1、設備探測
2、驅動初始化(可能會從initrd(initramfs)文件中裝載驅動模塊)
3、以只讀掛載根文件系統;
4、裝載第一個進程init(PID:1)
/sbin/init:(/etc/inittab)
upstart: ubuntu, d-bus, event-driven
systemd:
id:runlevels:action:process
id: 標識符
runlevels: 在哪個級別運行此行;
action: 在什么情況下執行此行;
process: 要運行程序;
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
ACTION:
initdefault: 設定默認運行級別
sysinit: 系統初始化
wait: 等待級別切換至此級別時執行
respawn: 一旦程序終止,會重新啟動
/etc/rc.d/rc.sysinit完成的任務:
1、激活udev和selinux;
2、根據/etc/sysctl.conf文件,來設定內核參數;
3、設定時鍾時鍾;
4、裝載鍵盤映射;
5、啟用交換分區;
6、設置主機名;
7、根文件系統檢測,並以讀寫方式重新掛載;
8、激活RAID和LVM設備;
9、啟用磁盤配額;
10、根據/etc/fstab,檢查並掛載其它文件系統;
11、清理過期的鎖和PID文件;
for I in /etc/rc3.d/K*; do
$I stop
done
for I in /etc/rc3.d/S*; do
$I start
done
##: 關閉或啟動的優先次序,數據越小越優先被選定
先關閉以K開頭的服務,后啟動以S開頭的服務;