use*_*904 3 hard-drive partitioning
我刚买了一台新笔记本电脑。而且我一直在设置新的分区。我通常插入一个 Linux liveboot 操作系统,创建分区,然后将操作系统安装到硬盘上。
但是在安装操作系统后,我打开“磁盘工具”,警告:
The partition is misaligned by ###bytes. This may result in very poor performance. Repartitioning is suggested
Run Code Online (Sandbox Code Playgroud)
为驱动器中的每个选定分区显示。即使我对整个磁盘进行了大约 2-3 次分区和重新分区,警告仍然存在。
一开始我以为是因为一些错误。但这种错位拒绝消失。我上次分区时,一个分区最终没有任何错位。所有其他人都错位了。
这就是我通常对驱动器进行分区的方式:
|--Part1--|--Part2--|--Part3--|----Extended Partition----|
|---------|---------|---------|---swap---part5---part6---|
Run Code Online (Sandbox Code Playgroud)
在我早期的笔记本电脑上,我多次使用这个方案。但它在这个新硬盘上不能很好地工作。我尝试过 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.
Run Code Online (Sandbox Code Playgroud)
更新 2
/sys/block/sda/queue/physical_block_size 表示 4096。
硬盘是华硕 X55C 上的 Hitachi 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
Run Code Online (Sandbox Code Playgroud)
我的问题
请帮助我理解这个问题。由于我还没有收到完整的答案,以下是我的问题:
使用磁盘工具对驱动器进行分区是不可能的,但是使用 GParted 和1 MiB freespace preceding aligned to MiB.
一些工具会在此问题上产生误报。要验证该问题,您必须使用一个工具来显示扇区中的分区起始点。对于 MBR 磁盘,您可以使用fdisk或parted及其unit s选项。对于 GPT 磁盘,您可以使用gdisk或parted及其unit s选项。例如:
fdisk -l /dev/sda
parted /dev/sda unit s print
gdisk -l /dev/sda
Run Code Online (Sandbox Code Playgroud)
您需要将这些命令键入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
Run Code Online (Sandbox Code Playgroud)
(请注意,如果你使用fdisk和看到的代码分区ee的下Id栏,您已经有了一个GPT磁盘,它的输出是没用的。你必须使用parted,gdisk或非常最近fdiskGPT磁盘上。)
检查起始扇区值。正确对齐的分区的起始扇区值是 8 的倍数。在此示例中,分区 1 和 3 正确对齐,但分区 2、4 和 5 未对齐。对于 MBR 磁盘,请忽略扩展分区的任何“错位”;只有主分区和逻辑分区需要正确对齐。
另请注意,8 扇区对齐仅对高级格式 (AF) 磁盘很重要。(SSD 和某些类型的 RAID 阵列有其自身的对齐问题。细节各不相同,但对齐 2048 个扇区适用于大多数磁盘。)如果您的磁盘是较旧的非 AF 磁盘,则无需担心这个问题。AF 于 2009 年底首次推出,但即使在 2010 年,许多新磁盘也不是 AF 型号。今天,大多数新磁盘都使用 AF,但我不知道有多少(如果有)非 AF 磁盘正在销售。
有关更多信息,请参阅我关于该主题的文章。
编辑:你的大部分分区都没有对齐;只有分区 #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 兼容性”跳线未设置。