web-dev-qa-db-fra.com

échec de fallocate: opération non prise en charge

En cours d'exécution,

fallocate -l 10G /path/to/file

Je suis retourné l'erreur suivante:

fallocate: file: fallocate failed: Operation not supported

La création du fichier à l'aide de dd (if =/dev/zero ou if =/dev/urandom) fonctionne, mais si j'essaie de créer des fichiers volumineux, dont la taille est de plusieurs dizaines de Go, il faut plusieurs heures.

Utiliser Ubuntu 14.04. L'utilisation d'une partition ext4, la spécification d'un type de fichier ne semble pas altérer le résultat.

Fonctionne bien sur mes machines CentOS6, mais pas Ubuntu.

9
John J Johnson

Si les fichiers fragmentés vous conviennent (par exemple, si vous souhaitez créer une image afin de la remplir avec un système de fichiers), ils sont créés en un rien de temps.

100 Go prend 3 millisecondes:

# time dd if=/dev/zero of=tmptst.dat bs=1G seek=100 count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0,00037726 s, 0,0 kB/s

real    0m0.003s
user    0m0.000s
sys 0m0.002s

Le fichier résultant:

# ls -lh tmptst.dat
-rw-r--r-- 1 root root 100G 2015-01-22 16:39 tmptst.dat

Sa taille réelle en ce moment: 0 Octets

# ls -lsh tmptst.dat
0 -rw-r--r-- 1 root root 100G 2015-01-22 16:39 tmptst.dat
11
murxo

Si vous ne vous souciez pas du contenu mais avez juste besoin de quelques données,

D'abord faire

dd if=/dev/urandom of=tmp.txt bs=1M count=1

Il va créer,

-rw-r--r-- 1 root root 1.0M Oct 17 00:30 tmp1.txt.

Ensuite, si vous souhaitez créer un fichier 10M, utilisez le fichier généré ci-dessus pour l'ajouter à plusieurs reprises,

for i in {1..10}; do dd if=tmp.txt of=tmp1.txt bs=1M oflag=append conv=notrunc; done;
3
user1234