fdisk扇区大小和对齐问题


10

我执行了命令:

# fdisk /dev/sda1

输出为:

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Command (m for help): p

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: 0xe0c5913d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63    40965749    20482843+  1c  Hidden W95 FAT32 (LBA)
Partition 1 does not start on physical sector boundary.
/dev/sda2   *    40966144   334567423   146800640    7  HPFS/NTFS/exFAT
/dev/sda3       334567424   753997823   209715200   83  Linux
/dev/sda4       753999870  1953525167   599762649    5  Extended
Partition 4 does not start on physical sector boundary.
/dev/sda5       753999872  1949376511   597688320   83  Linux
/dev/sda6      1949378560  1953525167     2073304   82  Linux swap / Solaris

我有麻烦,因为以下几项:

  • 设备提供的逻辑扇区大小小于物理扇区大小。建议与物理扇区(或最佳I / O)大小边界对齐,否则可能会影响性能。

  • 分区1不在物理扇区边界上开始。

  • 分区4不在物理扇区边界上开始。

如何允许我解决其中的一项或多项而又不丢失文件和分区?

我将如何处理所有问题?


逻辑扇区大小几乎总是512字节 -这并不奇怪。磁盘控制器知道这一点并相应地工作。我从未见过扇区和分区边界不一致的问题-这可能是几年前的问题。
muru

Answers:


11

对于大多数现代磁盘,逻辑扇区大小小于物理扇区大小是正常的。这就是最常用的高级格式磁盘的实现方式。某些外部磁盘的物理扇区和逻辑扇区使用相同的(4096字节)扇区大小,而且我听说有些高端内部磁盘现在也执行相同的操作,但是如今大多数磁盘都是具有512字节的高级格式化型号的磁盘。逻辑扇区和4096字节物理扇区。您无法(或应该尝试)对此进行任何操作。

也就是说,正确对齐Advanced Format磁盘的分区很重要。我在“高级格式”磁盘上进行了一些测试,以确定它们的分区未对齐时会发生什么,并在此处发布结果简而言之,问题的程度从一个文件系统到另一个文件系统,从一个磁盘到另一个磁盘,差别很大,但是几乎总是存在与未对齐分区相关的显着(有时是巨大的)性能损失。

/dev/sda4但是,您并不直接拥有文件系统。它是扩展分区,这意味着它只是其他分区的容器。直接与之关联的数据/dev/sda4仅仅是两个(逻辑)扇区,它们甚至可能彼此不相邻,因此无法正确对齐。实际的性能损失将来自内包含的分区的对齐/dev/sda4。在您的情况下,/dev/sda4hold /dev/sda5/dev/sda6都正确对齐。因此,您无需担心/dev/sda5。您看到的警告只是代码,对于不存在时报告“问题”的行为过于热情。

/dev/sda1,在另一方面,没有正确对齐-它开始段63,这是不整除8.关于是否取决于有多少你使用的分区,你如何使用它(文件大小,你应该做的事情,读取与写入等),从中获得最佳性能,是否有足够的备份等是多么重要。我建议您阅读我之前引用的文章,然后决定是否解决此问题。(由于篇幅原因,我没有在该文章中报告FAT结果,但是FAT性能受到了非常严重的影响– IIRC,不如ReiserFS严重,但至少与大多数其他Linux本地文件系统一样严重。)

如果您决定要修复/dev/sda1,则应先备份它。完成此操作后,解决该问题的一种方法是删除它,在其位置创建一个新分区并还原其文件。另一种方法(备份后)是在GParted中调整分区的大小。对起点进行微小的更改;任何最新版本的GParted都应四舍五入到2048个扇区的倍数,这样就可以了。移动分区的起点总是冒险,比移动终点要花更长的时间。由于分区的大小仅为19GiB,因此即使移动起点,该操作也不会花费可笑的时间,但它不会是瞬时的。

作为旁注和背景,只有相当老的工具才能使现代“高级格式”磁盘上的分区对齐。我的猜测是,你使用这样的工具(旧版本的Linux年代fdisk或DOS FDISK,也许)创建/dev/sda1,然后用更现代的工具(更近fdiskparted或的gparted,可能)来创建分区的其余部分。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.