GNU GRUB

✍ dations ◷ 2025-10-15 20:36:44 #自由软件,引导程序,GNU计划软件

GNU GRUB(简称“GRUB”)是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

GNU GRUB的前身为Grand Unified Bootloader。它主要用于类Unix系统;同大多Linux发行版一样,GNU系统也采用GNU GRUB作为它的启动器。Solaris从10 1/06版开始在x86系统上也采用GNU GRUB作为启动器。

GRUB可动态配置;它在启动时加载配置信息,并允许在启动时修改,如选择不同的内核和initrd。为此目的,GRUB提供了一个简单的类似Bash的命令行界面,它允许用户编写新的启动顺序。

GRUB非常轻便。它支持多种可执行格式;它除了可适用于支持多启动的操作系统外,还通过链式启动功能支持诸如Windows和OS/2之类的操作系统。GRUB支持大部分的Unix文件系统,也支持Windows适用的FAT和NTFS文件系统,还支持LBA模式。GRUB允许用户查看它支持的文件系统里文件的内容。

GRUB具有多种用户界面。多数Linux发行版利用GRUB对图形界面的支持,提供了定制的带有背景图案的启动菜单,有时也支持鼠标。GRUB可通过GFX支持更美观的引导画面和引导菜单。通过对GRUB的文字界面的设定,可以通过串口实现远程终端启动。

GRUB可以从网络上下载操作系统镜像,因此可以支持无盘系统。GRUB支持在启动操作系统前解压它的镜像。

与其它启动器不同,GRUB可以通过GRUB提示符直接与用户进行交互。加载操作系统前,在GRUB文本模式屏幕下键入c键可以进入GRUB命令行。在没有作业系统或者有作业系统而没有"menu.lst"(或grub.cfg)配置文件的系统上,同样可以进入GRUB提示符。通过类似bash的命令,GRUB提示符允许用户手工启动任何操作系统。把合适的命令记录在"menu.lst"(或grub.cfg)文件里,可以自动启动一个操作系统。

GRUB拥有丰富的终端命令,在命令行下使用这些命令,用户可以查看硬盘分区的细节,修改分区设置,临时重新映射磁盘顺序,从任何用户定义的配置文件启动,以及查看GRUB所支持的文件系统上的其它启动器的配置。因此,即便不知道一台电脑上安装了什么,也可以从外部设备启动一个操作系统。

GRUB采用滚动屏幕选择想要启动的操作系统。通过向"menu.lst"(或grub.cfg)文件中添加相关信息,GRUB可以控制150或者更多的启动选项,在启动时用方向键进行选择。

通过链式启动,一个启动器可以启动另一个启动器。GRUB通过2到3行的命令就可以从DOS、Windows、Linux、BSD和Solaris系统启动。

尽管GRUB为类Unix系统进行了编译和打包,但也有供DOS和Windows使用的变种GRUB4DOS等。GRUB也可以不附带任何操作系统而作为孤立系统安装。从CD上启动时运用GRUB需要1个文件,而从软盘、硬盘和USB设备上启动时需要2个文件。这些文件可以在任何支持GRUB的Linux CD上找到,用户可以很容易的找到它们。

新的GRUB2(GRUB第二版)为GRUB的重写版本,它是GRUB的大革新。GRUB2对Linux系统做了更多的优化,支持更多的功能,如动态的加载模块(而在之前的GRUB中,新增或删除模块要重新编译GRUB)等。GRUB2的版本号为0.98或更高;旧的GRUB的版本号则为0.97或更低,也被称为“GRUB Legacy”或“GRUB1”等。GRUB2的配置、命令等较GRUB Legacy有一定的不同。

计算机启动后,BIOS将寻找第一个可启动的设备(通常为硬盘),而后从MBR中加载启动程序,然后把控制交给这段代码。MBR位于硬盘的前512字节内。

GRUB的步骤1包含在MBR中。由于受MBR的大小限制,步骤一所做的几乎只是装载GRUB的下一步骤(存放在硬盘的其它位置)。步骤1既可以直接装载步骤2,也可以装载步骤1.5:GRUB的步骤1.5包含在MBR后面的30千字节中。步骤1.5加载步骤2。

当步骤2启动后,它将呈现一个界面来让用户选择启动的操作系统。这步通常采用的是图形菜单的形式,如果图形方式不可用或者用户需要更高级的控制,可以使用GRUB的命令行提示,通过它,用户可以手工指定启动参数。GRUB还可以设置超时后自动从某一个内核启动。

与GRUB第一版相似的是,像步骤1一样在MBR或在启动分区中,但是,它可以从任何LBA48地址的一个扇区中读取,它()将读取(产生于)的第一个扇区以用来后面读取的剩余部分。正常情况下跟步骤1.5储存在同一地方并且有着同样的问题,可是,当他被移动到一个文件系统或一个纯粹的分区时会比在步骤1.5移动或删除引起更少的麻烦。一旦完成读取,会读取默认的配置文件和其他需要的模块。

一旦选择了启动选项,GRUB把选择的内核加载内存并把控制交给内核。在此步骤中,对于Windows之类不支持多启动标准的操作系统,GRUB也可以通过链式启动把控制传给其它启动器。在这种情况下,其它操作系统的启动程序被GRUB保存了下来;与内核不同,其它操作系统如同直接自MBR启动。类似Windows的启动菜单,也许是另一个启动管理器,它允许在多个不支持多启动的操作系统中做进一步的选择。(在已有Windows的系统上面,或者包含多个Windows版本的系统上安装现代的Linux而不修改原操作系统,即属于这类情况。)

GRUB的一个重要的特性是安装它不需依附一个操作系统;但是,这种安装需要一个Linux/Windows副本。由于单独工作,GRUB实质上是一个微型系统,通过链式启动的方式,它可以启动所有安装的主流操作系统。

与LILO不同,修改GRUB的配置文件后,不必把GRUB重新安装到MBR或者某个分区中。

在Linux中,“grub-install”命令是用来把GRUB的步骤1安装到MBR或者分区中的。GRUB的配置文件、步骤2以及其它文件必须安装到某个可用的分区中。如果这些文件或者分区不可用,步骤1将把用户留在命令行界面。

GRUB Legacy的配置文件为/boot/grub/menu.lst/boot/grub/grub.conf。GRUB 2的配置文件为/boot/grub/grub.conf

除了硬盘外,GRUB也可安装到光盘、软盘和闪存盘等移动介质中,这样就可以引导一台无法从硬盘启动的系统。

相关

  • 瘢痕疙瘩瘢痕疙瘩(keloid)也称为蟹足肿,是一种皮肤对创伤的过度反应,主要表现为局部成纤维细胞的过度增生和胶原蛋白的大量合成。瘢痕疙瘩的纤维组织通常超出创伤的范围,累及周围正常组织
  • 管乐器管乐器是泛指以管作为共鸣体的乐器。由吹奏者吹气或振唇,借由吹口装置带动管内空气震动发声。音的高低取决于管身的长度控制。管乐器包括以下两种铜管乐器最初以金属制作,而木
  • 去灭绝去灭绝(de-extinction)又称复活生物学(resurrection biology)或生物复活(species revivalism),是让灭绝的生物复活的过程。包括重新生育出该种生物,或是制造出外观非常类似的个体。
  • 西湖村西湖村(英文:Westlake Village),是美国加利福尼亚州洛杉矶县下属的一座城市。建市于1981年12月11日,面积 大约为5.19平方英里 (13.4平方公里)。根据2010年美国人口普查,该市有人口
  • 圌山圌山是中国江苏镇江境内山名,位于丹徒大路镇西北。相传“圌”字即为此山造。高250米。为宁镇丘陵的最后一座山。往东即开始是长江中下游平原。山顶有砖塔一座,名报恩塔,建于明
  • 南棕榈滩 (佛罗里达州)南棕榈滩(英语:South Palm Beach),是美国佛罗里达州境内的一座城镇。建立于1955年。面积约 为0.8平方公里(约合0.3平方英里)。根据2010年美国人口普查,该市有人口1,171人。论人口在
  • 子弹横飞百老汇《子弹横飞百老汇》(英语:)是一套1994年的美国喜剧犯罪电影,由伍迪·艾伦执导, 约翰·库萨克、黛安·韦斯特、珍妮佛·提莉及卓斯·柏米泰利(英语:Chazz Palminteri)等主演。电影以1
  • 林辰唏林辰唏(Mathilde Lin,1990年5月22日-),昵称仔仔,因其姓林,又称林仔仔,是一名台湾演员。2006年曾参与综艺节目《我猜我猜我猜猜猜》的“少男系少女”单元,及后加入《我爱黑涩会》成为
  • 安德肋·万-特鲁瓦安德肋·万-特鲁瓦(法语:André Vingt-Trois;1942年11月7日-)是法国籍天主教司铎级枢机。他是巴黎总教区荣休总主教,兼任拜占庭礼天主教法国教长区教长。万-特鲁瓦于1942年11月7日
  • 流量管流量管是一种类似管状的圆柱体,存在于在太空中的磁场范围内,在这些领域内与侧面的表面是平行的。管的横断面和其中包含的场在沿着管子长度的方向上或许有变化,但是磁通量永远是