您的位置:首页 > 其它

硬盘基础知识及如何从硬盘引导启动系统

2013-05-16 08:14 155 查看


硬盘基础知识及如何从硬盘引导启动系统
转载请注明出处:http://blog.csdn.net/rosetta

硬盘基础知识

硬盘的基本存储单位为扇区(Sector),每个扇区一般为512bytes。

一个硬盘有多个盘片,每个盘片有两面,每面按照同心圆划分为若干磁道,每个磁道划分为若干扇区。比如一个硬盘有2个盘片,每个盘面分65536磁道,每个磁道分1024个扇区,那么硬盘容易就是2盘片*2盘面*65536磁道*1024扇区*512字节 = 128GB

设备号:硬盘的主设备号为3。其它设备的主设备号为:1:内存、2:磁盘、3:硬盘、4:ttyx、5:tty、6:并行口、7非命名管道

一个硬盘可以有1~4个分区,因此硬盘还依据分区不同用次设备号指定分区。所以硬盘的逻辑设备号由以下方式构成:设备号=主设备号*256+次设备号。

linux 0.95之前两个硬盘使用的逻辑设备号见下表,那目前的表示方法是怎样的?

逻辑设备号

对应设备文件

说明

0x300(3*256+0=0x300)

/dev/hd0

代表整个第1个硬盘

0x304

/dev/hd4

代表第1个硬盘的第4分区

0x305

/dev/hd5

代表整个第2个硬盘

0x309

/dev/hd9

代表第2个硬盘的第4分区

如何从硬盘引导启动系统?

从硬盘启动的基本流程:系统上电自检后,由BIOS读取可启动硬盘的第1个扇区(MBR-Master Boot Record)到内存0x7c00处并执行。该程序首先把自身下移到0x600处,并根据MBR中分区表信息指明的活动分区中的第1个扇区(引导扇区)加载到内存0x7c00处并执行。

目前的2.6内核版本的Linux从硬盘设备引导启动系统的话,需要使用系统引导程序加载内核文件,系统引导程序比如Grub、LILO、Shoelace等(嵌入式环境中的U-boot,bootloader,RedBoot等)。其完成的任务类似于bootsect,如果使用以上系统引导程序的话,bootsect就不会再被运行。

如果从硬盘启动系统,那么内核映像文件Image会存放在活动分区的根文件系统中。因此需要知识映像文件Image处于文件系统中的位置以及判断是什么文件系统,即引导程序需要能够识别并访问文件系统,并从中读取内核映像。

所以如果需要从硬盘启动,必须把内核引导程序Grub等放在MBR中,这样系统启动时由BIOS读取MBR后就把控制权交给了Grub。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: