科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道Linux操作系统下GRUB引导过程及原理

Linux操作系统下GRUB引导过程及原理

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

安装了GRUB,开机后会出现一个菜单,列出所有的启动选项。GRUB启动时会在 /boot/grub 中寻找一个名字为grub.conf的设置文件,如果找不到此设置文件则不进入菜单模式而直接进入命令行模式。

来源:硅谷动力 2008年9月8日

关键字: 服务器 Grub 操作系统 Linux

  • 评论
  • 分享微博
  • 分享邮件

  GRUB是一个多重启动管理器。GRUB是GRand Unified Bootloader的缩写,它可以在多个操作系统共存时选择启动哪个系统。它可以启动的操作系统包括Linux, FreeBSD, Solaris, NetBSD, BeOS, OS/2, Windows95/98 /NT /2000。它可以载入操作系统的内核和初始化操作系统(如Linux, FreeBSD),或者把启动权交给操作系统(如Windows 98)来完成启动。Thiz Server默认安

  装GRUB,并用它来启动机器。

  安装了GRUB,开机后会出现一个菜单,列出所有的启动选项。如果设置了启动画面,则会显示启动画面,按【Esc】键则可以取消启动画面显示菜单选项GRUB,按【e】是编辑启动命令,按【c】是使用命令行等。用上下键可以选择菜单项,按【Enter】启动所选项。按【e】键可以编辑所选项的启动命令,您可以用这个功能临时改变系统的启动参数。按【c】键则进入命令行模式。在命令行模式下可以输入命令直接执行,例如可以敲入poweroff关闭电脑。按【Tab】键可以列出所有支持的命令。

  GRUB可以代替LILO来完成对Linux的启动,特别适用于 Linux与其他操作系统共存情况,与LILO相比,它有以下特点:

  支持大硬盘

  以前许多Linux发行版本的LILO 都有同样的一个问题:根分区(/boot分区)不能分在超过1024柱面的地方,一般是在8.4GB左右的地方,否则LILO不能安装,或者安装后不能正确启动系统。而GRUB就不会出现这种情况,只要安装时您的大硬盘是在LBA模式下,GRUB就可以启动根分区在8GB以外的操作系统。在LILO下,您需要手动输入操作系统的名字来启动不同的操作系统。而GRUB使用一个菜单来选择不同的系统进行开机。您还可以自己设置各种参数,如延迟时间、默认操作系统等。

  支持开机画面

  GRUB支持在启动开机的同时显示一个开机画面。对于玩家来说,这样可以制作自己的个性化开机画面;对于PC厂商来说,这样可以在开机时显示电脑的一些信息和厂商的标志等。GRUB支持640×480, 800×600, 1024×768各种模式的开机画面,而且可以自动侦测并选择最佳模式,与Windows的320×240的开机画面不可同日而语。

  两种执行模式

  GRUB不但可以透过设置文件进行例行的开机,还可以在选择开机前动态改变开机时的参数,还可以动态载入各种设备。例如您在Linux下编译了一个新的内核,但不能确定它能不能工作,您就可以在开机时动态改变GRUB的参数,尝试装载这个新的内核进行使用。GRUB的命令行有非常强大的功能,而且支持如bash或DOSKEY一样的历史功能,您可以用上下键来寻找以前的命令。

  分区位置改变后不必重新设置

  LILO是透过读取硬盘上的绝对分区来装入操作系统,因此每次分区改变都必须重新设置LILO,例如您用Partition Magic调整了分区的大小,那LILO在您重新设置好之前就不能引导这个分区的操作系统了。而GRUB是透过文件系统直接把内核读取到内存,因此只要操作系统内核的路径没有改变,GRUB就可以启动系统。除此之外,GRUB还有许多非常强大的功能。例如支持多种外部设备,动态装载操作系统内核,甚至可以透过网络装载操作系统内核。GRUB支持多种文件系统、多种可执行文件格式,以及自动解压,还可以启动不支持多重引导的操作系统等。

  GRUB启动时会在 /boot/grub 中寻找一个名字为grub.conf的设置文件,如果找不到此设置文件则不进入菜单模式而直接进入命令行模式。

  grub.conf是一个纯文字文件,您可以用任何一个文字编辑器来打开它。每一行代表一个设置命令,如果一行的第一个字符为井号#,则这一行为注释,您可以简单地用增加或减少注释行来改

  变设置。

  编辑grub.conf时,一般会有以下几行:

  timeout second

  设置在second秒之后引导默认的操作系统。

  Thiz Linux 默认是timeout 10,也就是说10秒之内如果没有其他命令就启动系统。如果设成 -1,则 GRUB 会一直等待直到用户选择一个选项为止。

  default num

  默认启动第 num +1行选项,也就说default=0,则默认启动菜单第1行的操作系统,default=1,则启动第2行的系统,如此类推。

  splash pathname/filename

  指出开机画面的文件所存放的路径和文件名,如 splash /boot/logo/800x600x8.img 是指用在/boot/logo路径下的800×600像素的文件作为开机画面。

  title OSname title

  后面的字符就是在菜单项上所看见的选项,可以写上操作系统的名字和描述,如用title BluePoint Linux, Single Mode 代表这一选项的话,是引导Thiz Linux的单用户模式。

  下面结合两个系统引导描述来解释几个引导选项的意义:

  title Thiz Server, Default Mode

  root (hd0,1)

  kernel /boot/vmlinuz vga=auto root=/dev/hda2

  hd0是指第一个硬盘(主硬盘),(hd0,1)是指第一个硬盘的第二个分区。kernel /boot/vmlinuz是指出Linux内核的路径在/boot/vmlinuz中。vga=auto是设置显示模式,root=/dev/hda2是指把第一个硬盘的第二个分区作为根挂载点。

  title Microsoft Windows

  root (hd1,0)

  chainloader (hd1,0)+1

  root (hd1,0)是指第二个硬盘(从硬盘)上的第一个分区。

  chainloader (hd1,0)+1 是指装入一个分区的数据然后把引导权交给它。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章