一、硬盘的寻址方案
首先可以阅读另外一篇文章《硬盘寻址方案》
随着技术的发展,现在几乎所有的程序都使用“逻辑硬盘地址方案”,而不使用“实际硬盘地址方案”,常见的“逻辑硬盘地址方案”有LBA,absolute sector addressing in DOS和virtual CHS values等。程序使用(即支持)什么“逻辑硬盘地址方案”只跟其自身实现相关。上述提到的程序包含BIOS,Dos,Window系列,Linux系列等。【1】
决定,但是在24位体系中,有可能cylinder的位数不足以表达cylinders数量,导致出现错误,因而现在一般不使用virtual CHS values方案。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[4]https://en.wikipedia.org/wiki/GUID_Partition_Table