¿Cuáles son los tamaños de sector en Mac OS X?

12

Leí en la página de Wikipedia de HFS Plus que el tamaño de sector predeterminado en una Mac es 512 b. Sin embargo, también leí que las Mac soportan sectores de 4kb. ¿Cómo puedo determinar cuál tengo, sectores de 512 b o 4 kb? Creo que 512 es la respuesta correcta, pero me gustaría estar seguro.

    
pregunta kalaracey 14.01.2013 - 13:41

5 respuestas

22

En la terminal, puede usar diskutil para obtener información sobre la unidad, incluido el tamaño de bloque del dispositivo:

$ diskutil info / | grep "Block Size"
  Device Block Size:        512 Bytes
    
respondido por el Tim B 14.01.2013 - 15:44
12

Primero, tenga en cuenta que el tamaño de bloque del dispositivo es diferente del tamaño de bloque que usa el sistema de archivos. El valor anterior según lo informado por diskutil se refiere al tamaño de bloque sin procesar usado por el hardware. No he encontrado una manera fácil de verificar este último valor mediante la línea de comandos, pero puede crear un archivo de cero bytes y luego obtener información del buscador. Dirá 0 bytes, pero 4k se utilizan en el disco.

En segundo lugar, puede crear un sistema de archivos HFS + con un tamaño de bloque superior a 4k utilizando el programa de línea de comandos newfs_hfs . La forma más fácil es usar la Utilidad de Disco para particionar la unidad y crear una partición con el formato predeterminado, luego use /bin/df para determinar el dispositivo de bloque (solo un ejemplo: /dev/disk0s2 ). Luego desmonte esa partición (usando umount /dev/diskXXX o Utilidad de Disco), y para volver a formatear como HFS + con 64k bloques, haga lo siguiente:

newfs_hfs -v VolumeName -b 65536 /dev/disk0s2

Use la sugerencia Obtener información anterior para verificar que un archivo pequeño ahora ocupa 64k en el disco (puede decir 65k para potencias de 10 unidades).

El rendimiento es la razón principal por la que podría querer hacer esto, si la mayoría de los datos que se almacenarán son archivos grandes (como MP3, fotos, videos, archivos .zip, etc.) y también ayuda a mantener la fragmentación del disco. bajo. Obviamente, no te preocupes si planeas almacenar principalmente archivos pequeños.

Descubrí que en unidades grandes (> 1 TB) formateadas como HFS con el tamaño de bloque predeterminado de 4k, cuando la unidad se acerca a su capacidad, el rendimiento de escritura se degrada considerablemente. Supongo que esto se debe a que la partición está fragmentada y hay que buscar y buscar bloques libres para escribir el último 1% de los datos. Espero que los bloques de mayor tamaño alivien un poco este problema.

    
respondido por el Mike Gleason 26.06.2013 - 18:31
9

El tamaño del bloque del dispositivo OS X se puede determinar ejecutando el siguiente comando desde el indicador de la ventana de Terminal:

diskutil info / | grep "Block Size"

Que generará la siguiente información:

Device Block Size: 512 Bytes

El tamaño del bloque del sistema de archivos se puede determinar utilizando la utilidad stat :

stat -f %k .

Lo que le mostrará el tamaño del bloque de operación de E / S del sistema de archivos óptimo en bytes:

4096
    
respondido por el rjb 02.07.2013 - 21:06
4

Con el antiguo sistema de archivos HFS, el segundo intento de Apple por un sistema de archivos para Macintosh, solo podría haber hasta 65,535 bloques de asignación en un disco. El tamaño del bloque era una función del tamaño del disco en bytes dividido por el número máximo de bloques de asignación, 65,535. Para discos pequeños, esto estaba bien, pero cuando los tamaños de disco comenzaron a aproximarse a 1 GB, el tamaño mínimo de bloque de asignación fue de 16 KB (1073741824/65535) = 16384.25, pero debe truncarse a 16384.

Lo que esto significa es que un archivo de 1 byte en un disco HFS de 1GB requirió 16,384 bytes para almacenar en el disco duro, por lo que se desperdició mucho espacio. Así que Apple creó el contenedor HFS + para reducir el espacio desperdiciado.

Puede haber una manera de establecer un tamaño de bloque más alto, pero ¿por qué querrías hacerlo?

Aquí hay una secuencia de comandos rápida de bash que mostrará una lista de todos los resultados de diskinfo para todos los discos conectados actualmente.

#!/bin/bash

for disk in /dev/disk*s*
do
    diskutil info $disk
    echo "**************************************************************************************"
    echo " "
done
    
respondido por el Ɱark Ƭ 14.01.2013 - 17:07
0

Parece que el tamaño del bloque del dispositivo ahora es de 4096 bytes en los iMacs (iMac18,1) de 2017, lo que causa problemas a las personas que usan ntfsprogs.

    
respondido por el js2010 25.08.2017 - 16:44

Lea otras preguntas en las etiquetas