ExFat mit spezifischer Geräteblockgröße und Clustergröße neu formatieren

Ich habe eine 512-GB-SSD auf meinem MacBook Retina mit einem der Volumes disks0s6, die mit exFat formatiert sind, um sie sowohl auf Mac als auch auf Windows zu verwenden.

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

Ich habe viele kleine Dateien auf diesem Volume und meine kleinen Dateien nehmen zu viel physischen Speicherplatz in Anspruch. Daher möchte ich das Volume mit einer minimalen Geräteblockgröße und Clustergröße neu formatieren, damit meine kleinen Dateien keinen zusätzlichen Speicherplatz beanspruchen. Wie kann ich das in OS X machen?

Hier ist ein Beispiel für Dateien in einem Ordner bower_components, die Speicherplatz auf der Festplatte 46.1 MBbeanspruchen 9.75 GB(aus Windows gedruckt):

Geben Sie hier die Bildbeschreibung ein

AKTUALISIERUNG 1

Ich habe keine Möglichkeit gefunden, die Clustergröße auf einem Mac zu überprüfen, also boote ich in Windows und laufe chkdskauf diesem Laufwerk:Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen können, sind 131072 Bytes in jeder Zuordnungseinheit - das ist meine aktuelle Clustergröße, die standardmäßig von Mac DiskUtil erstellt wird

AKTUALISIERUNG 2

Starten Sie einfach den Mac zurück und führen Sie den Befehl aussudo 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

Es sieht also so aus, als ob chkdisk die gleichen 131072Bytes pro Cluster zeigte

Völlig anekdotisch, aber heutzutage zucke ich zusammen, wenn ich Exfat auf einem Mac sehe. Ich habe viel zu oft Daten verloren. Ich empfehle entweder Fat32 (wenn Sie mit der Größenbeschränkung von 4 GB pro Datei umgehen können) oder NTFS + die Tuxera-Treiber.

Antworten (1)

Die maximale Anzahl von Zuordnungsblöcken (oder Clustern) für exFAT beträgt 2^32 = 4.294.967.296.

Um die minimale Größe eines Zuordnungsclusters auf Ihrer Partition zu erhalten, teilen Sie die Größe Ihrer Partition durch 2^32.

Beispiele:

  • für eine 100-GB-Partition beträgt die Mindestgröße 100.000.000.000 Byte/4.294.967.296=~23,3 Byte. Da die kleinste Geräteblockgröße 512 Bytes beträgt, kann die Zuordnungsblockgröße nicht kleiner sein.

  • Für eine 3-TB-Partition beträgt die Mindestgröße 3.000.000.000.000 Byte/4.294.967.296=~698,5 Byte. Die minimal mögliche Zuordnungsblockgröße beträgt dann 1024 Byte.

Verwenden Sie zum Formatieren einer Partitionnewfs_exfat [options] /dev/disk*s*

Die folgenden Optionen in Bezug auf Zuweisungsblockgrößen sind verfügbar:

 -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. 

Um Ihr exFAT-Volume neu zu formatieren, kopieren Sie zuerst den Inhalt auf ein anderes Volume. Geben Sie dann ein:

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

Der Befehl erstellt einen Zuordnungs- (oder Cluster-) Block/Geräteblock und benennt das Volume in exFAT um .

Alternativ können Sie verwenden

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

Die meisten modernen HDDs oder SSDs verwenden Geräteblockgrößen von 4096 Bytes und die angezeigte Geräteblockgröße von 512 Bytes ist nur eine "logische" Geräteblockgröße, wahrscheinlich aus Kompatibilitätsgründen. Daher wird eine minimale Zuordnungsblockgröße von mindestens 4096 Byte empfohlen.

Auch die Standard-Cluster-Blockgrößen von exFAT-Partitionen unterschiedlicher Größe in Windows "erwähnen" mindestens 4 KB.


Um die aktuelle Cluster-Blockgröße (und andere Informationen) eines exFAT-Volumes abzurufen, gehen Sie wie folgt vor:

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
Wie kann ich überprüfen, was die aktuelle Clustergröße ist? Ich kann sehen, dass meine Geräteblockgröße 512 Bytes beträgt, kann aber keine Möglichkeit finden, die aktuelle Clustergröße zu überprüfen.
@Riapp hat eine Erklärung hinzugefügt, wie man die aktuellen Werte erhält
Habe gerade die Frage mit Details aktualisiert. Sieht so aus, als ob meine Clustergröße 131072 Bytes beträgt, die standardmäßig von Mac DiskUtil erstellt wurde.