標籤:grub grub2 設定檔
此處以C5 C6為例,GRUB的主要作用是提供一個菜單,允許使用者選擇要啟動系統或不同的核心版本,把使用者選定的核心裝載到記憶體的特定空間中,解壓展開,並把系統控制權移交給核心,一台主機上可能裝有不止一個作業系統,使用者可以根據GRUB提供的啟動菜單選定作業系統,隨即載入指定核心
GRUB分為三個階段,
stage 1 這段代碼的其中一段代碼是MBR中的 bootloader(446位元組),這一步在GRUB 中是不可或缺的,主要負責當BIOS 交接給GRUB 時,載入存在於各分區中的開機檔案,也就是所謂的開機管理程式。其大小大約512位元組
stage1_5 這段代碼是在緊接著MBR的,輔助GRUB識別stage2所在的檔案系統所在的磁碟。stage1.5 被載入時,就已經賦予GRUB 訪問檔案系統目錄的能力(這段程式中有訪問stage2檔案系統的驅動),所以,自然可以在開始找不到stage2 的情況下,從檔案系統目錄中找出stage2 的所在位置,並啟用Linux。
其大小約32K
stage 2 在boot目錄中,不一定在根分區上,即,可以獨立分區;
stage提供一個GRUB啟動菜單,供使用者選擇不同的作業系統選擇不同的作業系統
提供選項,訪問設定檔、串連下一個bootsector(主機上可能裝的不止一個系統,,可能,可以手動選擇啟動哪個系統,也可以修改其設定檔以達到不同效果)stage2主要就是根據設定檔,或手動選擇、設定啟動需要的核心或系統!
在系統讀秒的過程中按任意鍵可進入GRUB選擇菜單,如,假如你的主機中不止一個作業系統,你可以根據需要選擇不同的作業系統;650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/74/01/wKiom1YL6oSjAP79AAFNxPfq4dc499.jpg" title="2.png" alt="wKiom1YL6oSjAP79AAFNxPfq4dc499.jpg" />
仔細看菜單下面的選項,鍵入e鍵,可在開機前進入編輯模式,如,
方框內第一行代表boot目錄所在的位置,此處為第一個磁碟第一個分區,
方框內第二行就是你的核心位置及核心,
方框內第三行ramdisk(ramfs),這是一個虛擬檔案系統,可通過這個檔案系統可找到根分區位置 以方便核心找到根分區、init程式、以及必要的驅動程式、庫檔案
在這個介面,如果再次鍵入e鍵,可對你選擇的選項進行修改!
在這兩個介面中你也可以按c進入GRUB的命令
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/73/FE/wKioL1YL6qryPSoWAAG_XY-tJ88553.jpg" title="3.png" alt="wKioL1YL6qryPSoWAAG_XY-tJ88553.jpg" />
在以上兩個介面中你也可以按c進入GRUB的命令列模式
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/74/01/wKiom1YL6q3Q6xHMAAFI0aCupd8122.jpg" title="4.png" alt="wKiom1YL6q3Q6xHMAAFI0aCupd8122.jpg" />
這樣手動指定核心及initrd也能啟動系統
grub 2主要是為載入核心提供菜單,主要依靠設定檔,它的位置在 /boot/grub/grub.conf
#boot=/dev/sda
10 default=0 #啟動項可以有多種,default=0表示預設第一項,1表示預設第二項
11 timeout=5 #在grub菜單處停留的時間,逾時則自動進入預設項
12splashimage=(hd0,0)/grub/splash.xpm.gz #grub2 的背景圖片,可以修改
13 hiddenmenu #是否隱藏菜單
14 title CentOS 6 (2.6.32-504.el6.x86_64) #核心或title不止一個,此處的內容將出現在選擇菜單中
15 root (hd0,0) #核心的磁碟位置
16 kernel /vmlinuz-2.6.32-504.el6.x86_64ro root=/dev/mapper/VolGroup-lv_root
rd_NO_LUKS rd_NO_MDrd_LVM_LV=VolGroup/lv_swap crashkernel=auto.UTF-8 #核心的一些參數選項,名字,選項等。
rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
rhgb quiet
17 initrd/initramfs-2.6.32-504.el6.x86_64.img # initrd的名字
看到它的設定檔,便會明白grub2 的主要作用了
安裝grub會自動產生此檔案
[[email protected] ~]# ls /boot/grub/
device.map grub.conf minix_stage1_5 stage2
e2fs_stage1_5 iso9660_stage1_5 reiserfs_stage1_5 ufs2_stage1_5
fat_stage1_5 jfs_stage1_5 splash.xpm.gz vstafs_stage1_5
ffs_stage1_5 menu.lst stage1 xfs_stage1_5
功用,
(1)提供菜單。並提供互動介面
e: 編輯模式,用於編輯菜單
c:命令模式 ,互動式介面
(2)載入使用者選擇的核心或作業系統
允許傳遞參數給核心
可隱藏此菜單
(3)為菜單提供了保護機制
為標記菜單進行認證
為啟用核心或作業系統進行認證
將grub破壞後,有三種途徑可以修改之!
-
如果grub破壞後沒有重啟,則直接grub-install 如下,如果已經關機了,則可以把壞的系統磁碟分割掛載到好的系統之上,grub-install安裝。
[[email protected]~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G 4.8G 11G 33% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 291M 48M 228M 18% /boot
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
[[email protected]~]# dd if=/dev/zero of=/dev/sda1 bs=200 count=1
1+0 records in
1+0 records out
200 bytes (200B) copied, 0.00160427 s, 125 kB/s
[[email protected]~]# man bs
No manual entryfor bs
[[email protected]~]# man dd
[[email protected]~]# grub-install --root-directory=/ /dev/sda1
ll /boot/grub –d
drwxr-xr-x. 2root root 1024 9月 29 08:35 grub
2、如果只是grub2 壞了,則可以手動設定grub的配置選項,或者在grub命令列重新安裝grub,grub命令列的操作類似於在系統中進入grub650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/73/FE/wKioL1YL6s-Bmu2KAAKNVeXGXfw806.jpg" title="5.png" alt="wKioL1YL6s-Bmu2KAAKNVeXGXfw806.jpg" />
3、再不濟,開機進入到系統救援模式下,安裝配置grub,
(1)首先插入光碟片,進入bios,將光碟片調整為第一啟動,略…,啟動後如下。。。
未提示步驟選擇預設!
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/73/FE/wKioL1YL6uGgNqNFAAGCx5HEljw725.jpg" title="6.png" alt="wKioL1YL6uGgNqNFAAGCx5HEljw725.jpg" />
此處設定不用連網,選no
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/74/01/wKiom1YL6u2RZvQCAACsrsoOEJ0053.jpg" title="11.png" alt="wKiom1YL6u2RZvQCAACsrsoOEJ0053.jpg" />
此處提示,要chroot 切換跟
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/73/FE/wKioL1YL6wqhD0TkAADDlzB_zxQ872.jpg" title="12.png" alt="wKioL1YL6wqhD0TkAADDlzB_zxQ872.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/73/FE/wKioL1YL6xeiV561AAII8zq-pTI542.jpg" title="13.png" alt="wKioL1YL6xeiV561AAII8zq-pTI542.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/74/01/wKiom1YL6yLB4GmyAAB63ORMw28021.jpg" title="14.png" alt="wKiom1YL6yLB4GmyAAB63ORMw28021.jpg" />
切換至bash下,進行grub安裝,安裝後退出重啟
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/73/FE/wKioL1YL62XQdP_UAAHBAoXdPdU083.jpg" title="15.png" alt="wKioL1YL62XQdP_UAAHBAoXdPdU083.jpg" />
重新修改bios就可以重新啟動了!
GRUB原理及修複