GRUB基本使用介绍

转自   http://tech.ccidnet.com/art/3089/20070413/1061367_1.html

GRUB 是一个多重开机管理工具,它可用来激活Linux、BSD、OS/2、BeOS与Windows95/98/NT等众多操作系统,GRUB是一个独立于操 作系统之外的开机程序,并不像LILO是依靠Linux才能进行设定与维护,也提供了类似Bash的命令列模式,让使用者更方便地设定GRUB。
  
  取得与安装GRUB:
  
  GRUB的原始码压缩档可至GNU的ftp站台( ftp://alpha.gnu.org/gnu/GRUB/ )下载最新版本 ,下载回来后可存放在/usr/local/src/目录下并将其解压缩:
  
  cp grub.tar.gz /usr/local/src/
  
  tar zxvf grub.tar.gz
  
  在GRUB的目录下执行configure文件、make与make install,如下:
  
  ./configure
  
  make
  
  make install
  
  当make install完成后GRUB也已顺利安装完毕,并有三个指令文件也被安装至系统中:grub、grub-install与mbchk。而GRUB的相关档案通常被安装到/usr/local/share/grub的目录下。
  
  接下来先假设硬盘分割如下:
  
  hda1:Windows98 (hd0,0)
  
  hda2:Slackware Linux (hd0,1)
  
  hdb1:Mandrake Linux (hd1,0)
  
   注意的是GRUB认硬盘的方式跟Linux是不一样的,在Linux中第一颗IDE硬盘是hda(SCSI:sda)以此类推,而GRUB则将第一颗 IDE硬盘视为hd0(SCSI:sd0)以此类推;在Linux中第一颗IDE硬盘的第一个分割区是hda1(SCSI:sda1)以此类推,而 GRUB将第一颗IDE硬盘的第一个分割区表示为hd0,0(SCSI:sd0,0)以此类推。
  
  制作GRUB激活磁盘:
  
  制作GRUB激活磁盘其实不难,首先需要两个必备档案,分别是stage1与stage2,可以在GRUB的安装目录下的i386-pc目录中找到这两个档案,以及一片已格式化的干净磁盘,然后依照下面的制作步骤就可制作出GRUB的激活磁盘:
  
  cd /usr/local/share/grub/i386-pc/
  
  dd if=stage1 of=/dev/fd0 bs=512 count=1
  
  dd if=stage2 of=/dev/fd0 bs=512 seek=1
  
  制作好了GRUB的开机磁盘之后,就可以试着使用GRUB来进行多重操作系统的开机激活。
  
  利用GRUB开机磁盘激活系统:
  
   接着重新激活系统并设定BIOS由磁盘开机,然后就可以看到grub>的命令列正等待指令,这就是GRUB的命令列环境,表示GRUB已顺利地从 激活磁盘加载并正常运作当中了。现在假设要激活上述的Slackware Linux的话,在GRUB提示符号下键入如下的指令,如此就会进入Slackware Linux系统:
  
  grub> root (hd0,1)
  
  grub> kernel /boot/vmlinuz root=/dev/hda2 ro
  
  grub> boot
  
   root指令会mount后面参数的硬盘分割区位置。当mount完成后kernel指令会加载其参数的系统核心,Linux的核心通常是在/boot 目录下名为vmlinuz的档案。最后的两个参数都是要传给刚加载的核心,root=/dev/hda2是告诉核心根目录的位置是在/dev/hda2, 并要求挂载成只读(ro)。
  最后执行boot指令以进行Slackware系统的开机激活。同理,位在hdb1上的Mandrake Linux也可以用类似的方式激活:
  
  grub> root (hd1,0)
  
  grub> kernel /boot/vmlinuz root=/dev/hdb1 ro
  
  grub> boot
  
   现在root指令改mount (hd1,0)的分割区,此分割区就是Mandrake Linux的根目录位置。然后kernel指令加载Mandrake的核心文件,告诉核心Mandrake系统的根目录是在/dev/hdb1,并要求挂 载成只读。最后以boot指令进行系统的激活。
  
  以上的方式都可以顺利地激活Linux系统,但是对Windows系统可是不管用的,要激活在hda1上的Windows98的话,则要换些指令才行得通,请在GRUB命令列中依序键入下列指令就可以进入Windows98:
  
  grub> rootnoverify (hd0,0)
  
  grub> chainloader +1
  
  grub> makeactive
  
  grub> boot
  
   以rootnoverity指令让GRUB不要mount (hd0,0)的分割区,只要知道待会是要激活此分割区上的操作系统。chainloader +1的意思是指定此分割区上的第一个扇区来做激活。makeactive指令是要在此分割区上设定active的旗标,只要是Windows的操作系统都 是要这么做的。最后以boor指令进行开机。
  
  使用硬盘上的GRUB开机激活:
  
  GRUB的开机磁盘固然方便好用,但制作GRUB开机磁盘的目的只在于系统救援之用,要能确实享用GRUB的强大功能,最好是可以用硬盘上的GRUB来进行开机,就像LILO一样安装到硬盘的MBR上。
  
   首先要在系统上建立GRUB专用的开机目录/boot/grub,如同制作GRUB的开机磁盘一样须要stage1文件和stage2檔,所以请把 GRUB安装目录下的i386-pc目录中的stage1文件和stage2檔copy到刚刚建立的/boot/grub目录底下:
  
  mkdir /boot/grub
  
  cp /usr/local/share/grub/i386-pc/stage* /boot/grub
  
  完成之后键入指令GRUB指令进入GRUB命令列环境,在GRUB命令列环境里键入如下的指令:
  
  grub> root (hd0,2)
  
  grub> setup (hd0)
  
  grub> quit
  
   如此即可完成GRUB在/boot/grub中的开机设定,先用root指令mount目录/boot/grub所在的位置,其中的(hd0,2)就是 指上面假设的Slackware系统,也就是说/boot/grub目录是在Slackware系统中所建立的。所若是要改成由Windows98来放置 GRUB的stage档的话,就要在Windows98的系统上建立/boot/grub的目录,并将stage1檔和stage2檔存放在 Windows98上的/boot/grub目录里,而root指令的参数也要改为Windows98所在的分割区,也就是上面假设的(hd0,0)。第 二个指令setup是指要将GRUB安装在哪个位置来开机激活,如果是要安装到硬盘的MBR上的话只须加上硬盘的位置如(hd0),若是要安装到硬盘第一 个分割区上的第一个扇区的话就要加上分割区的位置如(hd0,0)。
  
  除非是有特殊的情况,不然最好是装在硬盘的分割区上较安全。最后使用quit指令离开GRUB命令列环境。
  
  使用选项清单:
  
   现在虽然可以用GRUB来做多重开机的管理,但每次都要输入繁杂的指令也不方便,因此GRUB也提供了选项清单的方式,让每次开机时只须按上下键选择要 开机的系统再按下Enter键即可进行开机而不必再输入任何的指令。GRUB在开机时会先寻找/boot/grub目录下的menu.lst档,找到的话 GRUB就会依照menu.lst文件的内容显示一个选项清单的图形接口,让使用者选择要开机的操作系统。
  
  首先在/boot/grub目录下建立一个新档名为menu.lst,底下是menu.lst文件的设定范例:
  
  #/boot/grub/menu.lst
  
  timeout 30
  
  default 0 #Default Slackware Linux
  
  fallback 1 #Windows98
  
  fallback 2 #Mandrake Linux
  
  color light-green/brown blink-red/blue
  
  # For booting Slackware Linux
  
  title Slackware
  
  root (hd0,1)
  
  kernel /boot/vmlinuz root=/dev/hda2 ro
  
  #For booting Windows
  
  title Windows98
  
  rootnoverify (hd0,0)
  
  chainloader +1
  
  makeactive
  
  #For booting Mandrake Linux
  
  title Mandrake
  
  root (hd1,1)
  
  kernel /boot/vmlinuz root=/dev/hdb1 ro
  
   上面menu.lst文件的范例是针对之前所假设的硬盘分割区上配置的操作系统而设定的。menu.lst是以#符号当作注解的开头,GRUB会忽略所 有以#符号启始的注解行。timeout指令是指GRUB激活之后的等待时间,以秒为单位,所以上面的范例就是等待30秒的意思。default指令就是 当GRUB激活之后等待的时间超过指令timeout所设定的时间的话,就会指令default后面参数所指定的系统,参数0代表menu.lst文件中 第一个被设定的操作系统,以上面的范例而言就是指Slackware Linux,因为它是最先被设定的,如果参数改为1的话就是激活Windows98,以此类推。fallback指令是指当GRUB激活指令 default所指定的操作系统失败的话,便会激活指令fallback所指定的操作系统,以上面的范例而言,当Slackware激活失败的话GRUB 就会激活fallback所指定的便是Windows98。指令color可以设定GRUB选项清单的前景/背景的颜色,有关GRUB可以指定的颜色可以 查看GRUB的info文件。接下来的指令就是设定操作系统,指令title可以设定该操作系统的标题。
  
  设定好menu.lst文件后,将此设定文件存在/boot/grub目录底下即可,然后重新开机便会看到GRUB漂亮的选项清单,现在就可以试着激活不同的操作系统了。
  
  以上是GRUB的基本使用说明,当硬盘上有许多的操作系统时,使用GRUB是理所当然的,并且是正确的选择,就算硬盘上只有一两种操作系统也可以使用GRUB。当然GRUB的功能是很强大的,已足以取代传统的LILO,可以多阅读GRUB的info文件里面的说明。

GRUB基本使用介绍相关推荐

  1. Linux系统的grub.cfg文件损坏修复

    Linux系统的grub.cfg文件损坏修复 一.grub.cfg文件介绍 1.grub.cfg文件位置 2.grub.cfg文件作用 3.系统启动流程介绍 二.grub.cfg文件损坏,系统开机启动 ...

  2. [Linux 学习] grub 引导文件

    功能模块 命令模块[command.lst] :  提供了各种不同的功能,类似标准Unix命令,一共将近100个.例如:cat cpuid echo halt lspci   chainloader ...

  3. wingrub命令行启动深度linux,GRUB(包括WINGRUB)命令行模式引导安装Linux

    目录 1.GRUB简介: 2.GRUB版本的介绍: 3.关于GRUB的相关文档: 4.通过GRUB引导安装Linux的方法: 4.1 从Linux的安装盘中提取vmlinuz和initrd.img文件 ...

  4. wingrub命令行启动深度linux,用GRUB(包括WINGRUB)命令行模式引导安装Linux

    作者: 北南南北 来自: LinuxSir.Org 提要: Linux的安装过程的引导有几种方法,一种是在DOS下通过loadlin进行安装:一种是通过lilo系统引导管理器进行引导: 还有一种就是通 ...

  5. 系统引导管理 之 用GRUB(包括WINGRUB)命令行模式引导安装Linux

    作者:北南南北 来自:LinuxSir.Org 提要:Linux的安装过程的引导有几种方法,一种是在DOS下通过loadlin进行安装:一种是通过lilo系统引导管理器进行引导:还有一种就是通过系统引 ...

  6. Ubuntu Grub u盘 LiveCD修复方法

    From:http://wenku.baidu.com/view/ef78e110fe4733687e21aac3.html 用LiveCD修复Grub2的具体方法如下: 1.用ubuntu9.10的 ...

  7. grub2 linux 参数,对grub2的详细介绍

    翻译了grub2官方手册的绝大部分内容,然后自己整理了一下.因为内容有点杂,所以章节安排上可能不是太合理,敬请谅解. 本文目录: 1.1 基础内容 1.2 安装grub2 1.3 grub2配置文件 ...

  8. grub2详解(翻译和整理官方手册)

    GRUB2是借鉴GRUB改写到更加安全强大到多系统引导程序,现在大部分较新的Linux发行版都是使用GRUB2作为引导程序的. GRUB2采用了模块化设计,使得GRUB2核心更加精炼,使用更加灵活,同 ...

  9. Ubuntu19.04环境下的系统安装+花屏问题的解决

    说在前面,本文只做自我总结用,因为一次次重装环境到处找博客看帖实在是太麻烦了,而且网上的博客还良莠不齐,还有好多版本不兼容,本文中的某些图片是截图,某些是照片(在不能截图的情况下),图片比例可能会显示 ...

最新文章

  1. arcgisserver修改服务器地址,ArcGIS for Server默认端口6080修改
  2. MyBatis 架构分层与模块划分-接口层
  3. 校园宿舍管理系统课程设计报告
  4. 哈佛大学单细胞课程|笔记汇总 (八)
  5. java switch finally_JavaSE
  6. java sqlserver 分页_java+sqlserver 使用分页存储过程
  7. 什么?print 函数还可以打印彩色围棋局面?
  8. iSPRINT:Google 最高能的创新加速课程,清华老师都来给点赞!
  9. java重装机兵机甲咆哮_重装机兵之机甲咆哮流程攻略
  10. Mac访达搜索找不到对应文件的解决方法
  11. 【XSY2732】Decalcomania 可持久化线段树 分治
  12. LINGO如何使用教育邮箱免费激活
  13. DirectShow 基础教程
  14. 苹果itunes软件怎么下载安装
  15. HTML5前端知识图谱
  16. Hadoop1.0和2.0的主要区别
  17. 如何根据移动端设计图设计rem比例
  18. php有个schost.exe_window_XP主要15个系统进程,  1.svchost.exe    进程文 - phpStudy...
  19. Android Studio使用AIDL技术进行SDK开发
  20. 如果有10个词,我想从中取3个词,然后把所有的10选3的可能统计记录下来,该怎么做?...

热门文章

  1. Mopaas 初体验
  2. 手工实现字节对齐 及 代码质量思考
  3. [转]获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
  4. 51Nod 1007 正整数分组(01背包)
  5. Lucky Substrings
  6. VC++ 获取文件属性创建时间、修改时间和访问时间
  7. POJ1088:滑雪(简单dp)
  8. linux 下的 多线程http 下载器
  9. visual studio visual studio 2005 快捷键大全
  10. 世界级投资大师们的至理名言