Wie berechnet man die Mindestgröße einer FAT-Partition, damit bestimmte Dateien hineinpassen?

Wie berechnet man die Mindestgröße einer FAT-Partition, damit bestimmte Dateien hineinpassen?

Gibt es eine Möglichkeit zu berechnen, wie groß eine Partition sein muss, damit eine Datei (oder mehrere Dateien einer bestimmten Größe) hineinpasst?

Nehmen wir an, ich möchte auf einem USB-Laufwerk eine FAT32-Partition erstellen und dort eine 1-GB-Datei (oder zwei 500-MB-Dateien oder etwas anderes) speichern und ich möchte, dass die Partition so klein wie möglich ist.

Welcher Algorithmus könnte, abgesehen von Versuch und Irrtum, zum Berechnen der Größe dieser Partition verwendet werden?

Antwort1

Dies hängt von der Clustergröße ab (normalerweise 4 KB, aber Sie können beim Formatieren auch andere Werte auswählen) und davon, wie viele Dateien in diesem 1 GB gespeichert werden. Jede Datei verwendet mindestens einen Cluster, und Dateien, die größer als ein Cluster sind, verwenden eine ganze Zahl von Clustern und belegen mit sehr seltenen Ausnahmen am Ende etwas ungenutzten Speicherplatz. Sie müssen für jede Datei nur auf die Clustergröße aufrunden (obere Grenze).

from math import ceil

def calculate_fat32_used_space(file_sizes, cluster_size=4096):
    clusters_used = [ceil(size / cluster_size) for size in file_sizes]
    total_clusters = sum(clusters_used)
    return total_clusters * cluster_size
print(calculate_fat32_used_space([536870912, 536870912])) # For two 500MB files

Alle Größen in Bytes (einfach in alles umzuwandeln). Holen Sie sich einfach ein Array von Dateigrößen als Parameter und das war’s. Es sollte trivial sein, dies an andere Einheitengrößen anzupassen. Ich würde auch etwas Overhead in Bezug auf den Speicherplatz für das FAT32-FS selbst einkalkulieren. Vielleicht 5 MB?

verwandte Informationen