grub引导centos

时间:2023-03-08 16:46:17
grub引导centos

下面来主要讲一下在grub下来引导centos;

其步骤如下;

a   进入grub的命令模式。

b  先熟悉一下grub  的一些命令 grub>help

c  熟悉一下cat命令

d  root指令来指定/boot所在的分区

e  kernel指令来指定linux的内核,及所在的分区

f  用initrd命令来指定initr文件

g boot引导系统

cat命令的用法

cat指令是用来查看文件内容的,有时我们不知道Linux的/boot分区,以及/根分区所在的位置,要查看/etc/fstab的内容来得知, 这时,我们就要用到cat (hd[0-n],y)/etc/fstab 来获得这些内容;注意要学会用tab键命令补齐的功能;

grub> cat (     按tab 键会出来hd0或hd1之类的;
grub> cat (hd0, 注:输入hd0,然后再按tab键;会出来分区之类的;
Possible partitions are:
   Partition num: 0,  Filesystem type unknown, partition type 0x7
   Partition num: 4,  Filesystem type is fat, partition type 0xb
   Partition num: 5,  Filesystem type is reiserfs, partition type 0x83
   Partition num: 6,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 7,  Filesystem type unknown, partition type 0x83
   Partition num: 8,  Filesystem type is reiserfs, partition type 0x83
   Partition num: 9,  Filesystem type unknown, partition type 0x82

grub> cat (hd0,6)/etc/fstab 注:比如我想查看一下 (hd0,6)/etc/fstab的内容就这样输入;

LABEL=/                 /                       ext3    defaults        1 1
/dev/devpts             /dev/pts                devpts  gid=5,mode=620  0 0
/dev/shm                /dev/shm                tmpfs   defaults        0 0
/dev/proc               /proc                   proc    defaults        0 0
/dev/sys                /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda1         swap                    swap    defaults        0 0
/dev/hdc                /media/cdrecorder       auto    pamconsole,exec,noauto,
managed 0 0

主要查看/etc/fstab中的内容,主要是Linux的/分区及/boot是否是独立的分区;如果没有/boot类似的行,证明/boot和 /处于同一个硬盘分区;比如上面的例子中LABEL=/ 这行是极为重要的;说明Linux系统就安在标签为LABEL=/的分区中;

如果您的Linux系统/boot和/没有位于同一个分区,可能cat (hd[a-n],y) 查到的是类似下面的;

LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2

root (hd[0-n,y) 指令来指定/boot所在的分区;

其实这个root (hd[0,n],y)是可以省略的,如果省略了,我们要在kerenl 命令中指定;我们前面已经说过 (hd[0-n],y) 硬盘分区的表示方法的用途;主要是用来指定 /boot所在的分区;

eg:

grub> root (hd0,0)

kernel 指令,用来指定Linux的内核,及/所在的分区;

如果/boot有自己独立的分区,应该是;

kernel /vmlinuz在这里按tab键来补齐,就看到内核全称了

grub> kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/  
   [Linux-bzImage, setup=0x1e00, size=0x18e473]

注解: root=LABEL=/ 是Linux的/所在的分区的文件系统的标签;如果您知道Linux的/在哪个具体的分区,用root=/dev/hd[a-z]X来指定也行。比如下面的一行也是可以的;

grub> kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

也可以把/boot所在的分区的指定 root (hd[0-n],y)这行省掉,直接在kernel 中指定/boot所在的分区;所以就在下面的语法;

kernel (hd[0-n],y)/vmlinuz  ro root=/dev/hd[a-z]X
grub> kernel (hd0,0)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7 
   [Linux-bzImage, setup=0x1e00, size=0x18e473]

initrd 命令行来指定initr文件;

如果/boot是独立的一个分区,应该是如下样子的语法;
grub> initrd /initr在这里tab来补齐;
grub> initrd /initramfs-2.6.32-431.e16.x86_64.img
   [initrd, address=0x7ee6c000, size=0xd8face]


boot 引导系统;

grub>boot
参考:http://www.cnblogs.com/top5/archive/2009/09/24/1573564.html