Quelles sont les tailles de secteur sur Mac OS X?

15

J'ai lu sur la page Wikipedia de HFS Plus que la taille de secteur par défaut sur un Mac est de 512 b. Cependant, j'ai également lu que les Mac prennent en charge les secteurs de 4 Ko. Comment puis-je déterminer mes secteurs, 512 b ou 4 kb? Je pense que 512 est la bonne réponse, mais je voudrais en être sûr.

Kalaracey
la source

Réponses:

27

Dans le terminal, vous pouvez utiliser diskutil pour obtenir des informations sur le lecteur, y compris la taille du bloc de périphérique:

$ diskutil info / | grep "Block Size"
  Device Block Size:        512 Bytes
Tim B
la source
1
Merci Timothy - ne connaissait pas cette commande. Ressemble à un trésor pour les informations / manipulation du disque sous OS X.
kalaracey
Attention: cette réponse ne fait pas de distinction entre la taille de bloc de périphérique et la taille de bloc d'allocation. Ils peuvent être très différents, et la taille du bloc d'allocation pourrait bien être ce que l'OP recherche, car c'est ce que le système de fichiers utilise. Voir la réponse de Mike.
LarsH
12

Tout d'abord, notez que la taille de bloc de périphérique est différente de la taille de bloc utilisée par le système de fichiers. L'ancienne valeur telle que rapportée par diskutil fait référence à la taille de bloc brute utilisée par le matériel. Je n'ai pas trouvé de moyen simple de vérifier cette dernière valeur par la ligne de commande, mais vous pouvez simplement créer un fichier de zéro octet puis obtenir des informations à partir du Finder. Il dira 0 octet, mais 4k utilisés sur le disque.

Deuxièmement, vous pouvez créer un système de fichiers HFS + avec des tailles de bloc supérieures à 4 k en utilisant le programme de ligne de commande newfs_hfs. Le moyen le plus simple consiste à utiliser l'Utilitaire de disque pour partitionner le lecteur et créer une partition avec le formatage par défaut, puis à utiliser /bin/dfpour déterminer le périphérique de bloc (un exemple uniquement:) /dev/disk0s2. Démontez ensuite cette partition (à l'aide de l' umount /dev/diskXXXUtilitaire de disque) et, pour reformater en HFS + avec des blocs 64k, procédez comme suit:

newfs_hfs -v VolumeName -b 65536 /dev/disk0s2

Utilisez l'astuce Get Info ci-dessus pour vérifier qu'un petit fichier occupe désormais 64 Ko sur le disque (il peut indiquer 65 Ko pour les unités de puissance de 10).

Les performances sont la principale raison pour laquelle vous souhaiterez peut-être le faire, si la plupart des données à stocker sont des fichiers volumineux (tels que MP3, photo, vidéo, fichiers .zip, etc.), et cela aide également à maintenir une fragmentation du disque faible. Évidemment, ne vous embêtez pas si vous prévoyez de stocker principalement de petits fichiers.

J'ai constaté que sur les gros disques (> 1 To) formatés en HFS avec la taille de bloc 4k par défaut, lorsque le disque approche de sa capacité, les performances d'écriture se dégradent terriblement. Je suppose que cela est dû à la fragmentation de la partition et à la recherche et au picage de blocs libres afin d'écrire le dernier 1% des données. J'espère que des tailles de bloc plus grandes atténueront quelque peu ce problème.

Mike Gleason
la source
La taille du bloc du système de fichiers est donnée par stat -f %k ..
lhf
Aussi: c'est plus facile sur le disque si la taille de bloc de votre système de fichiers correspond à la taille de bloc physique du disque. Sinon, chaque écriture doit être en fait un cycle de lecture-modification-écriture (la mise en cache aide, bien sûr.)
Edward Falk
Re: "Je n'ai pas trouvé de moyen simple de vérifier cette dernière valeur par la ligne de commande" Je ne connais pas les anciennes versions, mais sur macOS Sierra 10.12.6, diskutil infovous indiquera parfois la taille du bloc d'allocation: Allocation Block Size: 32768 Bytesainsi que la taille du bloc de l'appareil. J'ai trouvé cela vrai lors de l'utilisation du périphérique brut rdisk2s0avec une carte SD dans le lecteur de carte. Je ne sais pas comment le faire fonctionner pour le disque dur.
LarsH
9

La taille du bloc de périphériques OS X peut être déterminée en exécutant la commande suivante à partir d'une invite de fenêtre Terminal:

diskutil info / | grep "Block Size"

Qui produira les informations suivantes:

Device Block Size: 512 Bytes

La taille de bloc du système de fichiers peut être déterminée à l'aide de l' statutilitaire:

stat -f %k .

Ce qui vous montrera la taille optimale du bloc d'opérations d'E / S du système de fichiers en octets:

4096
rjb
la source
4

Avec l'ancien système de fichiers HFS, deuxième tentative d'Apple de créer un système de fichiers pour Macintosh, il ne pouvait y avoir que 65 535 blocs d'allocation sur un disque. La taille du bloc était fonction de la taille du disque en octets divisée par le nombre maximal de blocs d'allocation, 65 535. Pour les petits disques, cela était correct, mais lorsque la taille des disques a commencé à approcher 1 Go, la taille minimale du bloc d'allocation était de 16 Ko (1073741824/65535) = 16384,25, mais vous devez tronquer à 16384.

Cela signifie qu'un fichier de 1 octet sur un disque HFS de 1 Go nécessitait 16 384 octets pour être stocké sur le disque dur, donc il y avait trop d'espace gaspillé. Apple a donc créé le wrapper HFS + pour réduire l'espace perdu.

Il existe peut-être un moyen de définir une taille de bloc plus élevée, mais pourquoi voudriez-vous?

Voici un script bash rapide qui répertoriera toutes les sorties diskinfo pour tous vos disques actuellement connectés.

#!/bin/bash

for disk in /dev/disk*s*
do
    diskutil info $disk
    echo "**************************************************************************************"
    echo " "
done
Ɱark Ƭ
la source
Merci pour votre réponse, Mark, mais je pense que vous avez peut-être mal compris ma question. Je cherche quelle est la taille d'un bloc sur HFS Plus (le système de fichiers par défaut actuel pour Mac). Cela est cependant intéressant concernant les défaillances de HFS.
kalaracey
Le fait est qu'il varie, mais il semble être généralement de 512 octets.
Ɱark Ƭ
0

Il semble que la taille des blocs de périphériques soit désormais de 4096 octets dans les iMacs 2017 (iMac18,1), ce qui pose des problèmes aux utilisateurs de ntfsprogs.

js2010
la source