我刚买了一台新笔记本电脑。我一直在设置新分区。我通常会插入 Linux liveboot 操作系统,创建分区,然后将操作系统安装到硬盘上。
但是在安装操作系统后,我打开“磁盘工具”,出现警告:
The partition is misaligned by ###bytes. This may result in very poor performance. Repartitioning is suggested
出现在驱动器中每个选定分区上。尽管我已经对整个磁盘进行了 2-3 次分区和重新分区,警告仍然存在。
最初我以为是某个错误造成的。但错位问题一直没有消失。上次我分区时,一个分区没有任何错位。其他分区都错位了。
我通常这样分区我的驱动器:
|--Part1--|--Part2--|--Part3--|----Extended Partition----|
|---------|---------|---------|---swap---part5---part6---|
在我之前的笔记本电脑上,我多次使用过这种方案。但它在这个新硬盘上效果不好。我尝试过 Mint 和 Ubuntu。我现在用的是 Mint,它的分区没有错位
更新 1
运行时sudo fdisk -l /dev/sda
输出如下:
/dev/sda1 63 80276804 40138371 83 Linux
Partition 1 does not start on physical sector boundary.
/dev/sda2 80277504 136921087 28321792 83 Linux
/dev/sda3 * 136921995 215046089 39062047+ 7 HPFS/NTFS/exFAT
Partition 3 does not start on physical sector boundary.
/dev/sda4 215046151 976768064 380860957 5 Extended
Partition 4 does not start on physical sector boundary.
/dev/sda5 215046153 220909814 2931831 82 Linux swap / Solaris
Partition 5 does not start on physical sector boundary.
/dev/sda6 220909878 390829319 84959721 b W95 FAT32
Partition 6 does not start on physical sector boundary.
/dev/sda7 390829383 976768064 292969341 b W95 FAT32
Partition 7 does not start on physical sector boundary.
更新2
/sys/block/sda/queue/physical_block_size 显示 4096。
我的华硕 X55C 上的硬盘是日立 HTS5。所以我猜它是 2009 年以后制造的。
我在使用 Linux Mint Cinnamon 实时启动 USB 安装操作系统时对该驱动器进行了分区。看到警告后,我使用 Ubuntu 12.04 实时启动 USB 再次对该驱动器进行了完全分区。我同时使用 Linux Mint 和 Ubuntu 12.04 一段时间。然后我删除了 Ubuntu。
更新 3-问题的解决方案
如之前所观察到的,只有一个分区正确对齐。因此,我运行GParted
,删除未对齐的分区,然后重新创建它们。我注意到以下几点:
- 如果我尝试在 中创建分区
Disk Utility
,就会出现错位。但如果我在 中创建分区GParted
,它会强制放入最小值preceding 1 MiB freespace
。现在没有错位。 - 我有一个
NTFS
安装了 Windows 的分区。但它错位了大约 2000 字节。因此,我尝试将其移动,并在其前面留出 1 MiB 的可用空间。一切顺利,但当我没有看屏幕时,GParted 崩溃了。但我几乎可以肯定,如果该过程完成,错误就会得到纠正。
我删除了除 /dev/sda2 之外的所有先前分区,并使用 重新创建它们GParted
。这是 的输出sudo fdisk -l /dev/sda
:
Device Boot Start End Blocks Id System
/dev/sda1 2048 80277503 40137728 83 Linux
/dev/sda2 80277504 136921087 28321792 83 Linux
/dev/sda3 136921088 200579071 31828992 83 Linux
/dev/sda4 200579072 976773119 388097024 5 Extended
/dev/sda5 200581120 206725119 3072000 82 Linux swap / Solaris
/dev/sda6 206727168 413573119 103422976 7 HPFS/NTFS/exFAT
/dev/sda7 413575168 620421119 103422976 7 HPFS/NTFS/exFAT
/dev/sda8 620423168 976773119 178174976 7 HPFS/NTFS/exFAT
我的问题
请帮助我理解这个问题。由于我尚未收到完整的答案,因此我的问题如下:
- 这次用的工具我以前也用过,那为什么分区会错位呢?
- 这可能是由于硬盘的物理问题造成的吗?
- Ubuntu 和 Linux Mint 实时启动安装程序中的分区工具是否存在此类问题?
无法使用磁盘实用程序对驱动器进行分区,但可以使用 GParted 1 MiB freespace preceding aligned to MiB
。
答案1
某些工具会针对此问题发出错误警报。要验证问题,您必须使用以扇区为单位显示分区起始点的工具。对于 MBR 磁盘,您可以使用fdisk
或parted
及其unit s
选项。对于 GPT 磁盘,您可以使用gdisk
或parted
及其unit s
选项。例如:
fdisk -l /dev/sda
parted /dev/sda unit s print
gdisk -l /dev/sda
您需要以root
或 使用 的形式输入这些命令sudo
。输出的细节因程序而异,但大致如下:
$ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): B322E151-7686-4B94-ACDF-F8F4CC2E9813
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 8-sector boundaries
Total free space is 6690 sectors (3.3 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 390625 189.7 MiB EF00 EFI System
2 390626 803249 201.5 MiB 8300 Gentoo /boot
3 803256 1212850 200.0 MiB 8300 Unused
4 1212851 976768064 465.2 GiB 8E00 Linux LVM data (nessus)
5 976768065 976768464 200.0 KiB EF02 BIOS boot partition
(请注意,如果您使用并看到列下fdisk
带有代码的分区,则您有一个 GPT 磁盘,其输出毫无用处。您ee
Id
必须使用parted
、gdisk
或非常GPT 磁盘上的最新内容fdisk
。
检查起始扇区值。正确对齐的分区的起始扇区值应为 8 的倍数。在此示例中,分区 1 和 3 已正确对齐,但分区 2、4 和 5 未对齐。对于 MBR 磁盘,请忽略扩展分区的任何“未对齐”;只有主分区和逻辑分区需要正确对齐。
还请注意,8 扇区对齐仅对高级格式 (AF) 磁盘很重要。(SSD 和某些类型的 RAID 阵列有自己的对齐问题。细节各不相同,但对齐到 2048 个扇区适用于大多数磁盘。)如果您的磁盘是较旧的非 AF 磁盘,则不必担心此问题。AF 于 2009 年底首次推出,但即使在 2010 年,许多新磁盘也不是 AF 型号。今天,大多数新磁盘都使用 AF,但我不知道有多少(如果有的话)非 AF 磁盘正在销售。
有关详细信息,请参阅For more information, see我关于这个主题的文章。
编辑:您的大多数分区都未对齐;只有分区 #2 从 8 扇区边界开始。我的直觉是,您的分区最初是使用旧分区工具布局的 — — 该工具使用柱面对齐而不是 1-MiB 对齐。
这可能重要也可能不重要;这取决于磁盘是否使用高级格式化技术。确定这一点的最可靠方法是检查制造商的技术规格表;但是,文件/sys/block/sdX/queue/physical_block_size
(sdX
驱动器标识符在哪里,例如sda
或sdb
)可能掌握可靠的信息。
当然。如果它读取4096
,则该磁盘几乎肯定是高级格式型号。如果它的值为512
,则您可能没有高级格式磁盘——或者内核可能错误地报告了此数据。如果磁盘的日期早于 2009 年 12 月,则不是高级格式磁盘。
有关更多信息,请阅读我的 IBM developerWorks 文章。
编辑2:请参阅上述文章。该问题是由于使用过时的分区软件造成的。最近的 Linux 工具(包括 Ubuntu 和 Mint 的安装程序)应该不是除非您使用高级选项更改对齐策略,否则不会产生此问题。此问题不能由有缺陷的硬件引起,但您应确保某些 Western Digital 驱动器上的“Windows XP 兼容性”跳线不是放。
答案2
我在 Debain 7.0 上遇到了同样的问题。使用 Ubuntu 13.10 GUI 工具进行格式化没有帮助。
最后我使用了fdisk
,删除了旧分区并创建新分区。选择起点时,我选择了 2048,警告就消失了。