Je veux créer un fichier volumineux ~ 10G rempli de zéros et de valeurs aléatoires. J'ai essayé d'utiliser:
dd if=/dev/urandom of=10Gfile bs=5G count=10
Il crée un fichier d'environ 2 Go et se ferme avec un statut de sortie '0'. Je ne comprends pas pourquoi?
J'ai aussi essayé de créer un fichier en utilisant:
head -c 10G </dev/urandom >myfile
Il faut environ 28-30 minutes pour le créer. Mais je veux que ça soit créé plus vite. Quelqu'un a une solution?
Aussi, je souhaite créer plusieurs fichiers avec le même motif (pseudo) aléatoire pour comparaison. Est-ce que quelqu'un sait un moyen de faire ça?
Et si vous utilisiez fallocate, cet outil nous permet de préallouer de l’espace pour un fichier (si le système de fichiers prend en charge cette fonctionnalité). Par exemple, en allouant 5 Go de données à un fichier appelé 'exemple', on peut faire:
fallocate -l 5G example
C'est beaucoup plus rapide que dd et allouera très rapidement l'espace.
Vous pouvez utiliser dd
pour créer un fichier composé uniquement de zéros. Exemple:
dd if=/dev/zero of=zeros.img count=1 bs=1 seek=$((10 * 1024 * 1024 * 1024 - 1))
Ceci est très rapide car un seul octet est réellement écrit sur le disque physique. Cependant, certains systèmes de fichiers ne le supportent pas.
Si vous souhaitez créer un fichier contenant un contenu pseudo-aléatoire, exécutez:
dd if=/dev/urandom of=random.img count=1024 bs=10M
Je suggère que vous utilisiez 10M comme taille de tampon (bs
). Cela est dû au fait que 10M n’est pas trop volumineux, mais il vous donne quand même une bonne taille de tampon. Cela devrait être assez rapide, mais cela dépend toujours de la vitesse de votre disque et de la puissance de traitement.
Avec dd, cela devrait créer un fichier de 10 Go contenant des données aléatoires:
dd if=/dev/urandom of=test1 bs=1M count=10240
count
est en mégaoctets.
Source: stackoverflow - Comment créer un fichier avec une taille donnée sous Linux?
Répondant à la première partie de votre question:
Essayer d'écrire un tampon de 5 Go à la fois n'est pas une bonne idée car votre noyau ne le supporte probablement pas. Dans tous les cas, cela ne vous donnera aucun avantage en termes de performances Ecrire 1M à la fois est un bon maximum.