第二及第三步能夠經過 grub-install 單一個指令來完成。 另外,第二步亦可經過 grub 這個指令來完成。linux
Grub 按如下方式爲碟盤及分區命名:shell
樣例:vim
Grub 稱謂 | 意思 | 廣泛稱謂 |
(hd0) | 第一個碟盤 | /dev/sda(或/dev/hda) |
(hd1) | 第二個碟盤 | /dev/sdb(或/dev/hdb) |
(hd0,0) | 第一個碟盤,第一個分區 | /dev/sda1(或/dev/hda1) |
(hd1,0) | 第二個碟盤,第一個分區 | /dev/sdb1(或/dev/hdb1) |
(hd1,1) | 第二個碟盤,第二個分區 | /dev/sdb2(或/dev/hdb2) |
建立或編輯 /boot/grub/grub.conf 配置文件windows
首先,你應該建立或編輯 /boot/grub/grub.conf 這個配置文件。 要是你的碟盤不曾安裝 Grub 開機程序,你應該先建立配置文件,而後才安裝開機程序。centos
在某些發行版本下,配置文件名爲 /boot/grub/menu.lst。在 CentOS 下,/boot/grub/menu.lst 是條連結,它指向正式配置文件 /boot/grub/grub.conf。數組
此文件含有如下信息:工具
樣例:ui
(請勿輸入行首的數字。它們索引樣例檔後的解釋。)this
1spa 2 3 4 5 6 7 8 9 10 11 12 13 |
|
倘若你把 /boot 放在獨立的分區內,請參閱如下的備註。 XStar: root (hd0,0)指令指向boot分區位置; kernel、initrd位置是以boot分區爲起點計算; kernel指令中root參數主分區應指向系統根分區。
解釋:
kernel行包含如下 5 部份:
kernel /boot/vmlinuz-2.6.18-238.19.1.el5.centos.plusPAE | 以 慣用的命名方式 指出 內核(vmlinuz) 的位置。 |
ro | 首先以 ro(只讀)方式掛載分區,以便在有須要時執行 fsck。 |
root=/dev/sda6 | 以 慣用的命名方式 指出 主分區 的位置。你也可經過文件系統的 UUID(通用惟一標識碼)來指定主分區,例如:root=UUID=134d2a24-2699-4b0c-823b-1e13633f3b07。CentOS 如今缺省採用 UUID。你能夠利用這個指命來找出一個文件系統的 UUID:tune2fs -l /dev/sda6,或lsblk,blkid。 |
rhgb | 採用圖像式開機(Red Hat 圖像式開機)。須要文字模式開機時可刪除。 |
noquiet | 輸出詳細信息。刪除後可減低詳細度。 |
當可行時,安裝 Grub 的最簡易方法是利用 grub-install 這個指令。
此指令將會:
樣例:
指令 | 含意 |
grub-install /dev/sda | 在現有分區的 /boot/grub 目錄內安裝 Grub 的文件。在首個碟盤的主引導記錄(MBR)內安裝開機程序。這是安裝 Grub 的推薦方式。 |
grub-install /dev/sda1 | 在現有分區的 /boot/grub 目錄內安裝 Grub 的文件。在首個碟盤的第一個分區內安裝開機程序。 |
grub-install /dev/sda2 | 在現有分區的 /boot/grub 目錄內安裝 Grub 的文件。在首個碟盤的第二個分區內安裝開機程序。 |
1 2 3 4 5 6 7 8 9 |
|
新版的grub-install命令指定安裝目錄時再也不使用--root-directory選項,改成 --boot-directory選項,安裝文件不是安裝在指定目錄的/boot/grub下,而是安裝在指定目錄的/grub下,具體用法爲:
grub-install --boot-directory=DIR Install-Device
舉個例子說明,若是 /boot分區爲 sda7,/ 分區爲 sda8,在使用 livecd 模式修復grub2到mbr時使用的命令爲
1 2 3 4 5 6 7 8 9 10 11 12 |
|
你也可利用 grub 這個指令來安裝開機程序,它卻不會在 /boot/grub 內安裝 Grub 的文件。要是開機程序被蓋過或損壞了,此方法可修復 Grub 的安裝。
樣例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
要是你的 /boot 放在獨立的分區內,/boot/grub/grub.conf 內以 root、kernel 及 initrd 起首的行必須有下列改動:
XStar: root (hd0,0)指令指向boot分區位置; kernel、initrd位置是以boot分區爲起點計算; kernel指令中root參數主分區應指向系統根分區。
樣例:
/boot 的分區是 /dev/sda1,或 hd(0,0)。/ 的分區是 /dev/sda2,或 hd(0,1)。/boot/grub/grub.conf 檔須含有下列設置:
title CentOS 5.6 i686 root (hd0,0) kernel /vmlinuz-2.6.18-238.19.1.el5.centos.plusPAE ro root=/dev/sda2 initrd /initrd-2.6.18-238.19.1.el5.centos.plusPAE.img
要使用 Grub 來引導一個 Windows 分區,請在 /boot/grub/grub.conf 加入相似如下的內容:
樣例:
title Windows rootnoverify (hd0,0) makeactive chainloader +1
新版的grub2能夠用ntldr命令引導windows,對同時安裝有xp和win7的朋友能夠用自定菜單來分別引導xp和win7。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
倘若你曾經從備份磁帶修復你的系統(例如經過 dump 或 tar),或者安裝了一個好像來自 Redmond 般會蓋過主引導記錄(MBR)的操做系統,你便需要修復開機管理程序。
請執行下列步驟:
1 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|
Super Grub Disk 收錄了各類開源的開機修復程序。就 CentOS 的舊版 GRUB 而言,SuperGRUB 很是實用。
http://www.supergrubdisk.org/wiki/SGD_Howto_make
Boots into many systems and GRUB2 ones! Loads Grub legacy confs (menu.lst) Optional LVM / RAID support ~ 7.00 MB Size
Includes Super Grub2 Disk Fixes GRUB / GRUB2 Check and fix filesystems Blank Windows password Change Gnu/Linux password Regenerate sudoers file And much more features… ~ 367 MB Size
Rescatux是debian系列系統 (Ubuntu, Linux Mint 等) 下的圖形化Grub/Grub2修復工具。Rescatux的最新版支持文件系統的檢測。
要想使用Rescatux,首先把它刻錄到CD或者USB啓動上,重啓,從 Live CD/USB 或啓動,會自動彈出Grub 恢復界面。
選擇「grub-install」,恢復Grub菜單,後運行「update-grub」.重啓計算機。
你可在開機程序內直接輸入 Grub 的指令。在開機選單按 c,而後輸入那些出如今 /boot/grub/grub.conf 配置文件內的 Grub 指令。
當配置文件出錯時,這個功能頗有用。
樣例:
grub> find /boot/grub/stage1 (hd0,5) grub> root (hd0,5) grub> kernel /boot/vmlinuz-2.6.18-238.19.1.el5.centos.plusPAE ro root=/dev/sda6 grub> initrd /boot/initrd-2.6.18-238.19.1.el5.centos.plusPAE.img grub> boot
你也能夠經過 e 這個指令在 Grub 開機程序內編輯 /boot/grub/grub.conf 內的某行。
舉個例說,要令 Linux 以單一用戶模式(runlevel 1)引導,編輯含有 kernel 的那一行並在行末加入 1。按着按 b 來引導它。
在grub>狀態下輸入時,可以使用tab鍵自動被全來嘗試正確的參數。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
另外,在vim編輯grub.conf時,使用':.!'命令能夠方便地將命令內容追加至當前位置:
1 2 3 4 5 6 7 8 9 10 |
|
倘若一個系統的 GRUB 設置出現問題(成因包括:不正確地修改 GRUB 配置文件、安裝另外一個操做系統、硬件上或 BIOS 內的改動引致設置的排序不相同),致使 GRUB 不能找到它的配置文件,你可能會面對 grub 的開機提示符而無從着手。廣泛來講,第一步是要找出 GRUB 配置文件的位置。GRUB 的 find 指令能夠爲你效努。
1 2 3 4 |
|
這裏告欣咱們有兩個 /boot 分區,有可能源自軟件 RAID 或不一樣操做系統。頭一個位於第一個硬盤的第三個分區,而另外一個位於第二個硬盤的第三個分區。
若是你安裝了其它 Linux 版本,例如 Ubuntu,它也設只有 menu.lst 檔而沒有 grub.conf,但因爲 CentOS 利用連結把 menu.lst 指向 grub.conf,所以在這兩款系統上尋找 menu.lst 亦可行:
1 2 3 4 |
|
這裏告欣咱們有兩個 /boot 分區,頭一個位於第一個硬盤的第一個分區,極可能正是 CentOS,而另外一個 Linux 的 /boot 位於第一個硬盤的第二個分區。
要是首輪嘗試找不到文件,極可能 /boot 分區並不存在,而 grub 被安裝在主目錄內。你可試用
1 2 3 |
|
一樣地,這個例子裏有兩個 GRUB 安裝。頭一個在第一個硬盤的第一個分區,而另外一個在第二個硬盤的第五個分區 —— 亦即首個擴展分區。
若果要撤消第二個項目並將 GRUB 的開機程序安裝在第一個硬盤的 MBR 上:
1 2 |
|
要是你不清楚主目錄的位置時,你能夠嘗試尋找 /etc 內的一個文件。譬如:
1 2 3 |
|
由此咱們得知 / 位於第一個硬盤的第二個分區上 —— 採用 SCSI 或 SATA 等於 /dev/sda2,而採用 PATA 等於 /dev/hda2。
要查看 grub.conf 及 menu.lst 檔的內容,可以使用 GRUB 的 cat 指令:
1 2 3 4 |
|
倘若要將第一個項目的 GRUB 設置從新安裝到 MBR:
1 2 |
|
GRUB 的指令shell還有不少功能,而且在 GRUB 的 info 檔內有詳情記載,請利用 info grub 來訪問它們。
最新最先最熱