Linux引导管理器GRUB、GRUB 2和LILO简介

主要更新包括 GRUB 2 小节中的 GRUB 2 新信息,以及 GRUB 2 的恢复镜像 小节的 GRUB 2 恢复镜像和闪存驱动器的使用。LPI 已经从目标中删除了 LILO,所以 LILO 小节出现在了本文的后半部分。其他小节包含一些反映 GRUB 2 的微小更新,它们是目标和修订内容订单的一部分。

在本文中,学习为一个 Linux 系统选择、安装和配置引导管理器。您将学习:

配置多个引导位置和备份引导选项 安装和配置一个启动加载程序,比如 GRUB、GRUB 2 或 LILO 在启动时添加引导参数或运行启动加载程序命令 恢复常见引导问题 使用 GRUB Legacy 引导 GRUB 2 系统

本文将讨论 PC 启动过程和 Linux 中使用的 3 个主要启动加载程序:GRUB、GRUB 2 和 LILO,它们可以帮助您准备 Linux ">Professional Institute's Junior Level Administration (LPIC-1) 考试 101 中主题 102 下的目标 102.2。 该目标的权值为 2。请注意,LPIC-1 不再要求掌握 LILO。本文包含 LILO 内容以便于您对其有所了解。

先决条件

为了最有效地利用本系列中的文章,您应该具有基本的 Linux 知识,并准备一个 Linux 系统,用于练习本文介绍的命令。您还应该熟悉文章 “学习 Linux 101:硬盘布局” 中讨论的硬盘驱动器布局。有时候不同版本的程序输出格式不同,因此您所得到的结果未必总是与这里所示的清单和图相同。

注意:本文中的图像是从启动过程初期采集的屏幕截图。如果您正在使用一个屏幕读取器阅读本文,您可能会发现拥有对应的配置文件以便参考的好处;从本文后面的 下载 部分下载它们。

启动过程概述

在深入了解具体启动加载程序之前,先回顾一下如何启动或引导 PC。名为 BIOS(表示 Basic Input Output Service)的代码存储在一个非临时内存中,比如 ROM、EEPROM 或闪存。当打开或重新启动 PC 时,会执行这个代码。通常,它执行一个启动自测 (POST) 来检查机器。最后,它从引导驱动器上的主引导记录(MBR)加载第一个扇区。

正如文章 “学习 Linux 101:硬盘布局” 所述,MBR 还包含分区表,因此 MBR 中的可执行代码小于 512 字节,这个代码量不算多。注意,每个磁盘(甚至是软盘))都在它的 MBR 中包含可执行代码,即使这个代码只够输出一条消息,比如 “Non-bootable disk in drive A:(驱动器 A 中没有可引导磁盘:)”。这个由 BIOS 从第一扇区加载的代码称为第一阶段启动加载程序 或阶段 1 启动加载程序。

MS DOS、PC DOS 和 Windows® 操作系统使用的标准硬盘驱动器 MBR 会检查分区表,以查找标记为 active 的引导驱动器上的主分区,从该分区加载第一个扇区,然后将控制权交给已加载的代码。这个新的代码片段也称为分区引导记录。分区引导记录实际上是阶段 1 的另一个启动加载程序,但它只能从分区加载一组块。该新组块中的代码称为阶段 2 启动加载程序。MS-DOS 和 PC-DOS 使用的阶段 2 加载程序直接继续加载操作系统其余部分。以上就是操作系统启动并运行的引导进程。

这个引导进程对于单操作系统很适用。但是,如果您想要使用多个操作系统,比如 OS/2、Windows XP 和 3 个不同的 Linux 发行版,那么会出现什么样的情况呢?您可以 使用某个程序(比如 DOS FDISK 程序)来更改活动分区并重新启动,但这种方法比较笨拙。此外,一个磁盘只能拥有 4 个主分区,而标准 MBR 只能拥有一个主分区;系统不能从逻辑分区引导。但我们假设的示例提到了 5 种操作系统,每个系统都需要一个分区。

该问题的解决方案是使用一些特殊代码,允许用户选择引导哪个操作系统。此类程序包括:

Loadlin 一个 DOS 可执行程序,可以在一个正在运行的 DOS 系统中调用它来引导一个 Linux 分区。如果多引导系统的设置过程很
复杂且存在风险,那么这个代码就能够派上用场。 OS/2 Boot Manager 这个程序安装在一个专用小分区上,分区被标记为 active,标准 MBR 引导进程启动 OS/2 Boot Manager,该程序显示一个菜单,允许选择要启动的操作系统。 智能启动加载程序 该程序可以驻留在操作系统的分区上,通过一个活动分区的分区引导记录或主引导记录进行调用。这类程序包括: BootMagic,Norton PartitionMagic 的一部分 LILO,即 LInux LOader GRUB,即 GRand Unified Boot 加载程序 (现在称为 GRUB Legacy) GRUB 2,最近才在常用发行版中出现的一个新的启动加载程序

显然,如果能够将系统控制权交给某个包含超过 512 字节代码的程序来完成其任务,那么允许从逻辑分区引导或从位于引导驱动器之外的分区引导应该不太难。上述解决方案都支持这些可能性,这是因为它们都能从任意分区加载引导记录,或者是因为它们都对启动引导过程需要加载哪个或哪些文件有所理解。

链式加载

当一个引导管理器获得控制权时,它可能做的一件事就是加载另一个引导管理器。这种现象称为链式加载 (chain loading),通常发生在位于主引导记录 (MBR) 中的引导管理器加载一个分区引导记录中的启动加载程序的时候。当一个 Linux 启动加载程序被请求引导一个 Windows 或 DOS 分区时总是需要进行链式加载,或者当一个 Linux 系统(比如 Fedora)的 Linux 启动加载程序被配置来加载另一个 Linux 系统(比如 Ubuntu)的启动加载程序时,可能也需要链式加载。例如,您可能需要使用一个分区中的 GRUB 启动另一个分区引导记录中的 GRUB 启动加载程序,以便在该分区中启动 Linux 系统。 这是并不常见,我们只是列举了这种可能性。

Linux 启动加载程序

从现在开始,我们将主要关注 GRUB、GRUB 2 和 LILO,因为它们是大多数 Linux 发行版包含的启动加载程序。LILO 已经存在一段时间了,而 GRUB 比较新。最初的 GRUB 现在已成为了 GRUB Legacy,GRUB2 正在 Free Software Foundation 的赞助下进行开发。我们先讨论 GRUB、然后讨论 GRUB2,让您对 GRUB 和 GRUB2 之间的主要区别以及二者如何能够共存有一些了解。在本文其余部分中,我们假设 GRUB 是指 GRUB Legacy,除非上下文特别暗指 GRUB 2。LILO 也有一个新版本,称为 ELILO(设计用于引导使用 Intel 而非 BIOS 的 Extensible Firmware Interface 或 EFI)。

您的发行版的安装过程可能支持选择设置哪个启动加载程序。无论 GRUB、GRUB 2 还是 LILO,都能适应大多数现代磁盘,但是有些版本(最著名的 Fedora)不再包含 LILO。别忘了,磁盘技术已经飞速发展,因此您应该总是确保所选的启动加载程序、Linux 版本(或其他操作系统)以及您的系统 BIOS 适用于您的新磁盘。否则,就有可能导致数据丢失。同样,向现有系统添加新版本时,可能需要确保您的 MBR 中拥有最新的 LILO、GRUB 或 GRUB 2。如果打算从 LVM 或 RAID 磁盘引导,还需要一个较新的启动加载程序版本。

LILO 和 GRUB 中使用的阶段 2 加载程序允许从几个操作系统或版本中选择一个。但是,LILO 和 GRUB 差别很大:只要升级内核或对系统进行其他更改,就需要使用一条命令重新创建 LILO 引导设置;而 GRUB 支持通过一个可编辑配置文本文件来完成这项任务。GRUB2 还需要从一个通常存储在 /etc 中的配置文件执行重构。

时间: 2024-08-02 00:57:54

Linux引导管理器GRUB、GRUB 2和LILO简介的相关文章

Linux引导管理器学习

概述 在本文中,学习为一个 Linux 系统选择.安装和配置引导管理器.您将学习: 配置多个引导位置和备份引导选项 安装和配置一个启动加载程序,比如 GRUB.GRUB 2 或 LILO 在启动时添加引导参数或运行启动加载程序命令 恢复常见引导问题 使用 GRUB Legacy 引导 GRUB 2 系统 本文将讨论 PC 启动过程和 Linux 中使用的 3 个主要启动加载程序:GRUB.GRUB 2 和 LILO,它 们可以帮助您准备 Linux Professional Institute'

Linux远程管理器xshell和xftp使用教程

  Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议. Xftp 是一个基于 MS windows 平台的功能强大的SFTP.FTP 文件传输软件. 安装完毕后打开xshell 设置网站帐号信息 设置主机信息 设置服务器帐号 设置字符集编码 设置好了就点击ok保存一切准备就绪,让我们连接看看云linux服务器的庐山真面目吧! 黑不隆冬的,啥都没有,这就是linux的shell啦.shell(壳)到底是什么东

类似rpm包管理器的Windows Installer PowerShell Module简介_PowerShell

一.Windows Installer PowerShell Module简介 Windows Installer PowerShell Module是一个开源项目,存放在微软的开源项目网站CodePlex上,下面是其主页上项目描述. 复制代码 代码如下: Project Description Exposes Windows Installer functionality to PowerShell, providing means to query installed product and

5 个给 Linux 新手的最佳包管理器

一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux 中,包管理器非常重要,知道如何使用多种包管理器可以让你像一个高手一样活得很舒适,从在仓库下载软件.安装软件,到更新软件.处理依赖和删除软件是非常重要的,这也是Linux 系统管理的一个重要部分. 最好的Linux包管理器 成为一个 Linux 高手的一个标志是了解主要的 Linux 发行版如何处理包,在这篇文章中,我们应该看一些你在 Linu

Linux 下的密码管理器:Keeweb

如今,我们依赖于越来越多的线上服务.我们每注册一个线上服务,就要设置一个密码;如此,我们就不得不记住数以百计的密码.这样对于每个人来说,都很容易忘记密码.我将在本文中介绍 Keeweb,它是一款 Linux 密码管理器,可以为你离线或在线地安全存储所有的密码. 当谈及 Linux 密码管理器时,我们会发现有很多这样的软件.我们已经在 LinuxAndUbuntu 上讨论过像 Keepass 和 Encryptr,一个基于零知识系统的密码管理器 这样的密码管理器.Keeweb 则是另外一款我们将在

删除Linux引导界面的方法及注意事项

玩过Linux的人都知道,在原系统上装好Linux时,系统的引导时会显示Linux引导管理界面,当我们某天把Linux删了后,却发现Linux引导管理界面还在,这时我们可以用以下的方法来删除它. 准备一张DOS启动盘和fdisk软件,用它来引导系统进行DOS命令提示符,输入"fdisk /mbr",按回车就行了.此删除不可恢复,请慎用. 正确删除Linux的方法 如果你需要从一个硬盘驱动器中删除 Linux ,并且已经试图用默认的 DOS(Windows) fdisk 来这么做,你将会

Linux引导过程和GRUB引导器

作为DBA,就像需要深入了解Oracle启动过程一样,懂得Linux系统的引导过程对今后的故障诊断也是很有帮助的. 先看看如下linux引导过程图: 下面是引导过程的基本阶段: 1.  1.系统加载并运行引导加载程序.这个过程的细节取决于系统架构.例如: BIOS 基于 x86 的系统从主硬盘的 MBR 里运行第一阶段的引导加载程序,然后再加载另外一个引导加载程序 GRUB. 基于 UEFI 的 x86 系统挂载了一个包含 GRUB 引导加载程序的 EFI 系统分区,EFI 引导管理者将 GRU

《Linux From Scratch》第三部分:构建LFS系统 第八章:让LFS系统可引导 - 8.4. 使用 GRUB 设置启动过程

 8.4.1. 简介 警告 对 GRUB 进行错误的配置可能会导致在没有外置启动设备(某些USB设备,某些 CD-ROM 等)的情况下无法正常的启动.你可能仅仅需要修改当前正在使用的引导器(比如:Grub-Legacy,GRUB2 或 LILO 等)的配置. 一定要确保你有一个可以引导的光盘或者是 U 盘以备不时之需,否则万一电脑真的不能启动谁都救不了你.如果你需要建立可引导的设备,可以按照以下方法操作(跳转到 BLFS 从 libisoburn 软件包安装 xorriso). (译者注:其实你

引导加载程序之争: LILO 和 GRUB

在不考虑他们的工作或专业情况下,所有 Linux 用户都会使用的是哪个工具?引导加载程序.通过本文了解引导加载程序的工作原理,认识两个流行的引导加载程序 LILO(LInux LOader)和 GNU GRUB(GRand Unified Boot loader), 并研究两者各自的优点和缺点. 什么是引导加载程序? 最简单地讲,引导加载程序(boot loader) 会引导操作系统.当机器引导它的操作系统时,BIOS 会读取引导介质上最前面的 512 字节(即人们所知的 主引导记录(maste