linux的多种启动方式 |
|
| 2004-05-19 任斌 |
| |
为了启动你的linux系统, 你通常需要安装lilo (the linux loader)。你可以把lilo安装在以下两个地方之一:主引导扇区(mbr),引导扇区。若安放在mbr中,则只能用linux启动;若安放在引导扇区中,则可以用不同的启动方式,如:dos,windows 98,linux等。大家都知道bios只能装载mbr,然后从当前活动分区启动。这样看来只可能有一种启动方式,linux又是如何实现多种启动方式的呢?这就要从主引导扇区说起了。
mbr即硬盘的0柱面0磁头1扇区。通常我们是看不到它的,用debug的l 0 0 1命令看到的只是硬盘的逻辑第一扇区,即硬盘的0柱面1磁头1扇区,要看到它除非用专门的工具,如:kv300,ndd或者调用bios 13h功能。mbr中的内容可分为三类,主引导记录,硬盘分区表和mbr结束标志55 aa。如何实现多种启动方式,关键是看主引导记录这部分。
主引导记录是计算机启动后bios最先调用的硬盘程序。当bios把完成硬件检查后就把mbr调到内存的0000:7c00处, 并把控制权交给主引导程序。主引导程序接到控制权后,首先把它自己移到内存的0000:0600处,接着检查硬盘分区表,看是否存在惟一的活动分区80(hex),若找不到则启动失败,若找到则将活动分区的第一个扇区读到内存的0000:7c00处,然后检查mbr的结束标志55 aa,若找到则跳到0000:7c00处,即执行boot引导程序,引导操作系统。流程图如下:
不知大家注意到没有mbr中有一条语句是jmp 0000:061d,这可是一个关键,若我们把这条语句改一下,让它跳到我们附加程序的入口不就可以达到我们的目的了吗?我们在附加程序里让用户输入需启动的操作系统,如dos,linux,然后根据用户的输入选择活动分区,将活动分区的引导扇区读入内存并引导相应的操作系统。还有一种方法,那就是重写整个主引导程序,让它按照你的意愿想怎么样就怎么样,当然这样就更难了。
顺便提一下,若我们写一个附加程序使它能读入用户输入的密码,并能检查密码的合法性,那么不就可以实现给硬盘加锁了吗? |
|
| |
|
发表评论
推荐文章
关闭窗口
|
|
|
|