-
grub legacy
CentOS 6啟動流程:
POST –> Boot Sequence(BIOS) –> Boot Loader –> Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init — >(/etc/inittab, /etc/init/*.conf) –> 設定默認運行級別 –> 系統 初始化腳本rc.sysinit –> 關閉或啟動對應級別的服務 –> 啟動終端
-
grub: GRand Unified Bootloader
grub 0.x: grub legacy
grub 1.x: grub2
grub legacy:
stage1: mbr
stage1_5: mbr之后的扇區,讓stage1中的bootloader 能識別stage2所在的分區上的文件系統 stage2:磁盤分區(/boot/grub/)
-
配置文件:/boot/grub/grub.conf <– /etc/grub.conf
-
stage2及內核等通常放置于一個基本磁盤分區
-
功用:
-
(1) 提供啟動菜單、并提供交互式接口
-
a:內核參數
-
e: 編輯模式,用于編輯菜單
-
c: 命令模式,交互式接口
-
(2) 加載用戶選擇的內核或操作系統
-
允許傳遞參數給內核
-
可隱藏啟動菜單
-
(3) 為菜單提供了保護機制
-
為編輯啟動菜單進行認證
-
為啟用內核或操作系統進行認證
-
grub的命令行接口
-
help: 獲取幫助列表
-
help KEYWORD: 詳細幫助信息
-
find (hd#,#)/PATH/TO/SOMEFILE:
-
root (hd#,#)
-
kernel /PATH/TO/KERNEL_FILE: 設定本次啟動時用 到的內核文件;額外還可添加許多內核支持使用的cmdline參數 例如:max_loop=100 selinux=0 init=/path/to/init
-
initrd /PATH/TO/INITRAMFS_FILE: 設定為選定的 內核提供額外文件的ramdisk;
-
boot: 引導啟動選定的內核
-
識別硬盤設備: (hd#,#)
-
hd#: 磁盤編號,用數字表示;從0開始編號
-
#: 分區編號,用數字表示; 從0開始編號
-
(hd0,0) 第一塊硬盤,第一個分區
-
手動在grub命令行接口啟動系統:
-
grub> kernel (hd#,#)/vmlinuz-VERSION-RELEASE root=/dev/DEVICE
-
grub> initrd (hd#,#)/initramfs-VERSION-RELEASE.img
-
grub boot
-
grub legacy配置文件
-
配置文件:/boot/grub/grub.conf
-
default=#: 設定默認啟動的菜單項;落單項(title)編號從0開始
-
timeout=#:指定菜單項等待選項選擇的時長
-
splashimage=(hd#,#)/PATH/TO/XPM_FILE:菜單背景圖片文件路徑
-
hiddenmenu:隱藏菜單
-
password [–md5] STRING: 啟動菜單編輯認證
-
title TITLE:定義菜單項“標題”, 可出現多次
-
root (hd#,#):grub查找stage2及kernel文件所在設備分區;為grub“根”
-
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核
-
initrd /PATH/TO/INITRAMFS_FILE: 內核匹配的ramfs文件 password [–md5]
-
STRING: 啟動選定的內核或操作系統時進行認證
-
grub加密
-
grub-md5-crypt命令
-
破解root口令: 啟動系統時,設置其運行級別1
-
進入單用戶模式:
-
(1) 編輯grub菜單(選定要編輯的title,而后使用e命令);
-
(2) 在選定的kernel后附加 1, s, S或single都可以;
-
(3) 在kernel所在行,鍵入“b”命令
-
安裝grub:
-
(1) grub-install 安裝grub stage1和stage1_5到/dev/DISK磁盤上,并 復制GRUB相關文件到 DIR/boot目錄下
-
grub-install –root-directory=DIR /dev/DISK
-
(2) grub
-
grub> root (hd#,#)
-
grub> setup (hd#)
系統啟動第1階段被破壞修復過程
-
為了模擬系統啟動第一階段被破壞,首先破壞第一階段MBR
-
進入救援模式恢復系統
-
切換根目錄
-
調用grub工具
-
修復完成后重啟
系統啟動第1.5階段被破壞修復過程
-
光盤引導進入救援模式
-
使用交互式命令grub恢復系統
grub
root (hd0,0)
setup (hd0)
修復結束
系統啟動第2階段被破壞修復過程
-
切換根目錄并修復
-
修復完成
-
重新寫一份啟動文件
grub> initrd (hd0,0)/initramfs-2.6.32-642.e16.x86_64.img
grub> boot
修復完了在重復一遍,進入系統中寫一份啟動文件
修復完成
總結:其實把這三個啟動流程完全消化,就可以應對大多數系統不能啟動的排錯了,系統不能啟動大多是建立在這三種情況之上的,如果把這三種情況掌握并加上自己懂得的linux系統相關知識,活學活用,基本就可以解決系統不能啟動的問題。
原創文章,作者:502795641,如若轉載,請注明出處:http://www.www58058.com/46196
總結的很詳細,能看出來有具體操作過,實驗也順利的解決了,但是標題是不是要仔細斟酌一下呢。