GRUB應用
- CentOS 6啓動流程:
POST --> Boot Sequence(BIOS) --> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 設定默認運行級別 --> 系統初始化腳本 --> 關閉或啓動對應級別下的服務 --> 啓動終端 - GRUB(Boot Loader):引導加載器,程序
1grub: GRand Unified Bootloader
grub 0.x: grub legacy
grub 1.x: grub2
2.grub legacy:
stage1: mbr
stage1_5: mbr之後的扇區,讓stage1中的bootloader能識別stage2所在的分區上的文件系統;
stage2:磁盤分區(/boot/grub/)
配置文件:/boot/grub/grub.conf <-- /etc/grub.conf
stage2及內核等通常放置於一個基本磁盤分區;
功用:
(1) 提供菜單、並提供交互式接口
e: 編輯模式,用於編輯菜單;
c: 命令模式,交互式接口;
(2) 加載用戶選擇的內核或操作系統
允許傳遞參數給內核
可隱藏此菜單
(3) 爲菜單提供了保護機制
爲編輯菜單進行認證
爲啓用內核或操作系統進行認證
3.grub的命令行接口:help: 獲取幫助列表 help KEYWORD: 詳細幫助信息 find (hd#,#)/PATH/TO/SOMEFILE: root (hd#,#) kernel /PATH/TO/KERNEL_FILE: 設定本次啓動時用到的內核文件;額外還可以添加許多內核支持使用的cmdline參數; 例如:init=/path/to/init, selinux=0 initrd /PATH/TO/INITRAMFS_FILE: 設定爲選定的內核提供額外文件的ramdisk; boot: 引導啓動選定的內核; 手動在grub命令行接口啓動系統: grub> root (hd#,#) grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE grub> initrd /initramfs-VERSION-RELEASE.img grub> boot 識別硬盤設備: (hd#,#) hd#: 磁盤編號,用數字表示;從0開始編號 #: 分區編號,用數字表示; 從0開始編號 (hd0,0)
4.安裝grub:
(1) grub-install
grub-install --root-directory=ROOT /dev/DISK
(2) grub
grub> root (hd#,#)
grub> setup (hd#)
grub legacy配置文件
配置文件:/boot/grub/grub.conf配置項: default=#: 設定默認啓動的菜單項;落單項(title)編號從0開始; timeout=#:指定菜單項等待選項選擇的時長; splashimage=(hd#,#)/PATH/TO/XPM_PIC_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口令: grub-md5-crypt grub-crypt 破解root口令: 啓動系統時,設置其運行級別爲1 進入單用戶模式: (1) 編輯grub菜單(選定要編輯的title,而後使用e命令); (2) 在選定的kernel後附加 1, s, S或single都可以; (3) 在kernel所在行,鍵入“b”命令;