Reformatear exFat con un tamaño de bloque de dispositivo y un tamaño de grupo específicos

3

Tengo un SSD de 512 GB en mi MacBook Retina con uno de los volúmenes disks0s6 formateado con exFat para usarlo tanto en Mac como en Windows.

diskutil info disk0s6:

   Device Identifier:        disk0s6
   Device Node:              /dev/disk0s6
   Part of Whole:            disk0
   Device / Media Name:      Basic data partition

   Volume Name:              WORK
   Escaped with Unicode:     WORK

   Mounted:                  Yes
   Mount Point:              /Volumes/WORK
   Escaped with Unicode:     /Volumes/WORK

   File System Personality:  ExFAT
   Type (Bundle):            exfat
   Name (User Visible):      ExFAT

   Partition Type:           Microsoft Basic Data
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 PCI
   SMART Status:             Verified
   Volume UUID:              40CF8BFC-3143-3BB9-B659-DE1A62DCA9E6

   Total Size:               54.1 GB (54117007360 Bytes) (exactly 105697280 512-Byte-Units)
   Volume Free Space:        36.1 GB (36128292864 Bytes) (exactly 70563072 512-Byte-Units)
   Device Block Size:        512 Bytes

   Read-Only Media:          No
   Read-Only Volume:         No
   Ejectable:                No

   Whole:                    No
   Internal:                 Yes
   Solid State:              Yes

Tengo muchos archivos pequeños en ese volumen y mis archivos pequeños ocuparon mucho espacio físico, por lo que quiero reformatear el volumen con un Tamaño de bloque de dispositivo y un Tamaño de clúster mínimos para que mis archivos pequeños no ocupen espacio adicional. ¿Cómo puedo hacer eso en OS X?

Aquí hay un ejemplo de archivos en la carpeta bower_components que es 46.1 MB , que toma 9.75 GB espacio en el disco (impreso desde Windows):

ACTUALIZACIÓN1

NoencontréunaformadeverificareltamañodelclústerenMac,asíqueinicioenWindowsyejecutochkdskenesaunidad:

Como puede ver 131072 bytes en cada unidad de asignación, ese es el tamaño de mi clúster actual creado por Mac DiskUtil predeterminado

ACTUALIZACIÓN 2

Simplemente reinicie en Mac y ejecute el comando sudo newfs_exfat -N /dev/disk0s6:

Reformatting existing ExFAT volume
Partition offset : 871407616 sectors (446160699392 bytes)
Volume size      : 105697280 sectors (54117007360 bytes)
Bytes per sector : 512
Bytes per cluster: 131072
FAT offset       : 2048 sectors (1048576 bytes)
# FAT sectors    : 3328
Number of FATs   : 1
Cluster offset   : 6144 sectors (3145728 bytes)
# Clusters       : 412856
Volume Serial #  : 0227bd88
Bitmap start     : 2
Bitmap file size : 51607
Upcase start     : 3
Upcase file size : 5836
Root start       : 4

Parece que chkdisk mostró el mismo 131072 bytes por grupo

    
pregunta Kuncevic 02.11.2015 - 10:57

1 respuesta

5

El recuento máximo de bloques de asignación (o agrupación) para exFAT es 2 ^ 32 = 4,294,967,296.

Para obtener el tamaño mínimo de un clúster de asignación en su partición, divida el tamaño de su partición entre 2 ^ 32.

Ejemplos:

  • para una partición de 100 GB, el tamaño mínimo es 100,000,000,000 bytes / 4,294,967,296 = ~ 23.3 bytes. Dado que el tamaño del bloque de dispositivo más pequeño es de 512 bytes, el tamaño del bloque de asignación no puede ser más pequeño.

  • Para una partición de 3 TB, el tamaño mínimo es 3,000,000,000,000 bytes / 4,294,967,296 = ~ 698.5 bytes. El tamaño mínimo posible del bloque de asignación es de 1024 bytes.

Para formatear una partición use newfs_exfat [options] /dev/disk*s*

Las siguientes opciones con respecto a los tamaños de bloque de asignación están disponibles:

 -b bytes-per-cluster
         File system block size (bytes per cluster).  Acceptable values
         are powers of 2 in the range 512 through 33554432.

 -c sectors-per-cluster
         Sectors per cluster.  Acceptable values are powers of 2 in the
         range 1 through 65536. 

Para reformatear su volumen exFAT, primero copie el contenido a otro volumen. Luego ingrese:

diskutil list #to get the disk identifier of the exFAT partition
diskutil unmount /dev/disk0s6
sudo newfs_exfat -c 1 -v exFAT /dev/disk0s6
diskutil mount /dev/disk0s6

El comando creará un bloque de asignación / grupo / dispositivo / dispositivo y cambiará el nombre del volumen a exFAT .

Alternativamente puedes usar

sudo newfs_exfat -b 512 -v exFAT /dev/disk0s6

La mayoría de las unidades de disco duro o SSD modernas utilizan tamaños de bloque de dispositivo de 4096 bytes y el tamaño de bloque de dispositivo mostrado de 512 bytes es solo un tamaño de bloque de dispositivo "lógico" probablemente por razones de compatibilidad. Por lo tanto, se recomienda un tamaño de bloque de asignación mínimo de al menos 4096 bytes.

También los tamaños de bloque de clúster predeterminados de particiones exFAT de varios tamaños en Windows "mencionan" al menos 4 kb.

Para obtener el tamaño de bloque de clúster actual (y otras informaciones) de un volumen exFAT, haga lo siguiente:

diskutil list #to get the disk identifier of the exFAT partition
diskutil unmount /dev/disk0s6
sudo newfs_exfat -N /dev/disk0s6
diskutil mount /dev/disk0s6
    
respondido por el klanomath 02.11.2015 - 12:11

Lea otras preguntas en las etiquetas