$ time sh -c 'dd if=/dev/zero iflag=count_bytes count=10G bs=1M of=large; sync'
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 17.2003 s, 624 MB/s
real 0m17.642s
user 0m0.008s
sys 0m9.404s
$ du -B 1 --apparent-size large
10737418240 large
$ du -B 1 large
10737422336 large
fallocate crée des fichiers volumineux instantanément en manipulant directement l'espace disque alloué au fichier:
$ time sh -c 'fallocate -l 10G large; sync'
real 0m0.038s
user 0m0.000s
sys 0m0.016s
$ du -B 1 --apparent-size large
10737418240 large
$ du -B 1 large
10737422336 large
truncate fonctionne également instantanément et crée des fichiers clairsemés qui n'utilisent pas l'espace disque réel jusqu'à ce que les données soient écrites plus tard:
$ time sh -c 'truncate -s 10G large; sync'
real 0m0.014s
user 0m0.000s
sys 0m0.004s
$ du -B 1 --apparent-size large
10737418240 large
$ du -B 1 large
0 large
dd ... bs=2G count=1lit 2 Go en mémoire (en un seul read(2)appel). Si vous avez une pression sur la mémoire, ce n'est probablement pas la voie à suivre. De plus, des blocs plus petits peuvent être plus rapides si cela signifie moins de pagination.
claymation
19
Un moyen simple serait d'utiliser la ddcommande pour écrire un fichier plein de zéros.
dd if=/dev/zero of=outputFile bs=2G count=1
if = fichier d'entrée
of = fichier de sortie
bs = octets
Utilisez G dans l'argument taille si vous voulez des gigaoctets d'ordinateur (1024 * 1024 * 1024), ou Go si vous voulez des gigaoctets humains (1000 * 1000 * 1000).
je vais juste ajouter que si vous ne voulez pas tous les zéros, vous pouvez choisir if = / dev / random
Denwerko
Bien que / dev / random prendra plus de temps.
con-f-use
10
En utilisant / dev / random prendra un terrible beaucoup de temps. À utiliser /dev/urandomdans ce cas (c'est non bloquant, mais il n'est pas garanti d'avoir le même niveau de caractère aléatoire). Dessiner 2 Go à partir de l'un ou l'autre épuisera presque certainement complètement l'entropie de votre système, alors ne faites rien de cryptographique pendant un certain temps après.
dd ... bs=2G count=1
lit 2 Go en mémoire (en un seulread(2)
appel). Si vous avez une pression sur la mémoire, ce n'est probablement pas la voie à suivre. De plus, des blocs plus petits peuvent être plus rapides si cela signifie moins de pagination.Un moyen simple serait d'utiliser la
dd
commande pour écrire un fichier plein de zéros.Utilisez G dans l'argument taille si vous voulez des gigaoctets d'ordinateur (1024 * 1024 * 1024), ou Go si vous voulez des gigaoctets humains (1000 * 1000 * 1000).
la source
/dev/urandom
dans ce cas (c'est non bloquant, mais il n'est pas garanti d'avoir le même niveau de caractère aléatoire). Dessiner 2 Go à partir de l'un ou l'autre épuisera presque certainement complètement l'entropie de votre système, alors ne faites rien de cryptographique pendant un certain temps après.ftp://ftp.fsf.hu/testfiles/maketestfiles.sh
ou Seek est la taille du fichier souhaité en octets - 1.
la source