第二及第三步能够经过 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 来访问它们。
最新最先最热