Comment créer un système de files bas-overhead

J'ai le keychain d'USB avec la taille de 7.5GB et j'ai besoin de copyr le dossier dessus avec la taille 7.4GB. Mais je ne peux pas parce que les superblocs consumnt 0,5 Go d'espace.

Vous n'avez pas besoin d'un système de files pour écrire des données sur un périphérique. Vous pouvez simplement utiliser tar pour créer une archive qui stocke votre structure de directorys et toutes les métadonnées et l'écrit sur le périphérique.

Écrire des données

Voici sdb est un exemple de la key USB sur mon système, ajuster en fonction de votre configuration.

 tar cf /dev/sdb <some_directory> 

Lecture des données

Vous pouvez utiliser directement tar pour lire datatables de l'appareil:

 tar xf /dev/sdb 

Dans mes expériences, il lit toujours l'set du périphérique en bloc, pas seulement datatables de l'archive tar. Si vous savez que votre appareil a 8 Go mais que vous avez seulement sauvegardé, disons 3 GiB, vous pouvez utiliser dd pour éviter de lire tout l'appareil:

 dd if=/dev/sdb bs=1M count=3072 | tar xf - 

Notes latérales

Essayez de compresser datatables autant que possible. Cela peut prendre beaucoup de time, mais peut-être que tout se trouve sur un lecteur avec un système de files ordinaire. Je conseillerais d'utiliser 7-Zip , c'est lent mais il a un taux de compression élevé. Voici un exemple:

 7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z <some_directory> 

Étant donné que vous n'avez pas vraiment besoin d'un système de files ext4, mais que vous posez réellement des questions sur un système de files qui ramènera les frais généraux en dessous d'environ 1,3% de la capacité de l'appareil (100 Mo sur 7,5 Go) overhead options. Les deux plus évidentes qui répondent à vos critères de prise en charge d'un seul file de 7,4 Go sont soit ext2 avec un faible nombre d'inodes et des superblocs épars, soit un système de files FAT32 à faible surcharge.

EDIT: Il semble que je me trompais sur la taille de file maximale de FAT32, mais je le laisse ici au cas où quelqu'un viendrait à travers cela et peut vivre avec la limitation qu'un seul file ne peut pas être plus grand que 2 ^ 32-1 (4 GiB – 1) octets.

Pour un système de files ext2 à faible surcharge, essayez quelque chose comme suit: mke2fs -t ext2 -N 8 -O sparse_super . Le -N 8 spécifie le nombre d'inodes sur le système de files. Je ne sais pas à quel point cela va aller, donc ce button peut nécessiter un peu de tourner.

Pour un système de files FAT32 à faible surcharge, essayez quelque chose comme mkdosfs -F 32 -f 1 -r 8 -S 32768 -s 128 -a . Cela créera un -F 32 FAT32 (qui permet la taille de file dont vous avez besoin), avec -f 1 un seul FAT, -r 8 8 inputs du directory racine, -S 32768 une taille de secteur logique de 32 KiB, -s 128 128 secteurs par grappe (vous pourriez peut-être l'augmenter encore davantage) et -a désactiver l'alignment de la structure des données.