LINUX LILO若干问题探讨

开放平台 - 互动玩法演进之路 随着直播业务和用户规模日益壮大,如何丰富直播间内容、增强直播间内用户互动效果,提升营收数据变得更加关键。 阅读详情
LINUX LILO若干问题探讨


  Linux的引导可以采用多种方式,其加载器LILO(Linux Loader)是一个灵活的引导加载程序,与其他常用的引导加载程序相比,LILO引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多重系统、网络引导、大硬盘及大内存等诸多棘手的问题。

一、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引导参数

  LILO的引导参数有很多,在此只对一些比较重要的参数作一介绍 。
  1."boot="此参数指明包含引导扇区的设备名(如:/dev/had),若此项忽略,则从当前的根分区中读取引导扇区。
  2."root="此参数告诉内核启动时以哪个设备作为根文件系统使用,其设定值为构造内核时根文件系统的设备名,可用的设备名有:
  (1)/dev/hdaN~/dev/hddN:ST-506兼容硬盘,a到d上的N个分区
  (2)/dev/sdaN~/dev/sdeN:SCSI兼容硬盘,a到e上的N个分区
  (3)/dev/xdaN~/dev/xdbN:XT兼容硬盘,a到b上的N个分区
  (4)/dev/fdN:软盘,A:(N=0)或B:(N=1)
  (5)/dev/nfs:由网络取得根文件系统的标志
  3."nfsroot="若需通过NFS提供根文件系统来引导无盘工作站,此参数为内核指定了网络根文件系统所在的机程序、目录及NFS,其格式为:nfsroot=(〈server_ip〉:)〈root_dir〉(,nfs_options〉)
  4."nfsaddrs="设定网络通讯所需的各种网络界面地址,如无此参数,则内核会试图用反向地址解析协定(RARP)或启动协定(BOOTP)找出这些参数,其格式为:nfsaddrs=〈客户端IP〉:〈服务端IP〉:〈网关IP〉:〈子网屏蔽〉: 〈客户端名称〉:〈网络设备名 〉:〈auto〉
  5."image=" 指定Linux的内核文件。
  6."delay=" 设定引导第一个映像前的等待时间。
  7."disk=" 此参数为某一特殊的硬盘定义非标准参数。
  8."append=" 为内核传递一个可选的参数行,其典型的应用是为不能完全由系统自动识别的硬盘指定参数,如:append = "hd=64,32,202"
  9."label=" 此参数为每个映像指定一个名字,以供引导时选择。
  10."read-only"设定以只读方式挂入根文件系统,用于文件系统一致性检查(fsck)。
  11."install=" 安装一个指定文件作为新的引导扇区,缺省为/boot/boot.b。
  12."loader=" 说明所使用的链加载程序(chain loader),缺省为/boot/chain.b,如果不是从首硬盘或软盘启动,那么,此选项必须说明。
  13."table=" 说明包含分区表的设备名,如果此参数忽略,引导加载程序将不能传递分区信息到已引导的操作系统。当此参数指向的分区表被修改时,必须重新运行/sbin/lilo。
  14."init="内核初始化时执行的程序,通常过程为init、getty、rc和sh,版本1.3.43以来的Linux内核能够执行/sbin/init说明的命令行,若在引导过程中出现问题,则可设置init=/bin/sh直接跳到Shell。
  15."ramdisk_start=" 由于内核不能放在压缩的内存文件系统映像内,为使内核映像能够和压缩的内存映像放在一张软盘内,加入"ramdisk_start= 〈offset〉",这样内核才能开始执行。
  16."mem="此参数的目的之一是为Linux指定使用的内存数量:如mem=96MB,目的之二是指定mem=nopentium告诉内核不要使用4MB分页表。
  17."vga="设置显示模式,如80×50、132×44等。

三、LILO典型配置方法


  通常情况下,Linux的安装程序自身就可以完成LILO的安装配置,从而较好地解决多重系统的引导问题,如果系统不能自动完成这种配置,则可以通过手工修改配置文件/etc/lilo.conf来实现不同条件下的引导。
  1.当系统能自动完成配置时
  对于这种情况只有一个建议:将LILO安装到Linux分区的根上,而不是MBR这个多事地带。假设当前hda1中装有DOS/Windows,hda2中安装了Linux,则/etc/lilo.conf的内容大致如下:
  boot=/dev/hda2 #指定引导位置
  compact delay=50 #延时5秒
  root=current #根在当前分区
  image=/boot/vmlinuz #指定linux的内核文件  
  label=linux #用linux为代表名称 
  other=/dev/hda1 #其他操作系统所在的分区
  table=/dev/had #指定包含分区表的硬盘
  label=dos #用dos为代表名称
  2.当系统无法自动完成配置时
  系统无法自动完成配置的情况不外乎两种:
  (1)BIOS不能直接看到Linux的根分区;
  (2)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/vmlinuz #内核文件应事先拷贝到/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。
  对于大硬盘问题,很多人只知道低于1024个柱面的限制,而不知为什么标准的IDE硬盘只能认前504MB。
  其实,BIOS的int13调用是采用三个位元组的CHS编码,10位为柱面号,8位为磁头号,6位为扇区号。可能的柱面号码是0~1023,可能的磁头号码是0~255,而磁道上可能的扇区号码是1~63,以这24位最多可以定址8455716864个位元组(7.875GB)。
  但不幸的是,标准的IDE介面容许256个扇区/磁道、65536个柱面及16个磁头。它自己本身可以存取237= 137438953472(128 GB),但是加上BIOS方面63个扇区与1024个柱面的限制后只剩528482304(504 MB)可以定址得到。
  对策:在硬盘的前500MB中划分350MB(/dev/hda1)给DOS,150MB(/dev/hda2)给Linux,在相应的配置文件中应说明硬盘的参数。
  boot=/dev/hda
  ... ...
  disk=/dev/hda
  bios=0x80
  sectors=63
  heads=16
  cylinders=2100
  image=/vmlunuz
  append="hd=2100,16,23"
  root=/dev/hda2
  label=linux

四、LILO的卸载

  如果出于某些原因想要从硬盘上删除Linux,可以从新格式化硬盘。然而LILO仍将保留在那里,并且每次启动硬盘时都将试图引导Linux(甚至所有的文件被删除了也是这样)。这种情况只发生在把LILO写到了MBR的情况。有两种删除LILO的方法。
  当LILO覆盖了引导扇区时,它会保留一个引导扇区的备份在/boot/boot.xxyy中,其中xxyy是16进制的设备主/次号码(major/minor numbers),利用命令"ls -l /dev/device"就可获得硬盘或分区的主/次号码。如果这些备份文件已经存在,那么,当你重新安装LILO或重构内核时,它将不再生成此文件,这就保证了此备份文件是最原始的引导扇区。
  若要卸载LILO,你只需恢复初始的引导扇区就可以了。例如: LILO安装在/dev/had,对应的备份文件为/boot/boot.0300,简单地使用下面的命令即可:
  dd if=/boot/boot.0300 of=/dev/had bs=446 count=1
  在DOS下运行fdisk,并用下列命令清除MBR
  c:/fdisk/MBR
  该命令将完全刷新MBR,去掉LILO。另外可以用Linux的fdisk对Linux分区进行破坏。
  关于LILO值得探讨的问题还有很多,但只要懂得了其内部机制,对更复杂的实际情况也能较圆满地解决


阅读:349次

来源:china-pub
修复 Outlook 中缺少的 Microsoft Teams 插件 在 Outlook 中缺少 Microsoft Teams 插件可能会限制您在邮件客户端中直接访问 Microsoft Teams 的功能。在本文中,我将向您介绍一些修复缺少 Microsoft Teams 插件的方法,并提供相应的源代码。如果问题仍然存在,请确保您的 Outlook 和 Microsoft Teams 都是最新版本,并尝试在不同的计算机上进行测试。在实际使用中,请根据您的需求进行适当的修改和调整。如果前面的步骤未能解决问题,您可以尝试重新安装 Microsoft Teams 插件。 阅读详情

相关推荐

智能音箱开发者必看:CEVA-BX vs Cadence HiFi音频DSP实战选型指南(附功耗对比表)

本文深入对比了CEVA-BX和Cadence HiFi两大音频DSP架构在智能音箱开发中的性能差异,涵盖语音唤醒、多麦克风阵列处理等核心场景。通过实测数据和功耗对比表,为开发者提供选型参考,帮助优化产品性能和能效表现。

weixin_29309213的博客 226

【转】 Gentoo Linux内核配置

(转自:http://blog.youkuaiyun.com/unsigned_/article/details/6123426)基于Linux Kernel v2.6.36-gentoo-r5General setup ---> [*]Prompt for development and/or incomplete code/drivers //默认情况下是选择的,这将会在设置界面中显示还在开发或...

490

Kali Linux下John the Ripper实战:从识别yescrypt哈希到破解zip压缩包(保姆级避坑指南)

本文详细介绍了在Kali Linux中使用John the Ripper工具从识别yescrypt哈希到破解zip压缩包的全过程。针对常见的'No password hashes loaded'报错,提供了两种解决方案,并扩展讲解了哈希识别、zip文件破解及性能优化技巧,是安全测试人员的实用指南。

weixin_29323365的博客 236

【教程】Gentoo的安装

Gentoo Linux x86手册 内容: 安装Gentoo 在这部分中,你将学习如何在你的系统中安装Gentoo。 关于如何安装Gentoo Linux 本章介绍了本手册所讲解的安装方式。选择合适的安装方式 你可以用许多方法安装Gentoo。本章讲解怎样用

赵翔的专栏 2万+

基于Cesium的北斗卫星轨道实时可视化系统开发实践

本文详细介绍了基于Cesium的北斗卫星轨道实时可视化系统开发实践,涵盖系统架构设计、轨道计算实现、后端服务开发及前端可视化实现等关键环节。通过优化算法和数据流设计,系统实现了厘米级精度的卫星轨道实时渲染,适用于导航卫星系统的科研与工程应用。

j7k8l的博客 520

内网渗透—横向移动&IPC横移&Impacket套件&CS插件

以上便是IPC横移的知识。最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。

2301_76227305的博客 1890

Liunx LILO安装使用经验集

Linux是芬兰青年林努斯·托瓦茨开发并以其名字命名的著名的操作系统,由于它的免费和源代码开放等优点,越来越多的计算机爱好者在安装了Windows系统的PC机上同时安装Linux,以方便熟悉UNIX系统。LILO(Linux Loader)是Linux自带的一个优秀的引导管理器,使用它可以很方便地引导一台机器上的多个操作系统。虽然从Redhat7.3后有了GRUB引导系统,但很多用户还是喜

hustbest的专栏 4197

从零到一:YOLOv8在边缘设备上的轻量化部署实战

本文详细介绍了YOLOv8在边缘设备上的轻量化部署实战,涵盖模型优化、TensorRT加速、剪枝与知识蒸馏等关键技术。通过工业质检和智能门禁项目案例,展示了如何将YOLOv8高效部署到树莓派、Jetson Nano等资源受限设备,显著提升推理速度和降低内存占用。文章还提供了动态分辨率调整、多模型级联部署等实用技巧,助力开发者实现边缘AI应用的高效落地。

weixin_29040367的博客 379

开始使用gentoo linux——gentoo安装笔记(下)

上一章,已经对操作系统安装做了充分准备,并且已经从livecd(u盘系统)切换进入了gentoo安装环境中。不过现在才是真正的开始!打起精神!这可不是在装ubuntu!

devilyouwei - 黄有为 7021

反激变压器反射电压详解

我以前做过隔离式的POE模块,其电路实际就是个反激式开关电源。只不过其输入电压范围比较低,为44V-57V。 电路如下图,就是个flyback。 可以看到,电路中有个钳位电路,用来抑制电压尖峰,就在初级线圈那里。 问题 抑制尖峰通常有2种电路,一种叫RCD钳位,另外一种是用TVS管+二极管钳位。 这两种实际中都有用,今天我不想讨论它们的区别,只想说明一个问题: 为什么不能只用一个二极管搞定?像继电器电路那样?不也能抑制尖峰吗? 答案自然是不行的...

weixin_42005993的博客 2万+

HotSpot G1 GC 的分区记账、SATB 并发标记与停顿目标调优解析

线上GC毛刺该调停顿目标、加大新生代还是换收集器?本文从HotSpot G1的设计出发,梳理分区与巨型对象、卡表与记忆集、写屏障与细化线程、停顿预测、SATB并发标记、自适应IHOP、混合回收规则及Full GC兜底,并注明JDK8至JDK27的版本差异。文中在JDK8与JDK17上实测:停顿目标从200ms降到20ms,伊甸区缩小四成、P99下降但仍超目标;巨型对象会反复触发又撤销并发标记;JDK17并行Full GC平均停顿约为JDK8的三成。最后给出日志解读、参数清单、调优流程与选型。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

LINUX LILO若干问题探讨 (转)

LINUX LILO若干问题探讨 (转)[@more@]Linux LILO若干问题探讨  Linux的引导可以采用多种方式,其加载器LILO(Linux Loader)是一个灵活的引导加载程序,与其他常用的引导加载程序相比,L...

ciya3282的博客 156

QML从入门到实战 - 完整学习路线

想入门 QML 开发?来 “从零开始学 QML” 专栏,海量源码 + 实战案例 + 大型项目拆解,手把手教你搞定跨平台 UI 设计,小白也能轻松掌握!

BenBierBa的博客 3477

linux的lilo,深入Linux的LILO

网络设备名 〉:〈auto〉5.“image=”指定Linux的内核文件。6.“delay=”设定引导第一个映像前的等待时间。7.“disk=”此参数为某一非凡的硬盘定义非标准参数。8.“append=”为内核传递一个可选的参数行,其典型的应用是为不能完全由系 统自动识别的硬盘指定参数,如:append = "hd=64,32,202"9.“label=”此参数为每个映像指定一个名字,以供引导时选...

weixin_36166558的博客 349

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

linux lilo_LInux装箱商(LILO)| 免费和开源软件

linux lilo 力乐 (LILO) LILO is the LInux LOader, the most well-known boot loader for Linux. It is utilized to stack Linux into memory and start the OS. On a machine with the various OS, LILO can be set ...

cumt30111的博客 391

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Linux的LILO引导程序,LILO引导装载器详解

LILO(即 LInuxLOader)是最常用的两种 Linux 引导装载程序之一。LILO可以被安装进可引导硬盘驱动器的 MBR或者分区的分区引导记录。它还可以安装在可移除设备上,比如软盘、CD 或USB 钥匙。如果您还不熟悉 LILO,那么在软盘或 USB钥匙上进行实践是好办法,所以我们在例子中就是这么做的。在安装 Linux期间,常常指定 LILO 或 GRUB 之一作为引导管理程序。如果选...

weixin_29923451的博客 1186

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深入Linux的LILO

深入Linux的LILOnull 江永忠 〖返回〗〖转发〗深入Linux的LILO                                   作者: 江永忠                                           Linux的引导可以采用多种方式,其加载器LILO(Linux Loader)                    是一个灵活

hem的专栏 1万+

LILO-Linux引导程序

LILO(LInuxLoader),即Linux引导程序。LILO是一个在系统启动时运行的程序,它用于选择引导计算机启动的操作系统。

顺其自然~专栏 751

linux lilo命令,lilo命令_Linux lilo命令使用详解:安装核心载入开机管理程序

lilo命令用于安装核心载入,开机管理程序。lilo是个Linux系统核心载入程序,同时具备管理开机的功能。单独执行lilo指令,它会读取/etc/lilo.conf配置文件,然后根据其内容安装lilo。Linux lilo已经成为所有 Linux 发行版的标准组成部分。作为一个 较老的/最老的 Linux 引导加载程序,它那不断壮大的 Linux 社区支持使它能够随时间的推移而发展,并始终能够充...

weixin_29589063的博客 610

LILO详解

LILO详解 此文系转载 作者:佚名 原始网址:不详 LILO(Linux Loader)是Linux自带的一个优秀的引导管理器,使用它可以很方便地引导一台机器上的多个操作系统。与其他常用的引导加载程序相比,LILO引导 方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多操作系统、网络引导、大硬盘及大内存等诸多棘手的问题。   通常我们谈到LILO,会涉及到两个方

stonesharp的专栏 2253

lilo使用指南

lilo使用指南2004-04-23 15:18 pm作者:作者来自:Linux知识宝库现载:http://www.douzhe.com/docs/linuxtips/地址:无名先整理资料,省的到时候google,一下又找不到....

704

linux lilo命令,lilo命令_Linux lilo 命令用法详解:安装核心载入开机管理程序

lilo命令用于安装核心载入,开机管理程序。lilo是个Linux系统核心载入程序,同时具备管理开机的功能。单独执行lilo指令,它会读取/etc/lilo.conf配置文件,然后根据其内容安装lilo。Linux lilo已经成为所有 Linux 发行版的标准组成部分。作为一个 较老的/最老的 Linux 引导加载程序,它那不断壮大的 Linux 社区支持使它能够随时间的推移而发展,并始终能够充...

weixin_30899023的博客 563

LILO配置攻略

LILO配置攻略 蓝森林 http://www.lslnet.com 2000年9月21日 20:57作 者: 周迪  LILO(Linux Loader)是Linux自带的一个优秀的引导管理器,使用它可以很方便地引导一台机器上的多个操作系统。与其他常用的引导加载程序相比,LILO引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多操作系统、网络引导、大硬

凤凰涅槃 1257

LILO详细解释

如今,大多数主流的 Linux 发行版已经默认使用 GRUB 作为引导加载程序,LILO 在新的 Linux 发行版中不再得到广泛支持。LILO 是 Linux 系统中早期的重要引导加载程序,负责将操作系统内核加载到内存中并启动系统。尽管如此,LILO 仍然是 Linux 引导加载程序发展史上的重要一环,了解 LILO 对于理解 Linux 系统的引导机制和历史演变具有一定的意义。今天,GRUB 已成为主流的 Linux 引导加载程序,但在特定的场景中,LILO 仍然可以作为一个简单而有效的引导加载工具。

Flying_Fish_roe的博客 852

lilo是什么意思_Lilo

That way, if I messed up any of the configuration in my lilo. conf file, I could take out the boot disk and boot into Linux as before.那样,如果弄乱了lilo.conf文件中的任何配置,都可以取出引导磁盘并像先前一样引导到Linux。The traditional ...

weixin_39923623的博客 354
上一篇: 重装Windows后如何恢复与原Linux的双重引导
下一篇: Linux与分区
hem
hem
博客等级 码龄26年 19粉丝 287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值