對於linux 運維人員來說清楚linux啟動的過程是非要有必要的,因為只有這樣才能在遇到系統不能正常啟動的時候對問題進行排查,判斷是具體哪個階段出現問題,從而修復,而不是只能重灌系統。在介紹啟動流程前,先介紹下核心相關概念:
linux 核心英文叫kernel,提供程序管理、記憶體管理、網路管理、驅動程式、檔案系統、安全功能。
linux核心特點:
支援模組化: .ko(核心物件)如:檔案系統,硬體驅動,網路協議;支援核心模組的動態裝載和解除安裝。
組成部分:
核心檔案: /boot/vmlinuz-version-release
ramdisk:輔助的偽根系統
centos 5: /boot/initrd-version-release.img
centos 6,7: /boot/initramfs-version-release.img
模組檔案: /lib/modules/version-release5
現在將開始介紹centos6啟動流程
1.1 載入bios的硬體資訊,獲取第乙個啟動裝置
post: power-on-self-test,加電自檢,是bios功能的乙個主要部
分。負責完成對cpu、主機板、記憶體、硬碟子系統、顯示子系統、 串並行接
口、鍵盤、 cd-rom光碟機等硬體情況的檢測。
2.讀取第乙個啟動裝置mbr的引導引導程式(grub)的啟動資訊。
mbr總共512位元組,前446byte 是bootloader ,之後64byte是硬碟分割槽表,最後兩個位元組是55aa 。 bootloader 是第一階段啟動項
載入核心作業系統的核心資訊,核心開始解壓縮,並嘗試驅動所有的硬體裝置;核心執行init程式,並獲取預設的執行資訊。
4.1 init程式執行/etc/rc.d/rc.sysinit檔案
4.2 啟動核心的外掛程式模組
4.3 init執行執行的各個批處理檔案(scripts)
4.4 init執行/etc/rc.d/rc.local
4.5 執行/bin/login程式,等待使用者登入
啟動完成,使用者可以正常登入系統。
6.1 模擬mbr故障
[[email protected] ~]#dd if=/dev/zero of=/dev/sda bs=1 count=512 刪除mbr資訊
重啟之後發現介面是黑色的,這時候我們需要重啟機器,進入救援模式會看到以下介面:
圖中 chroot /mnt/sysimage/ 是切換到真正的根目下,預設是在/boot下面。
然後執行:grub-install /dev/sda 等待完成後,如果沒有報錯,重啟機器即可。這種方法同樣適用於1.5階段故障。恢復方法總結:重啟機器,進入救援模式後,執行chroot /mnt/sysimage/ 切根,然後 grub-install /dev/sda
,沒有報錯,重啟機器就可以了!
首先我們看下 boot 下面有哪些東西:
[[email protected] boot]#ls
config-2.6
.32-696.el6.x86_64 symvers-2.6
.32-696.el6.x86_64.gz
grub system.map-2.6
.32-696.el6.x86_64
initramfs-2.6
.32-696.el6.x86_64.img vmlinuz-2.6
.32-696.el6.x86_64
[[email protected] boot]#ls grub/
device.map ffs_stage1_5 jfs_stage1_5 stage1 vstafs_stage1_5
e2fs_stage1_5 grub.conf minix_stage1_5 stage2 xfs_stage1_5
fat_stage1_5 iso9660_stage1_5 reiserfs_stage1_5 ufs2_stage1_5
裡面除了grub 資料夾外的檔案都是安裝kernel 時候自動生成的。
當整個boot 分割槽丟失後,我們同樣先進入救援模式,同樣先執行
chroot /mnt/sysimage 命令切換到平時的根目錄下,然後掛載光碟,之後安裝光碟裡的核心檔案,命令:rpm -ivh /mnt/packages/kernel-2.6.32-696.e16x86_64.rpm –force,在執行 grub-install /dev/sda ,ls /boot 會看到如下如所示:
好了,這時候我們快要成功!我們在grub 資料夾下新建grub.conf 檔案
[[email protected] boot]#cat grub/grub.conf
root (hd0,0) 寫明/boot分割槽的位置 hd0 表示第乙個硬碟,0 表示第乙個分割槽。
default=0 0表示預設啟動
timeout=5 表示5秒後自動執行
title linux1 乙個名稱,叫什麼無所謂,但是要有
kernel /vmlinuz-2.6.32-696.el6.x86_64 root=/dev/sda2
initrd /initramfs-2.6.32-696.el6.x86_64.img
做完之後退出,然後重啟機器就可以正常恢復了!
centos5開機流程
對開機流程的了解不僅是對計算機的了解,更多的是能幫到我們如何排查錯誤及如何修正錯誤。若有一台主機開機流程中的其中一項被損壞,那麼我們除了重灌更要懂的如何修正,畢竟有些資料是很寶貴的 post自檢 主要是對硬體的檢測 載入bios的硬體資訊,並且將啟動交於第一啟動項 一般為硬碟,看個人設定。詳情了解w...
CentOS6和CentOS7的啟動流程介紹
1.開機 2.bios開機自檢 檢查cpu 記憶體 陣列卡 硬碟 遠端卡 網絡卡 以及usb外部裝置 3.mbr引導 4.grub選單 5.載入核心 6.執行init程序 7.讀取 etc inittab 8.讀取 etc rc.sysinit進行系統的初始化 9.根據執行級別啟動相應的指令碼檔案 ...
CentOS 6啟動流程
載入bios的硬體資訊,獲取第乙個啟動裝置 讀取第乙個啟動裝置mbr的引導引導程式 grub 的啟動資訊 載入核心作業系統的核心資訊,核心開始解壓縮,並嘗試驅動所有的硬體裝置 核心執行init程式,並獲取預設的執行資訊 init程式執行 etc rc.d rc.sysinit檔案,重新掛載根檔案系統...