grub命令详解
在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命令详解的更多相关文章
- (转)Linux: dirname、basename命令详解
		
Linux: dirname.basename命令详解 原文:http://blog.sina.com.cn/s/blog_3f63916f010143vo.html 一.dirname指令 1.功能 ...
 - Git初探--笔记整理和Git命令详解
		
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
 - linux yum命令详解
		
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...
 - Linux下ps命令详解 Linux下ps命令的详细使用方法
		
http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...
 - Docker命令详解
		
Docker命令详解 最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...
 - linux awk命令详解
		
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
 - android adb 命令详解
		
ADB (Android Debug Bridge) 是android SDK中的工具,需要先配置环境变量才能使用.起调试桥的作用,可以管理安卓设备.(也叫debug工具) ---------查看设 ...
 - Git 常用命令详解
		
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
 - Top 命令详解
		
Top 命令详解 先感受一下top命令的执行结果吧!哈哈-- top - 17:32:34 up 3 days, 8:04, 5 users, load average: 0.09, 0.12, 0. ...
 
随机推荐
- xunit的assert常用部分方法解释
			
布尔:True(返回bool的方法或者字段) 判断是否为trueFalse(返回bool的方法或者字段) 判断是否为false 字符串(区分大小写):Equal(期待结果,实际结果) 判断输出值和期待 ...
 - rm -rf无法删除文件解决方法
			
# 列出 file.sh 文件的属性 lsattr file.sh # 列出当前目录下所有文件以及文件夹的属性 lsattr # 为 file.sh 文件增加 i 标识 chattr +i file. ...
 - 测开之路四十三:ajax请求
			
ajax固定套路 function http(url, data, method, success, fail) { data = method == 'GET' ? data : JSON.stri ...
 - mysql linux下安装部署
			
一.安装简介 用户名:mysql安装目录:/usr/local/mysql-5.5数据库目录:/data/mysql/data源码包:mysql-5.5.28.tar.gz 二.安装准备 a.vi / ...
 - android ndk 编译 libevent
			
1. 下载 libevent 2.1.8 版本 https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/ ...
 - CentOS7版本中locate: 未找到命令,详细解决方案
			
在学习Linux(CentOS7)文件搜索命令:locate 时,遇到错误“locate: 未找到命令”. 原因:CentOS7默认没有安装该命令 解决方案: 1.安装"locate&quo ...
 - select 和 order by
			
select 的优先级要高于order by,相当于是select先创建了一个临时表,再通过临时表去排序.所以,对于一些sum()的汇总,在进行排序,实际是排序的select后的字段,而不是表里的那个 ...
 - FTP上传下载文件(函数简易版)
			
FTP上传下载文件(函数简易版) # 服务端 import socket import json import hashlib import struct import os user_dic = { ...
 - qt 如何使用 lamda 表达式接收线程中发射的数据,并在里面更新 UI ?
			
Qt 信号和槽连接方式 常量 描述 Qt::AutoConnection (默认)如果接收方位于发出信号的线程中,则使用Qt::DirectConnection.否则,使用Qt::QueuedConn ...
 - C#设计模式:模板方法模式(Template Method)
			
一,我们为什么需要模板设计模式? 在程序设计中,可能每个对象都有共同的地方,而此时如果每个对象定义一次,如下例子,每个对象都写Stay()方法,这样在每个类中都有很多相同的代码,此时,我们需要用到模板 ...