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

来源:互联网

作者:佚名

时间:2013-04-10 13:32

了解如何为您的 Linux 系统选择和配置一个引导程序。您可以使用本文中的资料来学习,为参加 Linux 系统管理员认证的 LPI 101 考试而做准备,当然也可以是出于爱好而学习

主要更新包括 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 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 中的配置文件执行重构。

linux常用的引导管理器,Linux引导管理器GRUB、GRUB 2和LILO简介相关推荐

  1. Linux使用命令启用配额管理,Linux常用命令(九)磁盘配额管理

    Linux常用命令(九)磁盘配额管理 一.磁盘配额概述 1.磁盘配额的作用范围 quota软件设置的磁盘配额功能,只在指定的文件系统(分区)内有效,用户使用其它未设置配额的文件系统时,将不会受到限制. ...

  2. Linux常用指令(幻影快递Linux小组)

    Linux新手管理员指南(中文版) Linux Newbie Administrator Guide (Simplified Chinese Version) 幻影快递Linux小组(SLT-Shad ...

  3. linux常用命令_干货:Linux常用命令全称及讲解

    从事IT行业的很多人都会使用Linux常用命令,但是知道这些常用命令全称的人并不多,让我们来看看这些常用命令对应的全称吧!小编精心整理了一下,毕竟常用命令比较多,如果没有你常用的还望海涵,可以评论区补 ...

  4. linux常用命令 打开文件,【Linux】常用命令 lsof查看打开的文件

    Linux系统把软硬件都抽象成文件,所以通过文件可以追踪到很多重要信息,如读取的配置文件.打开的端口等. 下面是常见的用法: 默认测试文件名为text.txt 1,显示打开text.txt的进程: l ...

  5. linux常见文件打开,Linux常用操作有哪些? Linux常用操作介绍

    Linux系统,相信很多洞电脑的朋友都知道,也知道怎么使用,但是很多电脑新手可不一定知道的.今天我们就来看看电脑新手需要掌握哪些Linux系统的常用操作.下面,U大侠小编就给大家介绍Linux常用操作 ...

  6. linux常用rm命令详解,Linux常用命令解析- rm命令

    今天小编要跟大家分享的文章是关于Linux常用命令解析- rm命令.rm 是一个命令行工具,用于删除文件和目录.这是每个Linux用户都应该熟悉的基本命令之一. 在本指南中,我们将通过最常见的rm选项 ...

  7. linux常用脚本的使用方法,Linux常用命令用法100个

    Linux常用命令用法100个 发布时间:2013-05-25 13:53:27   作者:佚名   我要评论 平时用linux时,我有一个习惯就是把遇到的,比较有用,并且容易忘的命令,放到一个文本文 ...

  8. linux常用分区工具,总结:Linux系统磁盘分区常用的工具

    对于新人来说,如何给linux系统磁盘分区?对于linux的分区通常可以使用fdisk命令工具和parted工具. 对于分区表通常有MBR分区表和GPT分区表 对于磁盘大小小于2T的磁盘,我们可以使用 ...

  9. lInux常用命令上(文件、远程管理相关)

    (1)关于文件的相关操作 ls -lha (l:纵向表示当前目录下的所有文件, h:将存储量显示,a:显示隐藏文件) touch 创建文件,创建隐藏文件 touch .123.txt cd - 进入上 ...

  10. linux常用命令(轻松入门linux)

    一.常用命令 1.fand命令的使用 #基本语法 find [PATH] [option] [action] 与时间有关的参数: -mtime n # n为数字,意思为在n天之前的"一天内& ...

最新文章

  1. android post请求添加公共参数_XHttp2 一个功能强悍的网络请求库
  2. 【重置版】Android studio高效开发的秘密
  3. hashmap允许null键和值吗_hashMap底层源码浅析
  4. Opencv中cvCopy() 和cvCloneImage()的区别
  5. WAMP_DEDE兼容配置
  6. AB1601 烧写程序后上电后无反应
  7. 关于模拟器Hyper-v中的Wp8网络连接问题
  8. iPhone 13将减产1000万部,因特定芯片供应不足
  9. 这 4 款电脑记事本软件,得试试
  10. 蓝墨云班课计算机网络答案,基于蓝墨云班课的 《计算机网络与应用》实验课 教学改革探究...
  11. 保角变换法matlab编程,保角变换法.ppt
  12. Load Switch负载开关详解
  13. gomarket服务器位置,V712双核版机型常见问题集解答.pdf
  14. 微信登录优化方案设计
  15. 科技论文中字母正斜体及大小写的规范写法
  16. 复旦大学2015--2016学年第一学期高等代数I期末考试情况分析
  17. 2020年中国废旧纺织品回收行业市场现状分析,高值化再生技术持续推进「图」
  18. C++ 之父 Bjarne Stroustrup : 简单的表述方式才是最优的方案
  19. 现在捡芝麻都需要有见识吗?
  20. 免费html5代码,HTML5(示例代码)

热门文章

  1. FIFO读写时序理解——almost_empty、almost_full
  2. WIN10系统的ghost备份还原的详细步骤
  3. 伸缩盒header固定content变更,footer固定
  4. 802.11--802.11n协议 PHY
  5. MATLAB中使用plotyy绘制双纵坐标图及坐标轴设置
  6. zigbee抓包时为何时常出现这个not able to setup connection to device smartRF04EB
  7. 云计算,制造业数字化转型的催化剂
  8. NRF52832学习笔记(34)——倾角传感器SCL3300使用
  9. 看着2022年世界杯,我无比怀念98世界杯
  10. Aho Corasick自动机结合DoubleArrayTrie极速多模式匹配