注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

绿色圣光

~生活·自愚自乐~

 
 
 

日志

 
 

fdisk 相关  

2013-10-09 22:45:22|  分类: 电脑知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

前天,微博上有网友问了个关于 fdisk 的问题。而我也曾经有过跟他一样的疑问,所以觉得有必要写这么篇文章。

先来看看,下面是我笔记本上 fdisk -l /dev/sda 的打印信息。fdisk,来自 util-linux 2.23.2。(当年给笔记本硬盘分区的时候,对磁盘分区也不了解,所以分的也是不怎么合理,将就着看吧。另外,居然做了中文本地化,感觉怪怪的。)

# fdisk -l /dev/sda

磁盘 /dev/sda:250.1 GB, 250059350016 字节,488397168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x0004fcd8

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   167774207    83886080   83  Linux
/dev/sda2       167774208   335546367    83886080   83  Linux
/dev/sda3       335546368   337643519     1048576   82  Linux swap / Solaris
/dev/sda4       337643520   488397167    75376824    5  Extended
/dev/sda5       337645568   379588607    20971520   83  Linux
/dev/sda6       379590656   400562175    10485760   83  Linux
/dev/sda7       400564224   421535743    10485760   83  Linux
/dev/sda8       421537792   442509311    10485760   83  Linux
/dev/sda9       442511360   463482879    10485760   83  Linux
/dev/sda10      463484928   488397167    12456120   83  Linux

新版本的 fdisk 分区的时候默认是按照物理扇区,而非柱面,进行分区的。对于现代机械硬盘而言,柱面这个概念,存在的意义仅仅是为了兼容了。在老式硬盘中,由于每个磁道的扇区数相等,所以外道的记录密度要远低于内道,因此会浪费很多磁盘空间(与软盘一样)。为了解决这一问题,进一步提高硬盘容量,人们改用等密度结构生产硬盘。也就是说,外圈磁道的扇区比内圈磁道多,采用这种结构后,硬盘不再具有实际的3D参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址。因此只要你用的那种老式机械硬盘,分区的时候都应该以扇区为单位,而无需参考柱面。(固态硬盘等其他磁盘设备就更不必多说了。)

再看下面的 fdisk,来自 util-linux-ng 2.17.2。为什么选这个版本呢?因为在我印象中,是从这个版本开始提示分区起始位置不在物理扇区边界上的。

# fdisk -l /dev/sda

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xc8851e2b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       30401   244190208   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2           30401       60801   244190208   83  Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3           60801       91201   244190208   83  Linux
Partition 3 does not end on cylinder boundary.
/dev/sda4           91201      121602   244190936   83  Linux
Partition 4 does not end on cylinder boundary.

看上面的信息,这个版本的 fdisk 在打印信息的时候,还会提示分区结束位置不在柱面边界上。对于老式机械硬盘而言,这样分区可能会导致性能损失。而实际上,我们用的现代机械硬盘,根本不必考虑这个。所以,再看下面的信息。

# fdisk -lcu /dev/sda

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xc8851e2b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   488382463   244190208   83  Linux
/dev/sda2       488382464   976762879   244190208   83  Linux
/dev/sda3       976762880  1465143295   244190208   83  Linux
/dev/sda4      1465143296  1953525167   244190936   83  Linux

还是那个硬盘,采用不同的选项,显示的信息就不同了。这次是按照扇区来打印的,由于分区的时候也是按照分区来分的,所以没有什么特别的提示。但是,如果我按照柱面来分区,就会收到下面的结果:分区起始位置不在物理扇区边界上。而这样,可能会导致硬盘性能损失。

# fdisk -l /dev/sda

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xc8851e2b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       30401   244196001   83  Linux
Partition 1 does not start on physical sector boundary.
/dev/sda2           30402       60803   244204065   83  Linux
Partition 2 does not start on physical sector boundary.
/dev/sda3           60804       91205   244204065   83  Linux
Partition 3 does not start on physical sector boundary.
/dev/sda4           91206      121601   244155870   83  Linux
Partition 4 does not start on physical sector boundary.

再看看按照扇区来显示的结果:

# fdisk -lcu /dev/sda

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xc8851e2b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63   488392064   244196001   83  Linux
Partition 1 does not start on physical sector boundary.
/dev/sda2       488392065   976800194   244204065   83  Linux
Partition 2 does not start on physical sector boundary.
/dev/sda3       976800195  1465208324   244204065   83  Linux
Partition 3 does not start on physical sector boundary.
/dev/sda4      1465208325  1953520064   244155870   83  Linux
Partition 4 does not start on physical sector boundary.
  评论这张
 
阅读(712)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017