GRUB使用详解

 

 

. 了解一下x86 的引导过程

机器加电启动后,BIOS 开始检测系统参数, 如内存的大小, 日期和时间, 磁盘设备以及这些磁盘设备引导的顺序。通常情况下,BIOS 都是被配置成首先检查软驱或光驱(或两者都检查),然后再尝试从硬盘引导。假如在这些可移动的设备中,没有找到可引导的介质,那么BIOS 通常是转向第一块硬盘最初的几个扇区,寻找用于装载操作系统的指令。装载操作系统的这个程序就是启动装载程序boot loader 。 

LINUX  里的boot loader 便是LILO   或者是GRUB

   装载GRUB 和操作系统的过程,包括以下几个操作步骤:

1. 装载基本的引导装载程式 (stage1) s tage1 只有512 字节,stage1 通常装载到主引导扇区里面, 对于硬盘就是MBR,stage1 的主要功能就是装载第二引导程式 (stage2). 这主要是归结于在主引导扇区中没有足够的空间用于其他东西了。
2.
装载第二引导装载程式 (stage2) 这第二引导装载程序实际上也是引出更高级的功能 , 以允许用户装载入一个特定的操作系统。在 GRUB 中,这步是让用户显示一个菜单或是输入命令。 由于stage2 很大(100KB 左右), 所以他一般位于文档系统之中( 通常是boot 所在的根分区)

  3 、装载在一个特定分区上的操作系统,如linux 内核。GRUB 把机器的控制权移交给操作系统。

  不同的是,微软操作系统都是使用一种称为链式装载的引导方法来启动的,主引导记录仅仅是简单地指向操作系统所在分区的第一个扇区。

.grub 下的设备名称

  •   硬盘都是用hd 开始(Grub 并不区分普通的 IDE 硬盘、当下流行的 SATA 硬盘和 SCSI 硬盘等 )

  (hd0,0) ,表示C 盘,(hd0,1),(hd0,2),(hd0,3) 表示另外的3 个主分区(基本分区)。

  (hd0,4) ,表示D 盘。

  总的来说对于硬盘 , 采用 (hdx,y) 的形式来表示, x y 都是从 0 开始计数的, x 表示硬盘号, y 表示分区号。

  

  •   软盘用 fd 开头。

 

linuxgrub 的命名不大一样:1. 分区号是从1 算起 2. 硬盘号用a,b,c 等表示。 3. 区分硬盘类型( 普通IDE 硬盘为hd SATA,SCSI 硬盘为sd)

(hd0,0)

(hda,1)

(hd0,4)

(hda,5)

(hd0,5)

(hda,6)

 

 

(hd1,0)

(hdb,1)

...

....

 

.GRUB 的根文件系统

  一些用户常困惑于GRUB 中根文件系统(root filesystem) 这一术语的用法。GRUB 的根文件系统与Linux 的根文件系统是没有关系的!

.grub 的接口

   GRUB 环境开始载入第二步引导装载程序时,它寻找自己的配置文件( menu.lst )。当找到配置文件后,它使用这个配置文件建立一个要载入的操作系统的菜单列表, 然后显示引导菜单接口。如果配置文件没有被找到,或者如果配置文件不能读取,那么 GRUB 将载入命令行接口。

 

(一)菜单接口

  在菜单接口上,按[e] 键,对高亮菜单项中的命令进行编辑。按[c] 键载入一个命令行接口。添加( 加在当前行后面,用[o] 键;加在当前行前,用[0]) ,编辑([e]) ,删除([d])

  在所有的改变都完成后,用键来执行这些命令,并引导操作系统。[Esc] 键来放弃

  命令行接口

 

(二)命令接口


  

  以下是几个常用命令:

  boot - 引导先前已经被指定并载入的操作系统或链式装载程序。

  chainloader - 将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第一扇区内的文件,使用+1 作为文件名。

  displaymem - 显示当前内存的使用情况,这个信息是基于BIOS 的。这个命令有助于确定系统在引导前有多少内存。

  initrd - 使用户能够指定一个在引导时可用的初始RAM 盘。当内核为了完全引导而需要某些模块时,这是必需的。

  install p - 安装GRUB 到系统的主引导记录。这个命令允许系统重启时出现GRUB 接口。

  (警告:install 命令将覆盖主引导扇区中的其他信息。如果命令被执行,那么除了GRUB 信息之外的其他用于引导其他操作系统的信息都将丢失。在执行这条命令前,确定你对它有正确的了解。)

  kernel - 当使用直接载入方式引导操作系统时,kernel 命令指定内核从GRUB 的根文件系统中载入。

  比如 kernel /vmlinuz root=/dev/hda5

  Vmlinuz 是内核。。它从GRUB 的根文件系统载入的,如(hd0,0) 。同时,后面一个选项被传给内核。它指出当Linux 内核载入时,内核的根文件系统应该是位于hda5 ,第一个IDE 硬盘的第五个分区。

.Menu.lst 的命令

  

  color - 设定在菜单中使用的颜色,一种是作为前景色,一种作为背景色。可以简单地使用颜色名称,如red/black 。比如:

  color red/black green/blue

  default - 默认项目的标题名称。如果菜单接口超时,那它将被载入。

  fallback - 当这个命令被使用时,如果第一次尝试失败,那么这个项目的标题名称将被试用。

  hiddenmenu - 这个命令被使用时,它不显示GRUB 菜单接口,在超时时间过期后载入默认项。用户通过按[Esc] 键,可以看到标准的GRUB 菜单。

  timeout - 这个命令设定了在GRUB 载入由default 命令指定的项目前的时间间隔,以秒为单位。

  splashimage - 它指定在GRUB 引导时所使用的屏幕图像的位置。

  title - 设定用来装载一个操作系统的一组特定命令的标题。

  字符# 用来在菜单配置文件放置注释。(T002)

六。例子

  这是个非常基本的用于引导Red Hat LinuxMicrosoft Windows 2000GRUB 菜单配置文件可能如下所示:

  default=linux

  timeout=10

  color=green/black light-gray/blue

  # section to load linux

  title linux

  root (hd0,1) 这里制定了 grub 的根。并且挂载。

  kernel /vmlinuz root=/dev/hda5 内核是grub 根下的vmlinuz

  并且内核载入后,内核的根是在/dev/hda5

  boot

  # section to load Windows 2000

  title windows

  rootnoverify (hd0,0) rootnoverify 就是指定根,但是不要挂载。

  chainloader +1 使用(hd0,0) 的第一扇区来引导。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值