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

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

转载请注明出处:http://blog.csdn.net/rosetta
硬盘基础知识

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

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

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

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

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

逻辑设备号

对应设备文件

说明

0x300(3*256+00x300)

/dev/hd0

代表整个第1个硬盘

0x304

/dev/hd4

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

0x305

/dev/hd5

代表整个第2个硬盘

0x309

/dev/hd9

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

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

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

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

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

    所以如果需要从硬盘启动,必须把内核引导程序Grub等放在MBR中,这样系统启动时由BIOS读取MBR后就把控制权交给了Grub

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值