J'ai un trousseau USB avec une taille de 7,5 Go et je dois copier un fichier dessus avec une taille de 7,4 Go. Mais je ne peux pas parce que les superblocs consomment 0,5 Go d'espace.
J'ai un trousseau USB avec une taille de 7,5 Go et je dois copier un fichier dessus avec une taille de 7,4 Go. Mais je ne peux pas parce que les superblocs consomment 0,5 Go d'espace.
Réponses:
Vous n'avez pas besoin d'un système de fichiers 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 répertoire et toutes les métadonnées et l'écrire sur le périphérique.
Écriture de données
Voici sdb
un exemple de la clé USB de mon système, ajustez-la en fonction de votre configuration.
tar cf /dev/sdb <some_directory>
Lecture de données
Vous pouvez directement utiliser tar
pour lire les données de l'appareil:
tar xf /dev/sdb
Dans mes expériences, cela lit toujours le périphérique de bloc entier, pas seulement les données de l'archive tar. Si vous savez que votre appareil a 8 Go mais que vous n’avez sauvegardé que, disons 3 Go, vous pouvez utiliser dd
pour éviter de lire tout l’appareil:
dd if=/dev/sdb bs=1M count=3072 | tar xf -
Notes de côté
Essayez de compresser les données autant que possible. Cela peut prendre beaucoup de temps, mais peut-être que tout ira bien sur un lecteur avec un système de fichiers 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>
tar
décrites dans “Ecriture de données” et “Lecture de données” et ignorez ce que j'ai écrit dans “Notes annexes”. Tar ne compresse pas par défaut.
Étant donné que vous n'avez pas vraiment besoin d'un système de fichiers ext4, mais que vous posez vraiment des questions sur un système de fichiers permettant de réduire les frais généraux au-dessous de 1,3% de la capacité du périphérique (100 Mo sur 7,5 Go), il y a plusieurs solutions. options de frais généraux. Les deux solutions les plus évidentes qui répondent à vos critères de capacité à gérer un fichier unique de 7,4 Go sont soit ext2 avec un faible nombre d'inodes et de superblocs crépus, soit un système de fichiers FAT32 peu onéreux.
EDIT: Il semble que je me suis trompé au sujet de la taille maximale du fichier FAT32, mais je le laisse ici au cas où quelqu'un le verrait et pourrait vivre avec la limitation qu'un fichier unique ne puisse pas dépasser 2 ^ 32 - 1 (4 Go - 1) octets.
Pour un système de fichiers ext2 peu onéreux, essayez quelque chose du genre mke2fs -t ext2 -N 8 -O sparse_super
. Le -N 8
spécifie le nombre d'inodes sur le système de fichiers. Je ne sais pas à quel point ça va baisser, alors ce bouton peut nécessiter un peu de tournage.
Pour un système de fichiers FAT32 allégé, 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 fichier dont vous avez besoin), avec -f 1
un seul FAT, -r 8
8 entrées de répertoire racine, -S 32768
une taille de secteur logique de 32 Ko, -s 128
128 secteurs par cluster (vous pourrez peut-être l'augmenter davantage) et -a
désactiver alignement de la structure de données.
mke2fs -t ext2 -N 64 -O sparse_super
. Cela dit, je ne suis pas sûr que vous puissiez réduire le temps système du système de fichiers autant que nécessaire (jusqu'à moins de 1,3% de la capacité du périphérique).