Question Création rapide de fichiers Linux


Je veux créer un fichier vide (ne peut pas être mis à zéro) dans le système de fichiers ext4. Je peux le faire avec:

dd if=/dev/zero of=file count=xxxx

Mais cela prend un certain temps si x est autour de 0.5T. Je suppose qu'il y a un moyen de créer un tel fichier rapidement. Il peut contenir du charabia, ce n'est pas grave.


7
2018-03-03 13:17


origine




Réponses:


Vous pouvez créer un fichier fragmenté mais ne pas obtenir les résultats souhaités, en fonction des raisons pour lesquelles vous procédez ainsi:

dd if=/dev/zero of=sparse_file bs=1 count=1 seek=512M

ls -l sparse_file        
-rw-rw-r-- 1 kbrandt kbrandt 536870913 2010-03-03 08:30 sparse_file

Le problème est que si un programme ne sait pas comment gérer les fichiers fragmentés, vous pouvez le remplir avec des zéros. Par exemple, voir ce précédent post serverfault. Vous pouvez voir la différence avec du ainsi que:

[kbrandt@kbrandt-opadmin: /bigfiles] du sparse_file
12  sparse_file
[kbrandt@kbrandt-opadmin: /bigfiles] du sparse_file --apparent-size
524289  sparse_file
[kbrandt@kbrandt-opadmin: /bigfiles] #cat is not sparse aware, watch what happens
[kbrandt@kbrandt-opadmin: /bigfiles] cat sparse_file > sparse_file2 
[kbrandt@kbrandt-opadmin: /bigfiles] du sparse_file2
524808  sparse_file2

Enfin, si vous voulez réellement mettre les zéros, si vous définissez un bs plus élevé, cela pourrait être un peu plus rapide, comme bs = 4096. Voici un lien à quelqu'un qui a réellement fait quelques points de repère avec des tailles de bloc de DD.


8
2018-03-03 13:32





Un fichier fragmenté suffirait-il?

% dd if=/dev/zero of=sparsefile bs=1k seek=500M count=1
1+0 records in
1+0 records out
1024 bytes transferred in 0.000224 secs (4569114 bytes/sec)

% ls -lh sparsefile
-rw-------  1 james  james   500G  3 Mar 13:30 sparsefile

4
2018-03-03 13:32





Utilisation:

truncate -s 500G filename

Il est vraiment rapide si votre système de fichiers prend en charge les fichiers fragmentés.

Le contenu du fichier est toujours mis à zéro. Linux ne vous permettra pas de réutiliser des secteurs de disque sans les mettre à zéro car cela constitue un risque pour la sécurité. Pour les fichiers fragmentés, les secteurs ne sont attribués que lors de la première écriture.


2
2018-03-03 14:08