您的位置:首页 > 其它

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

2015-06-23 22:44 429 查看
一、硬盘的寻址方案

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

随着技术的发展,现在几乎所有的程序都使用“逻辑硬盘地址方案”,而不使用“实际硬盘地址方案”,常见的“逻辑硬盘地址方案”有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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: