在我的机器上,fdisk -lu /dev/sda
显示以下输出:
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 73947135 36972544 83 Linux
/dev/sda2 73949182 78139391 2095105 5 Extended
/dev/sda5 73949184 78139391 2095104 82 Linux swap / Solaris
Run Code Online (Sandbox Code Playgroud)
这个“块”单位是什么?一个“fdisk 块”是 1KiB 吗?这个单位从哪里来?
在 Unix 的第一个版本中,从硬件到文件系统再到 C 代码到用户工具,一个块是 512 字节。
现在有许多不同类型的硬件和许多不同的文件系统(其中一些没有任何块大小的概念),因此“块大小”是每个工具选择的任意定义。大多数传统 Unix 系统默认保留 512 字节的块大小以实现向后兼容性,这就是 POSIX 对几个命令(dd
, du
, df
, ls
, find -size
, ...)的要求。除非在mode 中调用,否则几个 GNU/Linux 实用程序默认显示 1kB 单位(du
, df
, ls
, ...)POSIXLY_CORRECT
。我认为迁移到 1kB 仅仅是出于动机,因为它对人类更加友好。
Linuxfdisk
实用程序使用 1kB 块进行两次 decares — 标题也可能已读取kB
. 在 Linux 的上下文中fdisk
,“块”总是意味着 1kB。2.25 版本更改了默认单位,现在单位是 512 字节的扇区。在专家模式下,单位一直是 512 字节的扇区。512 字节是传统 PC 磁盘更自然的低级单位,因为它们写入 512 字节的扇区,并且分区边界对齐到 512 字节,因此使用 1kB 作为单位会导致 ½ 分数。现代大型磁盘具有更大的扇区(但“扇区”广泛用于表示 512 字节,而不管磁盘的任何物理或逻辑特征),并且 GPT 分区通常在 1MB 上对齐。
你应该知道像一些概念sector
,track
,cylinder
理解block
。这是一个简单的定义:
Blocks and clusters
The Unix communities employ the term block to refer to a sector or group of
sectors. For example, the Linux fdisk utility normally displays partition
table information using 1024-byte blocks, but also uses the word sector to
help describe a disk's size in the phrase, 63 sectors per track.
Run Code Online (Sandbox Code Playgroud)
您可以在此链接中阅读更多内容。