【linux命令讲解大全】202.Linux内核模块加载工具insmod和开机管理程序lilo的使用说明

insmod

将给定的模块加载到内核中

补充说明

insmod命令用于将给定的模块加载到内核中。Linux有许多功能是通过模块的方式,在需要时才载入kernel。如此可使kernel较为精简,进而提高效率,以及保有较大的弹性。这类可载入的模块通常是设备驱动程序。

语法

insmod [选项] [参数]

选项

-f:不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入;
-k:将模块设置为自动卸除;
-m:输出模块的载入信息;
-o<模块名称>:指定模块的名称,可使用模块文件的文件名;
-p:测试模块是否能正确地载入kernel;
-s:将所有信息记录在系统记录文件中;
-v:执行时显示详细的信息;
-x:不要汇出模块的外部符号;
-X:汇出模块所有的外部符号,此为预设置。

参数

内核模块:指定要加载的内核模块文件。

实例

加载RAID1阵列级别模块,如下所示:

[root@localhost boot]# insmod /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid1.ko  
[root@localhost boot]# lsmod | grep raid1
raid1                  25153  0

从以上显示结果可知,RAID1模块已加载成功。只是在使用insmod命令加载模块时,需要使用绝对路径方能加载,且加载时无法自动解决依赖关系。

lilo

安装核心载入开机管理程序

补充说明

lilo命令用于安装核心载入、开机管理程序。lilo是个Linux系统核心载入程序,同时具备管理开机的功能。单独执行lilo指令,它会读取/etc/lilo.conf配置文件,然后根据其内容安装lilo。

Linux lilo已经成为所有Linux发行版的标准组成部分。作为一个较老的/最老的Linux引导加载程序,它那不断壮大的Linux社区支持使它能够随时间的推移而发展,并始终能够充当一个可用的现代引导加载程序。有一些新的功能,比如增强的用户界面,以及对能够突破原来1024-柱面限制的新BIOS功能的利用。

虽然LILO仍在不断地发展,但LILO工作原理的基本概念保持不变。

语法

lilo [选项]

选项

-b<外围设备代号>:指定安装lilo之处的外围设备代号;
-c:使用紧致映射模式;
-C<配置文件>:指定lilo的配置文件;
-d<延迟时间>:设置开机延迟时间;
-D<识别标签>:指定开机后预设启动的操作系统,或系统核心识别标签;
-f<几何参数文件>:指定磁盘的几何参数配置文件;
-i<开机磁区文件>:指定欲使用的开机磁区文件,预设是/boot目录里的boot.b文件;
-I<识别标签>:显示系统核心存放之处;
-l:产生线形磁区地址;
-m<映射文件>:指定映射文件;
-P<fix/ignore>:决定要修复或忽略分区表的错误;
-q:列出映射的系统核心文件;
-r<根目录>:设置系统启动时欲挂入成为根目录的目录;
-R<执行指令>:设置下次启动系统时,首先执行的指令;
-s<备份文件>:指定备份文件;
-S<备份文件>:强制指定备份文件;
-t:不执行指令,仅列出实际执行会进行的动作;
-u<外围色设备代号>:删除lilo;
-U<外围设备代号>:此选项的效果和指定"-u"参数类似,当不检查时间戳记;
-v:显示指令执行过程;
-V:显示版本信息。

实例

使用LILO作为引导加载程序

要使用LILO作为引导加载程序,需要做的事情取决于是要进行全新安装还是要让已经安装的Linux改为使用LILO。如果是要进行全新安装,那么直接跳转到 配置LILO那一节。如果已经安装了某个Linux发行版,那么通常可以选择安装并配置LILO(并可以将机器引导到新的Linux安装)。

要将现有的Linux迁移到LILO,首先必须获得最新版本的LILO(见参考资料)。在做任何其他事情之前,建议您确保在手边拥有一张Linux引导盘 —— 如果偶而弄错了某些地方,它可以提供很大的帮助,能够恢复到初始的Linux配置!将LILO安装到系统中之后,让它接管MBR非常简单。以root用户身份输入:

/sbin/lilo -v -v

这将使用当前的LILO默认值,抹去MBR中当前所有内容。不过,请阅读配置LILO,以确保能够按预期引导起来。也要注意,如果想要在同一机器上运行Windows和Linux,那么应该先安装WindowsOS,然后再安装LinuxOS,这样,在Linux安装中所选择的引导加载程序就不会被Windows引导加载程序所覆盖。与Linux引导加载程序不同,多数Window引导加载程序不支持引导Linux。如果已经先安装了Linux,那么只需要自己创建一张Linux引导盘,这样就可以在安装完Windows之后,回到Linux安装中并重写MBR。

配置LILO

LILO的配置都是通过位于/etc/lilo.conf的一个配置文件来完成的。清单1给出了一个示例配置,使用的是我的家用机器,支持Linux和Windows机器的双重引导。了解我的工作站的基本配置,就可以想像出这些配置是如何与实际机器相关联的:

主HDD(物理磁盘1)上安装了WindowsXP(最初机器上只有它)。在Linux术语中,这个HDD是/dev/hda(在grub术语中是hd0,0)。

从HDD(物理磁盘2)上安装了Red Hat Linux;root分区位于这个硬盘驱动器的第三个分区,即/dev/hdb3(在GRUB术语中是hd1,3)。

lilo.conf 示例文件:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=100
compact
default=Linux
image=/boot/vmlinuz-2.4.18-14
	label=Linux
	root=/dev/hdb3
	read-only
	password=linux
other=/dev/hda
	label=WindowsXP

配置文件选项说明:

boot= 行告诉LILO在哪里安装引导加载程序。在上面的示例中,将把它安装到第一块硬盘的MBR。也可以选择将LILO安装到/dev/hdb3(示例中的Linux分区),这样需要向/dev/hda安装另一个引导加载程序,并令其指向LILO引导加载程序;然后只需要让LILO作为二级引导加载程序。通常,引导加载程序应该位于/dev/hda。还可以将这个参数指向软盘驱动器(最常见的是/dev/fd0),来制做LILO软盘引导磁盘。
map= 指向引导期间LILO内部使用的映射文件。当使用/sbin/lilo命令安装LILO时,它会自动生成这个文件,其中包含有描述符表(还有其他内容)。建议不要改动这个文件!
install= 是LILO在引导过程中内部使用的文件之一。它同时包含有引导加载程序的主要部分和二级部分。boot.b文件的一个片段被写入到MBR(引导加载程序的主要部分),它会指向那个映射,接下来指向二级引导加载程序。同样,不要改动它!
prompt= 告诉LILO使用用户界面(本例中给出了两个选择——Linux和WindowsXP)。除了使用prompt/user界面以外,在适当情况下还可以为Linux内核等指定具体的参数。如果不在配置文件中指定此选项,那么LILO将引导到默认的OS,不发生任何用户交互,也不会等待。(但是请注意,如果在引导时按下了SHIFT,那么还是可以得到提示,当不想把引导加载程序暴露给普通用户时,这非常有用)。
timeout= 是引导提示在自动引导默认OS(本例中是Linux)之前的等待时间(以十分之一秒为单位)。 如果在lilo.conf没有指定prompt,那么这个参数就会被忽略。
compact 选项可以大大加速引导过程,它会将连续的读磁盘的请求合并为一个单独的请求。不过,这可能是一件祸福参半的事情,因为我在论坛上看到过很多贴子提到了关于此选项的问题。当希望从软盘引导时,这个选项尤其有用。
default= 选项告诉LILO默认使用哪个映像进行引导,比如在等待超时之后。这与lilo.conf文件中的某个映像的标签相关联。如果没有在配置文件中指定此选项,那么它将引导文件中指定的第一个映像。
对于允许用户引导到的每一个Linux版本,都应该指定image=及以下三个选项。image 选项指定希望引导到的内核版本。
label= 标明了在运行期间希望能够从用户界面引导的不同OS。另外,这个标签用于指定引导的默认OS。 (注意:标签名称中避免出现空格;否则,引导那个文件时会出现无法预期的错误。)
root= 告诉LILO OS文件系统实际所在的位置。在我们的示例中为/dev/hdb3,即第二块硬盘上的第三个分区。
read-only 告诉LILO以只读的方式初始引导到文件系统。OS一旦完全引导起来,就会以读写方式挂载。
password= 允许您为将要引导到的特定OS设置口令。不幸的是,这个口令是以可读文本的方式保存在lilo.conf文件中,所以,所有人都能够读取它。如果需要,还可以对想要引导自的每个操作系统设置口令(在我们的示例中,只为Linux的引导设置了一个口令)。
other= 的动作类似于image和root选项的组合,但是用于除了Linux以外的其他操作系统。 在我们的示例中,它告诉LILO到哪里去找到WindowsOS(位于第一块硬盘的第一个分区)。如果先安装Windows,后安装Linux,通常会是这样。
label= 与所有其他label选项相同。

在lilo.conf文件中可以使用很多其他参数,不过清单1中的参数就足以让机器可用了。要获得关于lilo.conf的这些以及其他参数的进一步资料,请参考手册页(man lilo.conf)。由于在引导时不会读取lilo.conf,所以,当这个文件有改动时,需要“更新”MBR。 如果不完成此步骤就重新引导,那么对lilo.conf的修改不会在启动中反映出来。与先前将LILO写入MBR 类似,需要运行:

/sbin/lilo -v -v

-v -v标记会为您给出非常详细的输出。当像我们那样运行LILO时,有很多参数可以指定。 参阅手册页以获得更进一步的信息(man lilo)。

初始引导过程

当LILO初始引导时,它会按次序打印出每个字母——L-I-L-O。如果所有字母都显示出来,那么第一阶段引导就成功了。缺少任何内容 都表示出现了问题:

L:第一阶段引导加载程序已经被加载。如果LILO停止在这里,那么是在引导第二阶段引导加载程序时出现了问题。这通常会伴随有一个错误代码。 在这个阶段的常见问题是介质问题,或者在lilo.conf文件中指定了不正确的磁盘参数。

LI:第二阶段引导加载程序已经被加载。LILO在此处停止表示第二阶段引导加载程序不能被执行。同样,这可能是因为出现了与只显示L类似的问题: 正在加载,或者因boot.b文件被破坏、移动或删除而不能加载。

LIL:第二阶段引导加载程序正在被执行。此时,可能会再次出现介质问题,或者映射文件(如lilo.conf文件中所指定的)在寻找描述符表时 可能会出现问题。

LIL?:加载到与上面相同的阶段。这通常意味着加载第二阶段引导加载程序使用了错误的地址,最常见的原因是boot.b所在的位置与lilo.conf文件所指定的不同。

LIL-:加载到与上面相同的阶段。加载描述符表时出现问题,最常见的原因是描述符表错误。

LILO:LILO成功被加载,没有出现任何错误。

引导时的附加配置

LILO被成功加载后,将看到LILO提示符。还是使用前面的示例lilo.conf文件,此时将有两个选择,可能对LILO新手来说并不直观。首先,可以 让LILO超时(10秒后),这将引导/dev/hdb3,即Linux分区。另外,可以按下TAB键,这将列出将要引导的操作系统选项。在我们的示例lilo.conf中, 将得到的选项是“Linux”和“Windows”。输入哪一个,就会引导到哪个OS。指定加载Linux选项,会提示输入一个口令,在本例中是linux。如果输入的口令有误,则会返回LILO提示符。

不幸的是,LILO不支持引导期间的交互式配置,所以,只能在lilo.conf中或者运行/sbin/lilo时指定选项。

关于第一次尝试LILO的最后一点建议是:我发现使用软盘引导磁盘比使用硬盘实现LILO配置更为安全。为此,必须在lilo.conf文件中使用boot=/dev/fd0替换boot=/dev/hda。那样,如果弄乱了lilo.conf文件 中的任何配置,都可以取出引导磁盘并像先前一样引导到Linux。当使用软盘进行引导一切正常以后,可以将lilo.conf修改回boot=/dev/hda,然后最后一次运行/sbin/lilo来上传修改。

从零学 python

【从零学习python 】92.使用Python的requests库发送HTTP请求和处理响应
【从零学习python 】91. 使用装饰器和字典管理请求路径的简洁Web应用
【从零学习python 】93.使用字典管理请求路径
【从零学习python 】89. 使用WSGI搭建简单高效的Web服务器
【从零学习python 】88. WSGI接口详解:实现简单高效的Web开发
【从零学习python 】87. 手动搭建HTTP服务器的Python实现及多线程并发处理
【从零学习python 】86. 深入了解HTTP协议及其在浏览器和服务器通信中的作用
【从零学习python 】85.Python进程池的并行计算技术应用
【从零学习python 】84.深入理解线程和进程
【从零学习python 】83. Python多进程编程与进程池的使用
【从零学习python 】82. 基于多线程的聊天程序实现
【从零学习python 】81.Python多线程通信与队列的应用
【从零学习python 】80.线程访问全局变量与线程安全问题
【从零学习python 】79. 线程访问全局变量与线程安全问题
【从零学习python 】78. 文件下载案例
【从零学习python 】77. TCP服务端编程及注意事项
【从零学习python 】76.服务器与客户端:网络通信的关键组成部分
【从零学习python 】75. TCP协议:可靠的面向连接的传输层通信协议
【从零学习python 】74. UDP网络程序:端口问题与绑定信息详解
【从零学习python 】73. UDP网络程序-发送数据
【从零学习python 】72. 深入理解Socket通信及创建套接字的方法
【从零学习python 】71. 网络端口及其作用
【从零学习python 】70.网络通信方式及其应用:从直接通信到路由器连接多个网络
【从零学习python 】69. 网络通信及IP地址分类解析
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
【从零学习python 】67.Python中的re模块:正则替换与高级匹配技术
【从零学习python 】66.深入了解正则表达式:模式匹配与文本处理的利器
【从零学习python 】65. Python正则表达式修饰符及其应用详解
【从零学习python 】64. Python正则表达式中re.compile方法的使用详解
【从零学习python 】63.正则表达式中的re.Match类及其属性和方法介绍
【从零学习python 】62. Python正则表达式:强大的字符串匹配工具
【从零学习python 】61.Python中的property属性详解和应用示例
【从零学习python 】60.探索生成器:迭代的灵活利器
【从零学习python 】59.迭代器:优化数据遍历的高效工具
【从零学习python 】58.Python中的自定义异常及引发异常的方法
【从零学习python 】57.Python中使用with关键字正确关闭资源
【从零学习python 】56. 异常处理在程序设计中的重要性与应用
【从零学习python 】55.Python中的序列化和反序列化,JSON与pickle模块的应用
【从零学习python 】54. 内存中写入数据
【从零学习python 】53. CSV文件和Python的CSV模块
【从零学习python 】52.文件的读写 - Python文件操作指南
【从零学习python 】51.文件的打开与关闭及其在Python中的应用
【从零学习python 】49. Python中对象相关的内置函数及其用法
【从零学习python 】48.Python中的继承与多继承详解
【从零学习python 】47. 面向对象编程中的继承概念及基本使用
【从零学习python 】46. Python中的__new__和__init__方法解析及单例设计模式
【从零学习python 】45.Python中的类方法和静态方法
【从零学习python 】44.面向对象编程中的私有属性和方法
【从零学习python 】43. Python面向对象编程中的实例属性和类属性
【从零学习python 】42.Python中的内置属性和方法
【从零学习python 】41.python魔法方法(二)
【从零学习python 】40.python魔法方法(一)
【从零学习python 】39.面向对象基本语法及应用示例
【从零学习python 】38.Python包的使用及导入方式
【从零学习python 】37.Python自定义模块的使用和注意事项
【从零学习python 】36.Python中使用pip进行第三方包管理的方法与技巧
【从零学习python 】35. Python常见系统模块及其用法
【从零学习python 】34.Python模块的导入和使用方法详解
【从零学习python 】33.装饰器的作用(二)
【从零学习python 】32.装饰器的作用(一)
【从零学习python 】31.深入理解Python中的高阶函数和闭包
【从零学习python 】30.深入理解递归函数和匿名函数
【从零学习python 】29. 「函数参数详解」——了解Python函数参数的不同用法
【从零学习python 】28. Python中的局部变量和全局变量
【从零学习python 】27. Python 函数的使用及嵌套调用
【从零学习python 】25.函数:提高代码编写效率的利器
【从零学习python 】24. Python中的字符串操作与遍历方法
【从零学习python 】23. Python中集合(set)的使用方法和常见操作
【从零学习python 】22. Python中的字典的增删改查及字典的变量
【从零学习python 】21.Python中的元组与字典
【从零学习python 】20. Python列表操作技巧及实例
【从零学习python 】19. 循环遍历列表和列表嵌套的应用
【从零学习python 】18. Python列表的基本操作详解(一)
【从零学习python 】17. Python字符串的format方法(二)
【从零学习python 】16. Python字符串的format方法(一)
【从零学习python 】15.深入了解字符串及字符集编码
【从零学习python 】14.Python字符串常见操作(二)
【从零学习python 】13.Python字符串常见操作(一)
【从零学习python 】12.Python字符串操作与应用
【从零学习python 】11.Python循环语句和控制流程
【从零学习python 】10.Python条件语句和if嵌套详解
【从零学习python 】09.Python 中的条件判断语句
【从零学习python 】08.Python了解位运算符, 运算符优先级
【从零学习python 】07.Python运算符详解:赋值、比较和逻辑运算符
【从零学习python 】06. Python中运用算数运算符进行计算和字符串拼接
【从零学习python 】05. Python中的输出和输入
【从零学习python 】04. Python编程基础:变量、数据类型与标识符
【从零学习python 】03. Python交互式编程及注释详解
【从零学习python 】02. 开发工具介绍
【从零学习python 】01. 安装配置python

猜你喜欢

转载自blog.csdn.net/qq_33681891/article/details/133375797