linux的lilo,深 入Linux 的LILO-嵌入式系统-与非网
---- 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 典 型 配 置 方 法
---- 通 常 情 况 下,Linux 的 安 装 程 序 自 身 就 可 以 完 成LILO 的 安 装
配 置, 从 而 较 好 地 解 决 多 重 系 统 的 引 导 问 题, 如 果 系 统 不 能
自 动 完 成 这 种 配 置, 那 么 可 以 通 过 手 工 修 改 配 置 文 件
/etc/lilo.conf 来 实 现 不 同 条 件 下 的 引 导。
---- 1 . 当 系 统 能 自 动 完 成 配 置 时
---- 对 于 这 种 情 况, 只 有 一 个 建 议: 将LILO 安 装 到Linux 分 区 的
根 上, 而 不 是MBR。 假 设 当 前hda1 中 装 有DOS/Windows,hda2 中 安 装
Linux, 则/etc/lilo.conf 的 内 容 大 致 如 下:
boot=/dev/hda2 #指定引导位置
compact
delay=5 #延时5秒
root=current #根在当前分区
image=/boot/vmlinux #指定Linux的内核文件
label=linux #用Linux为代表名称
other=/dev/hda1 #其他操作系统所在的分区
table=/dev/hda #指定包含分区表的硬盘
label=dos #用dos为代表名称
---- 2 . 当 系 统 无 法 自 动 完 成 配 置 时
---- 不 外 乎 两 种 情 况: 其 一 是BIOS 不 能 直 接 看 到Linux 的 根 分 区
; 其 二 是BIOS 只 能 读 写 标 准IDE 硬 盘 的 前504MB。 这 时, 必 须 遵 循
一 个 最 基 本 的 原 则: 建 立 一 个BIOS 能 存 取 的 较 小 的Linux 分 区,
其 中 包 含 内 核 文 件、 映 射 文 件 以 及 链 加 载 程 序 等 必 要 的 内
容, 而 根 则 可 以 是 另 外 一 个 独 立 的 分 区。 至 于 配 置 上 的 其 他
细 节, 从 以 下 实 例 来 说 明。
---- 例1: 主 硬 盘 为IDE 接 口, 第 二 硬 盘 为SCSI 接 口, 根 文 件 在SCSI
上。
---- 对 策: 在IDE 硬 盘 上 划 分 一 个 较 小 的Linux 分 区(/dev/hda2), 其
中 包 含 基 本 文 件, 挂 接 到/u2 下, 其 配 置 文 件/etc/lilo.conf 的 主
要 内 容 为:
boot=/dev/hda #LILO装在主IDE的MBR
install=/u2/etc/lilo/boot.b
#从boot.b安装LILO引导记录
map=/u2/etc/lilo/map
#安装程序建立此映射文件,
告诉引导载入程序内核块的位置
compact
timeout=50
image=/u2/vmlinux
#内核文件应事先拷贝到/u2下
label=linux
root=/dev/sda1
#告诉内核根系统在SCSI硬盘上
read-only
other=/dev/hda1
loader=/u2/etc/lilo/chain.b #指明加载程序
label=dos
---- 例2: 一 个 标 准 的IDE 大 硬 盘 需 安 装Linux 和DOS/Windows。
---- BIOS 的int 13 调 用 是 采 用3 个 位 元 组 的 CHS 编 码,10 位 为 柱 面
号,8 位 为 磁 头 号,6 位 为 扇 区 号。 可 能 的 柱 面 号 码 是0 ~1023, 可
能 的 磁 头 号 码 是0 ~255, 而 磁 道 上 可 能 的 扇 区 号 码 是1 ~63, 以
这24 位 最 多 可 以 定 址7.875GB。 但 不 幸 的 是, 标 准 的IDE 界 面 容 许
256 个 扇 区 / 磁 道、 65536 个 柱 面 以 及16 个 磁 头。 它 自 己 本 身 可
以 存 取128GB, 但 是 除 去BIOS 方 面63 个 扇 区 与1024 个 柱 面 后 只 剩
504MB 可 以 定 址。
---- 对 策: 在 硬 盘 的 前500MB 中 划 分350MB(/dev/hda1) 给DOS,
150MB(/dev/hda2) 给Linux, 在 相 应 的 配 置 文 件 中 应 说 明 硬 盘 的 参
数:
boot=/dev/hda
...
disk=/dev/hda
bios=0x80
sectors=63
heads=16
cylinders=2100
image=/vmlinux
append="hd=2100,16,23"
root=/dev/hda2
label=linux
四、 LILO 的 卸 装
---- 当LILO 覆 盖 了 引 导 扇 区 时, 它 会 保 留 一 个 引 导 扇 区 的 备 份
在/boot/boot.xxyy 中, 其 中xxyy 是 十 六 进 制 的 设 备 主 / 次 号 码
(major/minor numbers), 利 用 命 令"ls -l /dev/device" 就 可 获 得 硬 盘 或
分 区 的 主 / 次 号 码。 若 要 卸 装LILO, 只 需 恢 复 初 始 的 引 导 扇
区。 例 如:LILO 安 装 在/dev/had, 对 应 的 备 份 文 件 为
/boot/boot.0300, 使 用 下 面 的 命 令 即 可:
---- dd if=/boot/boot.0300 of=/dev/_had bs=446 count=1
---- ( 作 者 地 址: 巨 化 集 团 公 司 计 算 中 心,324004; 收 稿 日 期:1999年6 月)
分享到:
来源:互联网
版权声明:本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
linux的lilo,深 入Linux 的LILO-嵌入式系统-与非网相关推荐
- linux如何实现网络高级编程,嵌入式Linux网络编程之:网络高级编程-嵌入式系统-与非网...
10.3 网络高级编程 在实际情况中,人们往往遇到多个客户端连接服务器端的情况.由于之前介绍的如connet().recv()和send()等都是阻塞性函数,如果资源没有准备好,则调用该函数的进程将 ...
- esp32 嵌入式linux,初体验乐鑫 ESP32 AT 指令-嵌入式系统-与非网
乐鑫 AT 固件初体验 初步体验 AT 指令下 TCP 数传,为了验证 AT 命令解析器. 前往乐鑫官网 下载最新版本 AT 固件和 AT 指令集手册. 硬件准备 本文使用乐鑫的 ESP-WROOM- ...
- linux串口驱动及应用程序,基于华邦W90P710处理器的Linux内核应用及串口驱动的实现-嵌入式系统-与非网...
嵌入式Linux是一种很受欢迎的操作系统,具有开放源码.不存在黑箱技术.内核小.功能强大.运行稳定.效率高.易于定制裁减等特点[1],广泛应用于工控产品.很多工控产品需要和外部设备进行信息交换,而串口 ...
- 嵌入式linux开发环境 cpu,嵌入式Linux开发环境的搭建之:U-Boot移植-嵌入式系统-与非网...
5.2 U-Boot移植 5.2.1 Bootloader介绍 1.概念 简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序.通过这段程序,可以 ...
- linux基金会认证考试,Linux基金会宣布新的Linux认证计划-嵌入式系统-与非网
新计划推出首个全虚拟化.注重实际表现.不限发行版的认证考试,将有助扩大全球Linux专业人才库 Marketwired 2014年8月20日美国伊利诺伊州芝加哥消息--LINUXCON+CLOUDOP ...
- freertos与linux区别,μClinux、μC/OS-II、eCos、FreeRTOS和djyos操作系统的特点及不足-嵌入式系统-与非网...
基于 STM 平台且满足实时控制要求操作系统,有以下 5 种可供移植选择.分别为μClinux.μC/OS-II.eCos.FreeRTOS 和都江堰操作系统(djyos). 下面分别介绍这五种嵌入式 ...
- linux嵌入式开发arm7,基于ARM7系列芯片嵌入式平台上实现的设计方案-嵌入式系统-与非网...
本文介绍的方法是在用ARM7系列芯片S3C4510B和μClinux构建的嵌入式平台上实现的.在嵌入式系统设计过程中,系统的掉电保护越来越受到重视整个掉电保护实现的基本思路是:产生掉电信号,捕捉掉电信 ...
- 嵌入式linux如何下载程序,Linux平台的下载程序-嵌入式系统-与非网
有许多网络文件下载工具可以在Windows平台下很好地工作,如NetAnts."网际快车".TelePro等,还有像WebZip那样功能强大的离线浏览器.这些工具使我们可以在Win ...
- 嵌入式linux编码器,基于嵌入式平台的视频编码器的实现-嵌入式系统-与非网
引言 H.264是由ISO(国际标准化组织)/IEC(国际电工协会)和ITU(国际电信标准化部门)合作制定的新一代视频编码标准,目前正处于应用开发阶段.与以往的视频编码标准相比,h.264具有更高的压 ...
- 监护仪系统都是Linux吗,基于Linux和MiniGUI的心电监护仪设计-嵌入式系统-与非网...
0 引言 随着人们生活节奏加快,人口逐渐老龄化,心脏疾病成为危害人类健康和生命的主要疾病之一.心电监护系统为心脏病人诊断和治疗提供了一个有效的手段,对心脏疾病的防治和诊断具有重大的意义,本介绍一种基于 ...
最新文章
- 久未更 ~ 一之 —— 关于ToolBar
- 简评《疯狂的石头》《超人归来 / Superman Returns》《谍中谍 3 / Mission Impossible 3》...
- linux 运行 chom,Hadoop安装-单节点/伪分布(2.7.3)
- cmd c语言 图形,CMD-C彩图隐写方案
- php星期和时间获取
- 通过ramdump 分析匿名页导致的TASK_UNINTERRUPTIBLE
- Markdown 编辑器 Editor.md 图片上传使用
- 小程序毕设作品之微信酒店预订小程序毕业设计(8)毕业设计论文模板
- Mybatis 拦截器报错
- 基于html超市管理系统,超市管理系统后台模板
- consol32.exe
- 微信小程序自定义map组件标记点markers(兼容苹果和安卓)
- JCL新手入门学习教程(1) 2021-02-09
- data:image图片转png与jpg,png转data:image格式。
- vue2+element-ui实现表格分页显示
- 「CSA49」Bunny on Number Line
- Validform表单验证时可以为空,否则按照指定的格式验证
- java里面常用的锁屏图案_最常用的100种解锁图案(附:手机图案万能解锁法)...
- 不同厂家ARM芯片的比较
- Android错误代码返回,【已解决】JPUSH的回调返回错误代码6012
热门文章
- 动态壁纸html怎么设置方法,动态壁纸怎么设置
- google glog 简单使用小结
- Spring boot 项目(十五)——实现163邮箱发送邮件
- 人肝源间充质样干细胞的肝源性潜能及肝再生效应
- matlab ill,Matlab跑GMM聚类时出现Ill-conditioned covariance created at iteration xx错误提示
- Unity Chan 试玩
- 面向对象编程中的 诡异事件
- matlab如何看历史,matlab创建有价值历史纪录.txt 源代码在线查看 - Matlab创建有价值历史纪录(完整版),matlab 常用的命令集锦。 资源下载 虫虫电子下载站...
- java生成卡号_java 生成银行卡号
- 让你轻松入门的编程学习窍门,JAVA、Python快速学习资料+练手项目