grub命令用法

来源:互联网 发布:android listview优化 编辑:程序博客网 时间:2024/05/17 06:25

转载自:http://hi.baidu.com/realxfliu/item/ada75740c18b6ff5dc0f6c8b

 

用命令行来引导Linux操作系统的步骤

通过命令行来引导操作系统的流程,也没有什么难的;无非是把指令手工输入到grub>提示符的后面;在这个过程中,tab键的命令补齐功能就显得很重要了。如果您不知道有哪些命令,可以输入help

 

1)进入GRUB的命令行模式 grub>

如果开机时,GRUB出现的是grub>,说明你没有/etc/grub/menu.lst,您需要自己写一个才会GRUB的菜单,让我们来选择进入哪个系统。如果有GRUB的菜单,您可以按Ctrl+c组合键进入GRUB的命令行模式,会出现grub> 提示符;

grub>

 

2)获取帮助GRUB help

只要您在grub>提示符的后面输入help就能得到GRUB所有的命令提示;

grub> help

blocklist FILEboot

cat FILEchainloader [--force] FILE

clear colorNORMAL [HIGHLIGHT]

configfile FILEdevice DRIVE DEVICE

displayapmdisplaymem

find FILENAMEgeometry DRIVE [CYLINDER HEAD SECTOR [halt [--no-apm] help [--all] [PATTERN...]

hide PARTITIONinitrd FILE [ARG ...] kernel [--no-mem-option] [--type=TYPE]

makeactive mapTO_DRIVE FROM_DRIVE md5crypt

module FILE[ARG ...] modulenounzip FILE [ARG ...]

pager [FLAG]partnew PART TYPE START LEN

parttype PARTTYPE quit

reboot root[DEVICE [HDBIAS]]

rootnoverify[DEVICE [HDBIAS]] serial [--unit=UNIT] [--port=PORT] [--setkey [TO_KEYFROM_KEY] setup [--prefix=DIR] [--stage2=STAGE2_terminal [--dumb] [--no-echo][--no-ed terminfo [--name=NAME --cursor-address

testvbe MODEunhide PARTITION

uppermemKBYTES vbeprobe [MODE]

如果需要得到某个指令的帮助,就在 help后面空一格,然后输入指令,比如;

grub>help kernel

 

3cat的用法;

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

grub> cat (tab键会出来hd0hd1之类的;

grub> cat(hd0,注:输入hd0,然后再按tab键;会出来分区之类的;

grub> cat(hd0,6)

Possiblepartitions 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

有的弟兄可能会说,我不知道Linux安装在了哪个分区。那根据文件系统来判断一个一个的尝试总可以吧我;只要能cat/etc/fstab就能为以后引导带来方便;

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

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

LABEL=/ / ext3defaults 1 1

LABEL=/boot/boot ext3 defaults 1 2

 

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

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

比如我们确认/boot (hd0,6),所以就可以这样来输入root (hd0,6)

grub> root (hd0,6)

如果发现不对,可以重新来过;没有什么大不了的;

 

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

kernel这个指令可能初学者有点怕,不知道内核在哪个分区,及内核文件名的全称是什么。不要忘记tab键的命令补齐的应用;

如果我们已经通过root (hd[0-n],y)指定了/boot所在的分区,语法有两个:

如果/bootLinux/位于同一个分区,应该是下面的一种格式;

kernel /boot/vmlinuz在这里按tab键来补齐,就看到内核全称了 roroot=/dev/hd[a-z]X

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

kernel /vmlinuz在这里按tab键来补齐,就看到内核全称了 roroot=/dev/hd[a-z]X

在这里root=/dev/hd[a-z]XLinux/根所位于的分区,如果不知道是哪个分区,就用tab出来的来计算,一个一个的尝试;或用cat (hd[0-n],y)/etc/fstab 中得到Linux/所在的分区或分区的标签;

grub>kernel /boot/在这里按tab键;这样就列出/boot中的文件了;Possible files are: grub initrd-2.6.11-1.1369_FC4.imgSystem.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4grubBAK memtest86+-1.55.1 xen-syms xen.gz

grub> kernel /boot/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 /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

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

如果是/bootLinux的根同处一个分区;

kernel (hd[0-n],y)/boot/vmlinuz ro root=/dev/hd[a-z]X

比如:

grub>kernel

如果是/bootLinux所在的根不在一个分区;则是;

kernel(hd[0-n],y)/vmlinuz ro root=/dev/hd[a-z]X

grub>kernel  (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 roroot=/dev/hda7    [Linux-bzImage, setup=0x1e00, size=0x18e473]

或下面的输入,以cat/etc/fstab内容为准;

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

 

6initrd命令行来指定initrd文件;

grub>initrd /boot/initrd在这里tab来补齐;

grub>initrd /boot/initrd-2.6.11-1.1369_FC4.img [Linux-initrd @ 0x2e1000, 0x10e685bytes]

如果/boot是独立的一个分区,应该是如下样子的语法;比如下面的;

grub>initrd /initrd在这里tab来补齐;

grub>initrd /initrd-2.6.11-1.1369_FC4.img [Linux-initrd @ 0x2e1000, 0x10e685 bytes]

 

7boot引导系统;

grub>boot2、通过GRUB指令来引导Windows

其实我们会写menu.lst了,在menu.lst中的除了title外,都是一条条指令;如果我们启动Windows,只是输入指令就行了;

比如 Windows的分区在 (hd0,0),我们在开机后,按ctrl+c,进入GRUB的命令模式;就可以用下面的

grub>rootnoverify (hd0,0)

grub>chainloader +1

grub> boot

0 0
原创粉丝点击