1. 程式人生 > >操作系統的啟動流程、內核

操作系統的啟動流程、內核

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 刪除模塊(非激活)

操作系統的啟動流程、內核