Linux系统程序启动引导过程详细剖析
Linux的一个吸引人的特性就是用户可以自行定制整个系统,你可是运行一个只有1M的“迷你”Linux,也可以运行一个几G的强大Linux.而无论你运行怎样的Linux,你都是先从引导程序开始运行的.对于普通用户,大多都是在个人电脑上运行Linux的. 个人电脑,又叫PC机,是我们常见的使用Intel或AMD的芯片的电脑.当我们接通PC机的电源之后,CPU会执行第一条指令,第一条指令通常是使CPU能跳跃到BIOS的入口地址上,然后BIOS就开始进行开机自检,包括对内存等硬件进行检测,如果存在其它设备的也自带有BIOS(比如SCSI或RAID设置等),也会执行它们.完成自检后的BIOS会根据设定好的启动设备和启动顺序来启动真正的操作系统,如Linux(本文以Linux为例). 对于PC机,有以下几种设备可以作为启动设备来使用: 1) 硬盘 这是最常用的启动设备,硬盘有IDE接口和SCSI接口的两种,IDE硬盘价格比SCSI硬盘要便宜的多,,大多数PC机都使用的是IDE硬盘.一台PC机中可能有多个硬盘,用户可以在PC机的CMOS设置哪块硬盘启动. 2) 软盘 软盘是PC机必备的设备之一.常用作安装系统或作为系统应急盘使用.也出现了很多一张软盘上的Linux系统. 3) 光盘驱动器 光盘驱动器也是PC机必备的设备之一,包括CDROM、DVDROM、以及各种刻录机等.现在多数用户都是通过光驱来安装Linux的. 4) USB盘 随USB盘的出现,许多主板也都开始支持从USB设备上来启动系统了.USB盘的容量远大于软盘,目前有取代软盘的趋势. 5) 网卡的Boot ROM 有一些网卡带有Boot ROM芯片,可将引导信息写入Boot ROM,许多主板都支持Boot ROM启动.常用于无盘工作盘环境中. 无论系统选择了哪一种启动设备,它都将会去将该设备起始地址的内容读入内存,如果你的启动设备是IDE硬盘,系统就会去去读取硬盘的第一个扇区(这个扇区通常被称做主引导扇区,又称MBR),并将这个扇区的内容读入内存,然后运行它.到这一步的时候是引导Linux操作系统的关键了,这一步将尝试去启动Linux的引导程序,如果找不到引导程序,将无法引导Linux.许多人在无法启动Linux的时候,其实大多都是引导程序损坏或是配置不当所造成的. 拥有帝国一切,皆有可能。欢迎访问phome.net 那么什么是引导程序呢?其实你每天打开电脑,所接触到的第一个程序就是引导程序.它的责任是载入操作系统内核软件并把控制权转交给它.对于Linux来说引导程序就是负责在启动计算机时装入Linux的Kernel,并将计算机的控制权交给Kernel,然后Kernel再进一步初始化剩余的操作系统,直到Linux显示用户登录画面.由此可见引导程序对于一个操作系统来是非常重要的. Linux 的引导程序有很多种,最为常见是lilo和grub: 1) lilo lilo是用于Linux的灵活多用的引导程序.它并不依赖于某一特定文件系统,能够从软盘和硬盘引导Linux内核映像,当然它也能够引导其它操作系统.在grub出现之前,lilo可谓Linux引导程序的最佳选择.而目前仍然也很多人在使用它. grub是比lilo新的一个功能强大的引导程序.专门处理Linux与其他操作系统共存的问题.它可以引导的操作系统有Linux、OS/2、Windows系列、BeOS、Solaris、FreeBSD、NetBSD等.它的优势在于支持大硬盘、支持开机画面(能支持到1024x768的画面)、支持菜单式选择,并且分区位置改变后不必重新配置,使用非常方便.较新发行的各版本Linux大多采用grub作为默认的引导程序. 3) 其它引导程序 如果你没有安装lilo或grub,或者你的lilo或grub损坏了(比如不小心覆盖了MBR),那么你将无法直接引导Linux.还好,这时候你还可以通过其它方式来引导,比如:Linux的引导盘,或者是利用loadin、syslinux等程序来从ms-dos中载入Linux. 如果引导程序成功后,Linux内核就接管了系统,开始了Linux的启动过程(关于Linux的启动过程将另文介绍).但如果引导过程的发生错误又将如何处理呢? 1. 分析屏幕显示的错误信息 引导程序本身所显示的错误信息都是有含义的,需要认真阅读.比如: lilo的错误信息 当lilo启动完成时,会在屏幕上显示字符串"lilo",其实这其中的每个字母背后都对应着特定的操作.如果lilo在某个部分出了错,我们就可以根据屏幕上当前出现的字母推断出故障原因.比如:当屏幕上什么都没出现,就可能表示lilo还未被安装或者lilo所在的分区未被设为active状态.而屏幕显示”li“,则表示lilo引导程序的第一部分能够将lilo引导装入程序的第二部分装入,但却不能执行.这可能是硬盘参数设置不当或者是在移动/boot/boot.b时没有运行map安装程序.而屏幕显示"lil",则可能是介质故障或硬盘参数设置不当,无法从map文件中装载描述符表......,详细的错误信息解释也可以从相关网站上找到. 拥有帝国一切,皆有可能。欢迎访问phome.net Grub的错误信息: 和lilo相比grub的信息要好理解一些,它是直接用英语来表达的,而不是用符号.比如:"Hard Disk Error"、"Read Error"、"Selected disk doesn''t exist"、"Disk geometry error"、"Device string unrecognizable"、"Attempt to access block outside partition"、"Partition table invalid or corrupt"等.详细的错误信息解释也可以从相关网站上找到. 2.通过光盘或软盘引导进入系统,修复原引导程序 通过分析屏幕显示的错误信息后,应该能大致找到原引导程序的出错原因.这时候可以通过光盘或软盘引导进入系统.许多Linux的发行光盘就是可以启动的,比如:slackware就是很好的引导光盘.进入系统后,可以重装引导程序或者重新设置引导程序. 拥有帝国一切,皆有可能。欢迎访问phome.net |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |