在grub下引导linux;
其步骤如下;
a 进入grub的命令模式。
b 先熟悉一下grub 的一些命令

grub>help

c 熟悉一下cat命令
d root指令来指定/boot所在的分区
e kernel指令来指定linux的内核,及所在的分区
f 用initrd命令来指定initrd文件
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键;会出来分区之类的;
grub> cat (hd0,)
Possible partitions are:
Partition num: , Filesystem type unknown, partition type 0x7
Partition num: , Filesystem type is fat, partition type 0xb
Partition num: , Filesystem type is reiserfs, partition type 0x83
Partition num: , Filesystem type is ext2fs, partition type 0x83
Partition num: , Filesystem type unknown, partition type 0x83
Partition num: , Filesystem type is reiserfs, partition type 0x83
Partition num: , Filesystem type unknown, partition type 0x82
grub> cat (hd0,)/etc/fstab 注:比如我想查看一下 (hd0,)/etc/fstab的内容就这样输入;

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

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

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

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

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

grub> root (hd0,)

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

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

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

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

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

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

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

grub> kernel /boot/在这里按tab键;这样就列出/boot中的文件了;
Possible files are: grub initrd-2.6.-.1369_FC4.img System.map-2.6.-1.1369
_FC4 config-2.6.-.1369_FC4 vmlinuz-2.6.-.1369_FC4 grubBAK memtest86+-1.55
. xen-syms xen.gz grub> kernel /boot/vmlinuz-2.6.-.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.-.1369_FC4 ro root=/dev/hda7

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

如果是/boot和Linux的根同处一个分区;

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

比如:

grub>kernel

如果是/boot和Linux所在的根不在一个分区;则是;

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

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

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

initrd 命令行来指定initrd文件;

grub> initrd /boot/initrd在这里tab 来补齐;
grub> initrd /boot/initrd-2.6.-.1369_FC4.img
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]

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

grub> initrd /initrd在这里tab 来补齐;
grub> initrd /initrd-2.6.-.1369_FC4.img
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]

boot 引导系统;

grub>boot

下面是在我机器上的命令:

grub> cat (hd0,)/etc/fstab
# This file is edited by fstab-sync – see ‘man fstab-sync’ for details
LABEL=/ / ext3 defaults
/dev/devpts /dev/pts devpts gid=,mode=
/dev/shm /dev/shm tmpfs defaults
/dev/proc /proc proc defaults
/dev/sys /sys sysfs defaults
LABEL=SWAP-hda1 swap swap defaults /dev/hdc /media/cdrecorder auto pamconsole,exec,noauto,managed grub> root (hd0,)
Filesystem type is ext2fs, partition type 0x83 grub> kernel /boot/在这里按tab补齐,全列出/boot所有的文件;
Possible files are: grub initrd-2.6.-.1369_FC4.img System.map-2.6.-.1369_FC4 config-2.6.-.1369_FC4 vmlinuz-2.6.-.1369_FC4
memtest86+-1.55. xen-syms xen.gz grub> kernel /boot/vmlinuz-2.6.-.1369_FC4 ro root=LABEL=/
[Linux-bzImage, setup=0x1e00, size=0x18e473] grub> initrd /boot/在这里按tab补齐
Possible files are: grub initrd-2.6.-.1369_FC4.img System.map-2.6.-.1369_FC4 config-2.6.-.1369_FC4 vmlinuz-2.6.-.1369_FC4 grubBAK
memtest86+-1.55. xen-syms xen.gz grub> initrd /boot/initrd-2.6.-.1369_FC4.img 注;输入intrd文件名的全名;
[Linux-initrd @ 0x2e1000, 0x10e685 bytes] grub> boot

grub命令详解的更多相关文章

  1. (转)Linux: dirname、basename命令详解

    Linux: dirname.basename命令详解 原文:http://blog.sina.com.cn/s/blog_3f63916f010143vo.html 一.dirname指令 1.功能 ...

  2. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  3. linux yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  4. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

  5. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  6. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  7. android adb 命令详解

    ADB (Android Debug Bridge)  是android SDK中的工具,需要先配置环境变量才能使用.起调试桥的作用,可以管理安卓设备.(也叫debug工具) ---------查看设 ...

  8. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  9. Top 命令详解

    Top 命令详解 先感受一下top命令的执行结果吧!哈哈-- top - 17:32:34 up 3 days, 8:04, 5 users, load average: 0.09, 0.12, 0. ...

随机推荐

  1. xshell几个常用命令以及注意事项:

    xshell几个常用命令以及注意事项: cd .. 回到上级目录 cd xx 进入xx目录 rm xx 删除文件xx rm -rf 删除目录及其所包含的所有文件,高危命令,一定谨慎 mkdir xx ...

  2. DomainObjectUtility

    using System; using System.Collections; using System.Collections.Generic; using System.Collections.S ...

  3. 15. Jmeter-配置元件二

    jmeter-配置元件介绍与使用 JDBC Connection Configuration Java请求默认值 密钥库配置 LDAP Extended Request Defaults LDAP请求 ...

  4. 【软件安装】——Robot Framework

    Robot Framework安装(win10) 一. 安装python 1.安装python2.7到本地,双击安装包进行安装,一般放入D盘,文件名默认Python27: 安装完成后进行版本检验,调出 ...

  5. JNDI数据源的配置及使用

    数据源的作用JDBC操作的步骤:  1. 加载驱动程序  2. 连接数据库  3. 操作数据库  4. 关闭数据库,释放连接 也就是说,所有的用户都需要经过此四步进行操作,但是这四步之中有三步对所有人 ...

  6. C++中的函数重载分析(二)

    1,重载与指针: 1,下面的函数指针将保存哪个函数的地址? int func(int x) { return x; } int func(int a, int b) { return a + b; } ...

  7. GMTC全球大前端技术大会-未来已来

    GMTC-2019北京 GMTC这次的大会的热词肯定是监控.性能,当然跨平台依然是热点,write once,run anywhere!,以下是自己参加的总结心得. 6.20上午 前端的演化 核心理念 ...

  8. 微服务-技术专区-监控专区(Skywalking与Pinpoint) - 监控对比分析

    由于公司目前有200多微服务,微服务之间的调用关系错综复杂,调用关系人工维护基本不可能实现,需要调研一套全链路追踪方案,初步调研之后选取了skywalking和pinpoint进行对比; 选取skyw ...

  9. python介绍(变量,if,while)

    python介绍(变量,if,while): python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹 打发时间,决心开发一个新 ...

  10. shell 脚本学习(一)

    一.vi编辑器的常用指令 1.命令行模式 x   #删除一个字符 dd #删除一整行 2.插入模式 i #在光标前插入内容 o   #在当前行之下新开一行 3.底行模式 x 或者 wq  #保存退出 ...