操作系統的啟動流程、內核
阿新 • • 發佈:2018-06-18
stage2 根據 rep modules 問題 per ise 配置文件 pla 操作系統的啟動流程:
第1部分:硬件初始化
主板加電---->BIOS自檢(收集硬件信息,設置啟動項)---->HD(本地硬盤)---->MBR(引導扇區)
MBR=512字節=【446字節(grub第一階段的代碼)+64字節(分區表信息)+2字節(校驗位)】
---->bootloader(主引導程序)---->grub stage1[存放stage2的指針]---->stage1_5[橋梁]---->stage23
[/|kernel|initramfs存放的物理地址]---->...硬件初始化完畢
第2部分:操作系統初始化
kernel---->/sbin/init---->upstart事件---->/etc/init/rcS.conf---->/etc/rc.d/rc.sysinit[初始化操作系統,網絡,selinux,hostname...]
/etc/inittab---->/etc/rc.d/rc5.d/xxx(S-開機自啟動|K-開機不自啟動)
/etc/fstab---->掛載相應的設備
/etc/rc.d/rc.local 操作系統啟動讀取的最後一個腳本文件
---->login
如下是定義服務是否開機自啟動
# chkconfig NetworkManager on
# chkconfig --level 5 NetworkManager off
grub引導管理:
grub是操作系統的引導管理器,它是安裝操作系統時由安裝向導安裝在MBR主引導扇區裏的。
作用:
1、grub提供可引導的菜單
2、加載內核(驅動硬件)
3、將啟動任務交給下一個引導程序
grub.conf的配置文件:
default=0 默認情況下啟動第幾個菜單;0代表第一個;1代表第2個
timeout=5 默認的等待時間
splashimage=(hd0,0)/grub/splash.xpm.gz grub的背景圖
hiddenmenu 是否隱藏菜單;默認隱藏
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) 菜單,可以自己定義
root (hd0,0) 指定kernel鏡像和虛擬的文件系統在哪個盤上 第1塊硬盤的第1個分區
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_node1-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_node1/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_node1/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img
要正確引導操作系統,那麽必須告訴grub kernel鏡像在哪裏,虛擬的文件系統在哪裏,需要給kernel傳遞一些參數(root=/dev/sda3...)
問題1:root密碼忘記了,怎麽樣進入到單用戶模式
問題2:grub.conf文件丟失了,怎麽辦?
問題3:boot目錄下所有的文件都丟失了,並且沒有備份,怎麽辦?
思路:
grub> 手動引導不起來的
1、利用光盤或者網絡進入到修復模式
2、掛載掛盤重新安裝kernel和grub
3、創建grub.conf文件在/boot/grub/
4、重新啟動操作系統
問題4:怎麽樣去阻止進入到單用戶模式?
vim /etc/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password=redhat ---->加密
或者
password --md5 $1$fFHJH/$YkGZMqybmaH9xNbg5fdS8/
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_node1-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_node1/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_node1/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img
內核升級:
1、rpm
www.kernel.org
2、yum
3、源碼包編譯升級
步驟:
1、下載內核
linux-4.1.4.tar.xz
2、解壓到指定目錄裏
# tar -xf linux-4.1.4.tar.xz
# cd linux-4.1.4
3、根據需求配置編譯安裝
# make menuconfig 文本圖形配置| 先安裝:ncurses-devel
# make
# make modules_install install 安裝模塊
# make install 安裝內核
4、重啟系統使用新內核
模塊操作相關命令:
lsmod 查看系統當前所有激活的模塊
lsmod |grep 8139
modprobe -l|grep 8139 查看當前內核所支持的相關模塊
modprobe 8139cp 激活相應模塊
modprobe 8139too
lsmod |grep 8139
depmod -a 模塊之間產生依賴關系
modprobe -r 8139too 刪除模塊(非激活)
操作系統的啟動流程、內核