é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 de gros fichiers, dont la taille est de plusieurs dizaines de Go, il faut plusieurs heures.

Exécuter 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 avec Ubuntu.

    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 prennent 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 octet

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

    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’append à plusieurs resockets,

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