发新话题
打印

请教高手:启动时bootsect.S为什么去软盘读setup.S?

请教高手:启动时bootsect.S为什么去软盘读setup.S?

请问高手:启动时bootsect.S为什么去软盘读setup.S(int 13H时DL=00,应该是指驱动器是软驱吧?)?而且只从软盘读?我的系统都没有软驱,linux怎么可以启动呢?我的内核是2.4.20-8.不是应该去硬盘上读吗?企盼高手指点,先谢谢了! :confused:      

TOP

2.4.20版启动时bootsect模块是去软驱读setup模块,而且读不到就死机;
然而2.6.11版启动时bootsect模块是什么东西都不读,直接显示"不能从软驱启动,按任意键重启",然后重新装入到0x7c00,再跳到0xffff0重新启动;
这都是什么意思?为什么是这样呢?搞的我莫名其妙,哪位能指点一下呢?
这么多天过去了,没有一个人来指点指点,不知道是知道的不屑回答,还是都不知道呢?很有点郁闷啊!      

TOP

没遇到过这问题。你可以找个正常的模块对比下代码看看。      

TOP

我也不懂,帮你顶!!!我想跟你一起学习~!qq52775099      

TOP

kernel2.6的bootsect.S看不懂啊!请高手指点      
我爱企鹅

TOP

好像是说不支持直接软盘启动,用别的载入器间接启动。也就是说linux内核中软盘启动的代码被取消了。      
我爱企鹅

TOP

2.6版本不再支持软盘启动

我们知道系统启动的顺序是: bootsect.S --> setup.S --> head.S 其中
bootsect.S放在磁盘的第一个扇区,当电脑启动时, BIOS自动将其
读入到0x7c00处,进而加载系统。如果只安装一个操作系统,
只要将bootsect.s写入磁盘首扇区即可引导进入linux。但是一般
(并非全部)人往往在安装linux之外不得不安装windows,这就涉
及到多重启动问题。在linux下一般用lilo或grub来进行多重引导,
随着boot loader的不断发展,功能越来越强,其作用也与原来的
bootsect.S有一定重叠。甚至可以完全取而代之。kernel的开发者可
能意识到在近期内linux不太可能将windows赶出电脑。另一方面,
也为了增加引导的灵活性,所以在2.5.57版中对bootsect.S做了较大
的删改,将原本bootsect.S的功能移出到boot loader中,这一更改在
正式的2.6.0版中得以保留。但是负面影响也是显而易见的,即
这样一来,系统只能由boot loader来引导,即使从软盘启动也是
一样。造成了一定的不便。      

TOP

发新话题