比较相同磁盘上的 2 个分区

比较相同磁盘上的 2 个分区

我有 2 个物理上相同的磁盘。每个有 1 个分区:

| Disk     | FS   | Size     | Comment                          |
|----------+------+----------+----------------------------------|
| /dev/sdb | NTFS | 468.8 GB | Partition created long           |
|          |      |          | ago with Partition magic, Win XP |
|----------+------+----------+----------------------------------|
| /dev/sdc | ext4 | 458.5 GB | Partition created last           |
|          |      |          | week with Linux fdisk v. 2.21.2  |
|----------+------+----------+----------------------------------|

以下是每个文件的 fdisk 信息:

深圳发展银行

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3765c6b7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   976768064   488384001    7  HPFS/NTFS/exFAT

SDDC

Disk /dev/sdc: 500.1 GB, 500107862016 bytes
81 heads, 63 sectors/track, 191411 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe84f8200

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048   976773167   488385560   83  Linux

尽管它们相同,但 fdisk 提供了不同的信息:

| Disk | heads | cylinders |
|------+-------+-----------|
| sdb  |   255 |     60801 |
| sdc  |    63 |    191411 |

问题

  1. 为什么会存在这种差异呢?
  2. 为什么 sdb1 以块 #68064 结尾,而 sdc 以 #73167 结尾?

    末尾空间:976773167 - 976768064 = 5103 块

    开头空间:63 - 2048 = -1985 块

    总计:5103 - 1985 = 3118 块

sdc1 必须还有 3118 个块。而实际上分区较小。为什么?

  1. 我听说,最好从块 #2048 开始分区,然后从 63 开始。因此,sdc 文件系统必须工作得更快,然后是 sdb。这是真的吗?

答案1

  1. 柱面/磁头/扇区寻址已经过时了,但是一些旧的磁盘工具仍然默认使用它,并且 Linuxfdisk在模拟中支持它。它给出的 CHS 值并不涉及磁盘的任何物理现实,而是基于(我猜测)当前分区表的猜测。也许可以安全地忽略它们。

  2. 默认情况下,sdc1 一直运行到磁盘末尾fdisk; sdb1 在某个较短的地方停止,在末尾留下可用空间,用于某些可能难以理解的目的(也许 Windows 使用这个?)同时,sdc1 从扇区 2048 开始,这意味着它是 1MB 对齐的;这确保了现代磁盘上良好的性能,并且还导致在引导加载程序的第一个分区之前有足够的空间,GPT(如果需要)等等。 sdb1 使用较旧的标准作为第一个启动分区,它仍然可以在现代硬件上工作,但可能会导致对齐问题和引导加载问题。

    为什么 sdb1 扫描得比 sdc1 大,即使后者的扇区长?如果您从文件系统检查器中得到这些数字,我猜这是由于不同的文件系统,并且代码没有以相同的方式处理它们。 (例如,NTFS FS 代码可能报告更像原始分区大小的内容,而 ext* 正在减去文件系统开销。)这里没有更多详细信息,很难说。

  3. 分区起始扇区是否重要取决于您的设置。旧磁盘只要一切都是 512 字节对齐就可以了;较新的设备切换到 4k 物理扇区,因此他们希望事情与该粒度保持一致(如果不这样做,则会造成严重的性能损失)。从 1M 开始,可以更轻松地使用一些各种(主要是 Linux/Unix)设备映射器技术,这些技术会在设备开头增加磁盘开销,同时仍确保 4k 对齐。很难说这对您的情况是否重要,但 1M 对齐可能是很好的形式。

相关内容