硬盘的寻址方案,接口规范和硬盘管理工具

来源:互联网 发布:淘宝刷单任务书模板 编辑:程序博客网 时间:2024/05/01 23:48

一、硬盘的寻址方案

首先可以阅读另外一篇文章《硬盘寻址方案》

随着技术的发展,现在几乎所有的程序都使用“逻辑硬盘地址方案”,而不使用“实际硬盘地址方案”,常见的“逻辑硬盘地址方案”有LBA,absolute sector addressing in DOS和virtual CHS values等。程序使用(即支持)什么“逻辑硬盘地址方案”只跟其自身实现相关。上述提到的程序包含BIOS,Dos,Window系列,Linux系列等。


现在尽量不使用virtual CHS values逻辑硬盘地址方案,因为非常不精确
cylinders的数量由

【1】

决定,但是在24位体系中,有可能cylinder的位数不足以表达cylinders数量,导致出现错误,因而现在一般不使用virtual CHS values方案。


二、为了利用硬盘而制定的数据结构
即接口规范,接口规范是独立的,跟具体的程序(操作系统,BIOS等)和硬盘寻址方案都无关。
常见的规范有MBR规范[2](即master boot record),BSD DiskLabel规范[3],Sun DiskLabel规范,GPT(GUID Partition Table)[4]规范等等。


当前版本的MBR规范使用“virtual CHS values逻辑硬盘地址方案”和“LBA逻辑硬盘地址方案”;[在MBR的分区表的partion entry中,既有virtual CHS values表示的地址值,也有LBA表示的地址值]
GPT规范使用“LBA逻辑硬盘地址方案”


程序是否支持MBR规范,GPT规范,只跟程序自身实现有关


MBR规范详解见另外一篇文章:《MBR规范详解》


三、硬盘管理命令
硬盘管理命令,只是一个用来维护接口规范所定义的数据结构的工具而已。
一个硬盘管理命令,可以支持不同的接口规范;一个接口规范,可以由不同的硬盘管理命令支持。
1)fdisk:支持MBR规范,BSD DiskLabel规范,Sun DiskLabel规范,不支持GPT规范。支持Dos和OS/2等操作系统下的MBR规范的变种。

备注:
i、如上所述,我们应该舍弃“virtual CHS values逻辑硬盘地址方案”,那么在使用fdisk的时候,就过滤掉关于“virtual CHS values逻辑硬盘地址方案”的内容
举例来说,"-u"选项使用默认值就好,不要使用"-u=cylinders"
ii、在使用fdisk新增分区的时候,以cylinder为单位,这是陈旧过时的

2)cfdisk:支持MBR规范,BSD DiskLabel规范,Sun DiskLabel规范,不支持GPT规范。支持Dos和OS/2等操作系统下的MBR规范的变种。相较于fdisk,cfdisk修复了很多bug。

3)sfdisk:支持MBR规范,BSD DiskLabel规范,Sun DiskLabel规范,不支持GPT规范。支持Dos和OS/2等操作系统下的MBR规范的变种。比前两者更加精确和更有用,但是操作界面不友好。

4)parted:支持MBR规范,BSD DiskLabel规范,Sun DiskLabel规范,GPT规范等,功能齐全的工具。

在fdisk和cfdisk命令中进行选择,fdisk命令比较简单,支持常用的操作;cfdisk命令在显示逻辑分区的时候,起始扇区值有错误。

比如在下图中


逻辑分区的起始扇区的正确值是39847936。


因此,最后选择fdisk命令作为硬盘管理命令,见链接。



[1]https://en.wikipedia.org/wiki/Logical_block_addressing

[2]https://en.wikipedia.org/wiki/Master_boot_record 
[3]https://en.wikipedia.org/wiki/BSD_disklabel

[4]https://en.wikipedia.org/wiki/GUID_Partition_Table


0 0
原创粉丝点击