深 入Linux 的LILO
时间:04-10
来源:
点击:
---- Linux 的 引 导 可 以 采 用 多 种 方 式, 其 加 载 器LILO(Linux Loader)
是 一 个 灵 活 的 引 导 加 载 程 序, 对 其 深 入 的 理 解, 将 有 助 于 我
们 方 便 地 处 理 多 重 系 统、 网 络 引 导、 大 硬 盘 及 大 内 存 等 诸 多
问 题。
一、 LILO 的 引 导 机 制
---- 众 所 周 知, 计 算 机 的 最 初 启 动 是 由BIOS 控 制 的, 在 对 一 些
硬 件( 如 内 存、 键 盘 等) 初 始 化 之 后, 它 会 试 图 加 载 硬 盘 的 主
引 导 记 录(MBR) 或 软 盘 的 引 导 扇 区。
---- MBR 可 通 过 两 种 方 式 运 行: 其 一 是 定 位 到 活 动 分 区 并 加 载
相 应 的 引 导 扇 区, 然 后 由 引 导 扇 区 完 成 该 分 区 内 操 作 系 统 的
基 本 组 件 的 加 载; 其 二 是 直 接 从 一 指 定 分 区 中 加 载 信 息, 并
通 过 它 装 入 任 一 分 区 中 的 操 作 系 统, 诸 如LILO、OS/2 Boot Loader
以 及Partition Magic 等 引 导 加 载 程 序 都 可 以 配 置 成 这 种 方 式。 软
盘 的 引 导 扇 区 相 当 于 硬 盘 活 动 分 区 的 引 导 扇 区, 它 用 于 装 入
软 盘 上 的 操 作 系 统。
---- 由 此 可 见, 只 要 把LILO 安 装 在MBR、 活 动 分 区 或 者 引 导 软 盘
上, 就 能 接 管 计 算 机 的 控 制 权, 然 后 由LILO 完 成 后 继 的 引 导 过
程。LILO 中 建 有 一 个 引 导 表 地 址 编 码, 借 此, 它 的 引 导 程 序 就
能 定 位 到Linux 的 内 核 文 件, 这 种 地 址 编 码 既 可 以 按 照 柱 面/ 磁
头/ 扇 区(CHS) 模 式, 又 可 以 采 用LBA 的 线 性 块 号 模 式, 因 此, 即
使 是 对 某 些SCSI 控 制 程 序,LILO 也 能 良 好 运 行。
---- 当LILO 定 位 到 配 置 文 件 后, 经 过 预 引 导 过 程, 就 显 示 提 示
符"LILO boot:", 此 时, 系 统 允 许 选 择 引 导 不 同 的 操 作 系 统 或 者
不 同 的 内 核 配 置, 按Tab 键 显 示 可 选 项 列 表, 然 后 输 入 可 选 项
或 者 直 接 回 车 选 择 缺 省 配 置, 如 果 选 择 了 引 导Linux, 还 可 以
直 接 传 递 参 数 到 系 统 内 核。
---- 和 其 他 系 统 的 引 导 加 载 程 序 相 比,LILO 具 有 更 高 的 灵 活
性, 其 引 导 方 式 也 更 丰 富:
---- ① 当LILO 被 安 装 在 硬 盘 的MBR、 活 动 分 区 或 引 导 软 盘 上 时,
作 为 原 引 导 程 序 的 替 身, 它 能 引 导 任 一 硬 盘 任 一 分 区 上 的
Linux 和 其 他 操 作 系 统。
---- ② 除 了 引 导 扇 区, 它 没 有 任 何 隐 含 文 件, 也 不 需 要 使 用
特 定 的 分 区, 它 的 配 置 文 件 可 以 在 任 何 分 区, 甚 至 是 存 放 在
与Linux 毫 不 相 干 的DOS 分 区 的 某 个 子 目 录 下。
---- ③ 它 能 引 导 几 个 不 同 的 内 核 配 置, 甚 至 是 几 个 不 同 的 内
核。
---- ④ 它 能 引 导 同 一 机 器 上 的 多 个Linux 版 本。
---- ⑤ 它 能 从 网 络 上 引 导Linux。
---- 正 是 由 于LILO 的 灵 活 性, 使 得 其 配 置 变 得 相 当 复 杂, 当 有
多 个 系 统 共 存 时, 建 议 先 安 装 其 他 操 作 系 统, 最 后 再 安 装
Linux, 这 样, 设 置LILO 对 其 他 系 统 的 引 导 会 相 对 简 单 一 些。
二、LILO 引 导 的 几 个 参 数
---- 在 此 只 介 绍 本 文 涉 及 到 的 几 个 参 数。
---- 'boot=': 此 参 数 指 明 包 含 引 导 扇 区 的 设 备 名( 如/dev/had),
若 此 项 忽 略, 则 从 当 前 的 根 分 区 中 读 取 引 导 扇 区。
---- 'root=': 此 参 数 告 诉 内 核 启 动 时 以 哪 个 设 备 作 为 根 文 件
系 统 使 用, 其 设 定 值 为 构 造 内 核 时 根 文 件 系 统 的 设 备 名, 可
用 的 设 备 名 有:
---- ①/dev/hdaN~/dev/hddN:ST-506 兼 容 硬 盘,a 到d 上 的N 个 分 区。
---- ②/dev/sdaN~/dev/sdeN:SCSI 兼 容 硬 盘,a 到e 上 的N 个 分 区。
---- ③/dev/xdaN~/dev/xdbN:XT 兼 容 硬 盘,a 到b 上 的N 个 分 区。
---- ④/dev/fdN: 软 盘,A:(N=0) 或B:(N=1)。
---- ⑤/dev/nfs: 由 网 络 取 得 根 文 件 系 统 的 标 志。
---- 'image=': 指 定Linux 的 内 核 文 件。
---- 'delay=': 设 定 引 导 第 一 个 映 像 前 的 等 待 时 间。
---- 'disk=': 此 参 数 为 某 一 特 殊 的 硬 盘 定 义 非 标 准 参 数。
---- 'append=': 为 内 核 传 递 一 个 可 选 的 参 数 行, 其 典 型 的 应 用
是 为 不 能 完 全 由 系 统 自 动 识 别 的 硬 盘 指 定 参 数, 如
append="hd=64,32,202"。
---- 'label=': 此 参 数 为 每 个 映 像 指 定 一 个 名 字, 以 供 引 导 时
选 择。
---- 'install=': 安 装 一 个 指 定 文 件 作 为 新 的 引 导 扇 区, 缺 省 为
/boot/boot.b。
---- 'table=': 说 明 包 含 分 区 表 的 设 备 名, 如 果 此 参 数 忽 略, 引
导 加 载 程 序 将 不 能 传 递 分 区 信 息 到 已 引 导 的 操 作 系 统。
是 一 个 灵 活 的 引 导 加 载 程 序, 对 其 深 入 的 理 解, 将 有 助 于 我
们 方 便 地 处 理 多 重 系 统、 网 络 引 导、 大 硬 盘 及 大 内 存 等 诸 多
问 题。
一、 LILO 的 引 导 机 制
---- 众 所 周 知, 计 算 机 的 最 初 启 动 是 由BIOS 控 制 的, 在 对 一 些
硬 件( 如 内 存、 键 盘 等) 初 始 化 之 后, 它 会 试 图 加 载 硬 盘 的 主
引 导 记 录(MBR) 或 软 盘 的 引 导 扇 区。
---- MBR 可 通 过 两 种 方 式 运 行: 其 一 是 定 位 到 活 动 分 区 并 加 载
相 应 的 引 导 扇 区, 然 后 由 引 导 扇 区 完 成 该 分 区 内 操 作 系 统 的
基 本 组 件 的 加 载; 其 二 是 直 接 从 一 指 定 分 区 中 加 载 信 息, 并
通 过 它 装 入 任 一 分 区 中 的 操 作 系 统, 诸 如LILO、OS/2 Boot Loader
以 及Partition Magic 等 引 导 加 载 程 序 都 可 以 配 置 成 这 种 方 式。 软
盘 的 引 导 扇 区 相 当 于 硬 盘 活 动 分 区 的 引 导 扇 区, 它 用 于 装 入
软 盘 上 的 操 作 系 统。
---- 由 此 可 见, 只 要 把LILO 安 装 在MBR、 活 动 分 区 或 者 引 导 软 盘
上, 就 能 接 管 计 算 机 的 控 制 权, 然 后 由LILO 完 成 后 继 的 引 导 过
程。LILO 中 建 有 一 个 引 导 表 地 址 编 码, 借 此, 它 的 引 导 程 序 就
能 定 位 到Linux 的 内 核 文 件, 这 种 地 址 编 码 既 可 以 按 照 柱 面/ 磁
头/ 扇 区(CHS) 模 式, 又 可 以 采 用LBA 的 线 性 块 号 模 式, 因 此, 即
使 是 对 某 些SCSI 控 制 程 序,LILO 也 能 良 好 运 行。
---- 当LILO 定 位 到 配 置 文 件 后, 经 过 预 引 导 过 程, 就 显 示 提 示
符"LILO boot:", 此 时, 系 统 允 许 选 择 引 导 不 同 的 操 作 系 统 或 者
不 同 的 内 核 配 置, 按Tab 键 显 示 可 选 项 列 表, 然 后 输 入 可 选 项
或 者 直 接 回 车 选 择 缺 省 配 置, 如 果 选 择 了 引 导Linux, 还 可 以
直 接 传 递 参 数 到 系 统 内 核。
---- 和 其 他 系 统 的 引 导 加 载 程 序 相 比,LILO 具 有 更 高 的 灵 活
性, 其 引 导 方 式 也 更 丰 富:
---- ① 当LILO 被 安 装 在 硬 盘 的MBR、 活 动 分 区 或 引 导 软 盘 上 时,
作 为 原 引 导 程 序 的 替 身, 它 能 引 导 任 一 硬 盘 任 一 分 区 上 的
Linux 和 其 他 操 作 系 统。
---- ② 除 了 引 导 扇 区, 它 没 有 任 何 隐 含 文 件, 也 不 需 要 使 用
特 定 的 分 区, 它 的 配 置 文 件 可 以 在 任 何 分 区, 甚 至 是 存 放 在
与Linux 毫 不 相 干 的DOS 分 区 的 某 个 子 目 录 下。
---- ③ 它 能 引 导 几 个 不 同 的 内 核 配 置, 甚 至 是 几 个 不 同 的 内
核。
---- ④ 它 能 引 导 同 一 机 器 上 的 多 个Linux 版 本。
---- ⑤ 它 能 从 网 络 上 引 导Linux。
---- 正 是 由 于LILO 的 灵 活 性, 使 得 其 配 置 变 得 相 当 复 杂, 当 有
多 个 系 统 共 存 时, 建 议 先 安 装 其 他 操 作 系 统, 最 后 再 安 装
Linux, 这 样, 设 置LILO 对 其 他 系 统 的 引 导 会 相 对 简 单 一 些。
二、LILO 引 导 的 几 个 参 数
---- 在 此 只 介 绍 本 文 涉 及 到 的 几 个 参 数。
---- 'boot=': 此 参 数 指 明 包 含 引 导 扇 区 的 设 备 名( 如/dev/had),
若 此 项 忽 略, 则 从 当 前 的 根 分 区 中 读 取 引 导 扇 区。
---- 'root=': 此 参 数 告 诉 内 核 启 动 时 以 哪 个 设 备 作 为 根 文 件
系 统 使 用, 其 设 定 值 为 构 造 内 核 时 根 文 件 系 统 的 设 备 名, 可
用 的 设 备 名 有:
---- ①/dev/hdaN~/dev/hddN:ST-506 兼 容 硬 盘,a 到d 上 的N 个 分 区。
---- ②/dev/sdaN~/dev/sdeN:SCSI 兼 容 硬 盘,a 到e 上 的N 个 分 区。
---- ③/dev/xdaN~/dev/xdbN:XT 兼 容 硬 盘,a 到b 上 的N 个 分 区。
---- ④/dev/fdN: 软 盘,A:(N=0) 或B:(N=1)。
---- ⑤/dev/nfs: 由 网 络 取 得 根 文 件 系 统 的 标 志。
---- 'image=': 指 定Linux 的 内 核 文 件。
---- 'delay=': 设 定 引 导 第 一 个 映 像 前 的 等 待 时 间。
---- 'disk=': 此 参 数 为 某 一 特 殊 的 硬 盘 定 义 非 标 准 参 数。
---- 'append=': 为 内 核 传 递 一 个 可 选 的 参 数 行, 其 典 型 的 应 用
是 为 不 能 完 全 由 系 统 自 动 识 别 的 硬 盘 指 定 参 数, 如
append="hd=64,32,202"。
---- 'label=': 此 参 数 为 每 个 映 像 指 定 一 个 名 字, 以 供 引 导 时
选 择。
---- 'install=': 安 装 一 个 指 定 文 件 作 为 新 的 引 导 扇 区, 缺 省 为
/boot/boot.b。
---- 'table=': 说 明 包 含 分 区 表 的 设 备 名, 如 果 此 参 数 忽 略, 引
导 加 载 程 序 将 不 能 传 递 分 区 信 息 到 已 引 导 的 操 作 系 统。