Centos 6啟動流程:
POST-->BootSequence(BIOS)-->Bootloader(MBR)-->kernel(ramdisk)-->rootfs(只讀) --> /sbin/init --> (/etc/inittab,/etc/init/*.conf) --> 設置默認運行級別 --> 運行系統初始化腳本、完成系統初始化 --> 關閉對應下需要關閉的服務,啟動需要啟動的服務 --> 設置登錄終端
GRUB(Boot Loader)
配置文件:/boot/grub/grub.conf <-- /etc/grub.conf
grub:GRand Unified Bootloader
grub 0.x: grub legacy
grub 1.x: grub2
grub legary:
stagel:mbr
stagel1_5:mbr之后的扇區,讓stagel中的bootloader能識別stage2所在的分區上的文件系統
stage2:磁盤分區(/boot/grub/)
stage2及內核等通常放置于一個基本磁盤分區:
功用
(1):提供菜單,并提供交互式接口
a:內核參數 e:編輯模式,用于編輯菜單
c:命令模式,交互式接口
(2):加載用戶選擇的內核或操作系統
允許傳遞參數給內核
可隱藏此菜單
(3):為菜單提供了保護機制
為編輯菜單進行認證
為啟動內核或操作系統進行認證
grub如何識別設備:
(hd#,#)
hd#:磁盤編號,用數字表示,從0開始編號
#:分區編號,用數字表示,從0開始編號
(hd0,0) 第一塊磁盤的第一個分區
grub的命令行接口:
help:獲取幫助列表
help KEYWORD:詳細幫助信息
find (hd#,#)/PATH/FILENAME:在分區上查找FILENAME文件
eg find (hd0,0)/vmlinuz-2.6*
root (hd#,#) 指明hd#,#設備為/(根)設備
eg root(hd0.0)
find vmlinuz-2.6*
kernel /PATH/TO/KERNEL_FILE 設定本次啟動時用到的內核文件;額外還可以添加許多內核支持使用的cmdline參數
eg:init=/path/to/init,selinux=0
initrd /PATH/TO/INITRAMFS_FILE:設定為選定的內核提供額外文件的ramdisk;
boot:引導啟動選定的內核
手動在grub命令行接口啟動系統:
grub> root (hd0,0)
grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE 以root身份只讀啟動內核文件
grub> initrd /initramfs-VERSION-RELEASE.img
grub> boot
配置文件:/etc/grub.conf
配置項:
default=#:設定默認啟動的菜單項,落單項(title)編號從0開始
timeout=#:指定菜單項等待選項選擇的時長;
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜單背景圖片文件路徑;
hiddenmenu:隱藏菜單
password [--md5] STRING:菜單編輯md5認證
password --encrypted 口令 512口令密碼加密
title TITLE:定義菜單項"標題",可出現多次;
root (hd#,#):grub查找stage2及kernel文件所在設備分區;為grub的"根"
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS] ro root=/dev/sda2 啟動的內核文件路徑和/分區路徑
initrd /PATH/TO/INITRAMFS_FILE:內核匹配的ramfs文件
password [--md5] STRING:啟動選定的內核或操作系統時進行認證
關鍵字(內核參數):
rhgb 啟動過程圖形界面顯示
quiet 顯示內核啟動過程
max_loop 100 生成100個loop設備
selinux=0 禁用SELinux策略
grub-md5-crypt命令:生成md5密碼口令
grub-crypt 密碼口令512加密算法
內核參數文檔:/usr/share/doc/kernel-doc-2.6.32/Documentation/kernel-parameters.txt
進入單用戶模式:
(1):編輯grub菜單(選定要編輯的title,而后使用e命令)
(2):在選定的kernel后附加
1,s,S或single都ok
(3):在kernel所在行,鍵入"b"命令
安裝grub:
(1) grub-install
grub-install --root-directory=ROOT /dev/DISK 根據跟掛載分區設備安裝/boot啟動目錄和grub,--root-directory=ROOT 指明grub存放跟路徑目錄,grub路徑目錄已存在,grub文件自動生成
(2) grub 局限性依賴于grub目錄下的文件
grub> root (hd#,#) grub跟位于hd#磁盤#個分區
grub> setup (hd#) 將grub安裝到hd#硬盤上
練習
1.新添硬盤,提供直接單獨運行bash系統
2.破壞本機grub stage1,而后在救援模式下修復之
3.為grub設備保護功能
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。