GRUB

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設備保護功能
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容