Mac OS Xのセクターサイズは?


15

HFS Plus Wikipediaページで、Macのデフォルトのセクターサイズは512 bであると読みました。ただし、Macは4kbセクターをサポートすることも読みました。512 bまたは4 kbのセクターがあるかどうかを確認するにはどうすればよいですか?512は正しい答えだと思いますが、確かにしたいと思います。

回答:


27

ターミナルでは、diskutilを使用して、デバイスのブロックサイズなど、ドライブに関する情報を取得できます。

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

1
おかげでティモシー-このコマンドについて知りませんでした。OS Xでのディスク情報/操作の宝庫のように見えます
。– kalaracey

注意:この回答では、デバイスのブロックサイズと割り当てブロックサイズは区別されません。それらは非常に異なる場合があり、ファイルシステムが使用するものであるため、割り当てブロックサイズはOPが探しているものである可能性があります。マイクの答えをご覧ください。
-LarsH

12

まず、デバイスのブロックサイズは、ファイルシステムで使用されているブロックサイズとは異なることに注意してください。diskutilによって報告される前の値は、ハードウェアによって使用される生のブロックサイズを指します。コマンドラインで後者の値を確認する簡単な方法は見つかりませんでしたが、ゼロバイトのファイルを作成して、FinderからGet Infoを実行するだけで済みます。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ファイルなど)である場合、パフォーマンスがこれを行う主な理由であり、ディスクの断片化を低く抑えるのにも役立ちます。主に小さなファイルを保存する場合は、気にしないでください。

デフォルトの4kブロックサイズでHFSとしてフォーマットされた大きなドライブ(> 1 TB)では、ドライブが容量に近づくと書き込みパフォーマンスが著しく低下することがわかりました。これは、パーティションが断片化されており、データの最後の1%を書き出すために空きブロックを探し回る必要があるためだと推測しています。ブロックサイズを大きくすると、この問題が多少軽減されることを期待しています。


ファイルシステムのブロックサイズはで与えられstat -f %k .ます。
lhf

また、ファイルシステムのブロックサイズがドライブの物理ブロックサイズと一致していると、ドライブ上で簡単になります。それ以外の場合は、それぞれの書き込みは、実際にリード・モディファイ・ライト・サイクル、(。キャッシュはもちろん、助け)である必要があります
エドワード・フォーク

日時:私は古いバージョンを知らない「私は、コマンドラインで後者の値をチェックする簡単な方法を発見していない」が、MacOSのシエラ10.12.6に、diskutil info時にはあなたのアロケーションブロックサイズを教えてくれます:Allocation Block Size: 32768 Bytesだけでなく、デバイスブロックサイズ。rdisk2s0カードリーダーでSDカードを使用してrawデバイスを使用する場合、これが正しいことがわかりました 。ハードドライブで動作させる方法がわかりません。
-LarsH

9

OS Xデバイスのブロックサイズは、ターミナルウィンドウのプロンプトから次のコマンドを実行することで決定できます。

diskutil info / | grep "Block Size"

次の情報が出力されます。

Device Block Size: 512 Bytes

ファイルシステムのブロックサイズは、statユーティリティを使用して決定できます。

stat -f %k .

これにより、最適なファイルシステムI / O操作ブロックサイズがバイト単位で表示されます。

4096

4

Macintosh用のファイルシステムに対するAppleの2回目の試みである古いHFSファイルシステムでは、ディスク上に最大65,535個の割り当てブロックしか存在できませんでした。ブロックサイズは、バイト単位のディスクサイズを割り当てブロックの最大数である65,535で割った関数です。小さいディスクではこれで問題ありませんでしたが、ディスクサイズが1 GBに近づき始めたとき、最小割り当てブロックサイズは16 KB(1073741824/65535)= 16384.25でしたが、16384に切り捨てる必要があります。

これは、1GB HFSディスク上の1バイトファイルがハードドライブに保存するのに16,384バイトを必要としたため、無駄なスペースが多すぎることを意味します。そこで、AppleはHFS +ラッパーを作成して、無駄なスペースを削減しました。

ブロックサイズを大きく設定する方法があるかもしれませんが、なぜしたいのですか?

これは、現在接続されているすべてのディスクのすべてのdiskinfo出力をリストするクイックbashスクリプトです。

#!/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を使用しているユーザーに問題を引き起こしているようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.