Mac OS X上的扇区大小是多少?


15

我在HFS Plus Wikipedia页面上阅读到,Mac上的默认扇区大小为512 b。但是,我还读到Mac支持4kb扇区。如何确定我拥有512 b或4 kb的扇区?我认为512是正确的答案,但我想确定。

Answers:


27

在终端中,可以使用diskutil获取有关驱动器的信息,包括设备块大小:

$ diskutil info / | grep "Block Size"
  Device Block Size:        512 Bytes

1
谢谢蒂莫西-不知道这个命令。看起来像在OS X下的宝库磁盘信息/操作
kalaracey

注意:此答案不能区分设备块大小和分配块大小。它们可能非常不同,并且分配块的大小很可能是OP所寻找的,因为这是文件系统所使用的。请参阅Mike的答案。
LarsH '18

12

首先,请注意设备块大小与文件系统使用的块大小不同。diskutil报告的前一个值是指硬件使用的原始块大小。我还没有找到一种通过命令行检查后一个值的简便方法,但是您可以创建一个零字节文件,然后从Finder中获取信息。它会说0字节,但在磁盘上使用4k。

其次,您可以使用命令行程序创建大于4k块大小的HFS +文件系统newfs_hfs。最简单的方法是使用“磁盘工具”对驱动器进行分区,并使用默认格式创建分区,然后用于/bin/df确定块设备(仅示例:)/dev/disk0s2。然后卸载该分区(使用umount /dev/diskXXX或磁盘实用程序),并以具有64k块的HFS +重新格式化:

newfs_hfs -v VolumeName -b 65536 /dev/disk0s2

使用上面的“获取信息”技巧来验证一个小文件现在在磁盘上的占用量为64k(对于10的幂单位,它可能说为65k)。

如果要存储的大多数数据是大文件(例如MP3,照片,视频,.zip文件等),则性能是您可能要执行此操作的主要原因,它还有助于降低磁盘碎片。显然,如果您打算存储大多数小文件,请不要打扰。

我发现在格式化为HFS且具有默认4k块大小的大型驱动器(> 1 TB)上,当驱动器接近容量时,写入性能将大大降低。我猜这是由于分区碎片化,并且不得不搜寻并啄取空闲块才能写出最后1%的数据。我希望更大的块大小可以缓解此问题。


文件系统块大小由给出stat -f %k .
2013年

另外:如果文件系统块大小与驱动器的物理块大小匹配,则在驱动器上更容易。否则,每次写操作实际上必须是一个读-修改-写周期,(当然,缓存会有所帮助。)
Edward Falk

回复:“我还没有找到一种简单的方法来检查由命令行后面的值:”我不知道旧的版本,但在MacOS塞拉利昂10.12.6,diskutil info有时会告诉你分配块大小:Allocation Block Size: 32768 Bytes以及设备块大小。当rdisk2s0在读卡器中将原始设备与SD卡一起使用时,我发现这是正确的 。我不知道如何使它适用于硬盘驱动器。
LarsH

9

OS X设备块的大小可以通过在“终端”窗口提示符下执行以下命令来确定:

diskutil info / | grep "Block Size"

它将输出以下信息:

Device Block Size: 512 Bytes

可以使用stat实用程序确定文件系统块的大小:

stat -f %k .

它将显示最佳文件系统I / O操作块大小(以字节为单位):

4096

4

对于较旧的HFS文件系统,这是Apple在Macintosh上第二次尝试使用文件系统时,磁盘上最多只能有65,535个分配块。块大小是磁盘大小(以字节为单位)除以最大分配块数65,535的函数。对于小型磁盘,这很好,但是当磁盘大小开始接近1GB时,最小分配块大小为16 KB(1073741824/65535)= 16384.25,但是您需要将其截断为16384。

这意味着1GB HFS磁盘上的1字节文件需要16,384字节才能存储在硬盘驱动器上,因此浪费了太多空间。因此,Apple创建了HFS +包装器以减少浪费的空间。

可能有一种方法可以将块大小设置得更大一些,但是为什么要这么做呢?

这是一个快速的bash脚本,它将列出所有当前连接的磁盘的所有diskinfo输出。

#!/bin/bash

for disk in /dev/disk*s*
do
    diskutil info $disk
    echo "**************************************************************************************"
    echo " "
done

马克,谢谢您的答复,但我认为您可能误解了我的问题。我正在寻找HFS Plus(Mac当前的默认文件系统)上块的大小。但是,这对于HFS的失败很有趣。
kalaracey

关键是它有所不同,但似乎通常为512字节。
ⱮarkƬ

0

在2017年的iMac(iMac18,1)中,设备块大小现在看起来是4096字节,这给使用ntfsprogs的人们带来了麻烦。

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.