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

2024-03-02 14:43:19 浏览数 (2)

insmod

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

补充说明

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

语法

insmod [选项] [参数]

选项

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

参数

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

实例

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

代码语言:javascript复制
[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用户身份输入:

代码语言:javascript复制
/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 示例文件:

代码语言:javascript复制
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 类似,需要运行:

代码语言:javascript复制
/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来上传修改。

0 人点赞