戴尔笔记本重装系统u盘启动教程开机提示找不到引导设备,按任意键重启,无法进入BIOS,按f12是还是跳出这个页面,怎么办

主要描述boot/目录中的三个汇编代码攵件见列表3-1所示。正如在前一章中提到的这三个文件虽然都是汇编程序,但却使用了两种语法格式bootsect.ssetup.s采用近似于Intel的汇编语言语法,需要使用Intel8086汇编编译器和连接器as86ld86head.s则使用GNU的汇编程序格式,并且运行在保护模式下需要用GNUas进行编译。这是一种AT&T语法的汇编语言程序

使用两种编译器的主要原因是由于对于Intelx86处理器系列来讲,GNU的编译器仅支持i386及以后出的CPU不支持生成运行在实模式下的程序。

阅读这些代碼除了你需要知道一些一般8086汇编语言的知识以外还要对采用Intel80X86微处理器的PC机的体系结构以及80386 32位保护模式下的编程原理有些了解。所以在开始阅读源代码之前可以先大概浏览一下附录中有关PC机硬件接口控制编程和80386 32位保护模式的编程方法在阅读代码时再就事论事地针对具体问題参考附录中的详细说明。

这里先总的说明一下Linux操作系统启动部分的主要执行流程当PC电源打开后,80x86结构的CPU自动进入实模式从地址0xFFFF0开始自动执行程序代码,这个地址通常是ROM-BIOS中的地址PC机的BIOS将执行某些系统的检测,并在物理地址0处开始初始化中断向量此后,它将可啟动设备的第一个扇区(磁盘引导扇区512字节)读入内存绝对地址0x7C00处,并跳转到这个地方启动设备通常是软驱或是硬盘。这里的叙述是非常简单的但这已经足够理解内核初始化的工作过程了。

Linux的最最前面部分是用8086汇编语言编写的(boot/bootsect.s)它将由BIOS读入到内存绝对地址0x7C00(31KB)处,当它被執行时就会把自己移到绝对地址0xKB)处并把启动设备中后2kB字节代码(boot/setup.s)读入到内存0x90200处,而内核的其它部分(system模块)则被读入到从地址0x10000开始处因為当时system模块的长度不会超过0x80000字节大小(即512KB),所以它不会覆盖在0x90000处开始的bootsectsetup模块后面setup程序将会把system模块移动到内存起始处,这样system模块中代碼的地址也即等于实际的物理地址便于对内核代码和数据的操作。图3-1清晰地显示出Linux系统启动时这几个程序或模块在内存中的动态位置其中,每一竖条框代表某一时刻内存中各程序的映像位置图在系统加载期间将显示信息"Loading..."。然后控制权将传递给boot/setup.s中的代码这是另一个实模式汇编语言程序。

启动部分识别主机的某些特性以及vga卡的类型如果需要,它会要求用户为控制台选择显示模式然后将整个系统从地址0x10000移至0x0000,进入保护模式跳转至系统的余下部分(在0x0000处)此时所有32位运行方式的设置启动被完成: IDTGDT以及LDT被加载,处理器和协处理器也巳确认分页工作也设置好了最终调用init/main.c中的main()程序。上述操作的源代码是在boot/head.S中的这可能是整个内核中最有诀窍的代码了。注意如果在前述任何一步中出了错计算机就会死锁。在操作系统还没有完全运转之前是处理不了出错的

为什么不把系统模块直接加载到物理地址0x0000开始处而要在setup程序中再进行移动呢?这是因为在setup程序代码开始部分还需要利用ROM BIOS中的中断调用来获取机器的一些参数(例如显示卡模式、硬盘參数表等)当BIOS初始化时会在物理内存开始处放置一个大小为0x400字节(1Kb)的中断向量表,因此需要在使用完BIOS的中断调用后才能将这个区域覆盖掉

  现在电脑出现大问题大多數用户都直接选择有

了。在用U盘重装系统前我们得从BIOS设置U盘启动。最近有用户在使用U盘装机大师重装电脑的时候发现BIOS设置中找不到USB-HDD等U盘啟动项这是怎么回事呢?今天小编就为大家讲解

BIOS设置中找不到U盘启动项

1.检查U盘启动盘工具是否制作成功;

2.插入U盘启动盘台式机建议插箌后置USB接口,重启系统按Del/F2进入BIOS设置,进入

7.按F10保存重启系统即可进入U盘界面。


1.新型主板预装win8或win10默认启用安全启动模式同时会禁用U盘启動项。

  以上两种方法就是解决BIOS找不到U盘启动项的方法了如果在使用U盘安装系统的时候碰见这个问题的话,就依照上面的方法操作解決

我要回帖

更多关于 戴尔笔记本重装系统u盘启动教程 的文章

 

随机推荐