fallocate отказавший: Операция, не поддерживаемая

При выполнении,

fallocate -l 10G /path/to/file

Я возвращаюсь следующая ошибка:

fallocate: file: fallocate failed: Operation not supported

При создании файла с помощью dd (если =/dev/zero или если =/dev/urandom) работы, но если я пытаюсь создать большие файлы, десятки ГБ в размере, требуется несколько часов для завершения.

Под управлением Ubuntu 14.04. Используя ext4 раздел, указывая тип файла, кажется, не изменяет результат.

Хорошо работая на моих машинах CentOS6, просто не Ubuntu.

9
задан 19 December 2014 в 08:26

3 ответа

Если редкие файлы хорошо для Вас (например, Вы хотите создать изображение для заполнения его с файловой системой), они создаются в мгновение ока вообще

Взятие на 100 ГБ 3 миллисекунды:

# 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

Получающийся файл:

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

Его реальный размер в данный момент: 0 байтов

# ls -lsh tmptst.dat
0 -rw-r--r-- 1 root root 100G 2015-01-22 16:39 tmptst.dat
11
ответ дан 23 November 2019 в 04:54

Если вы не заботитесь о контенте, а просто нуждаетесь в каких-то данных,

Сначала сделайте,

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

Это создаст,

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

Затем, если вы хотите создать файл 10M, используйте созданный выше файл для добавления несколько раз,

for i in {1..10}; do dd if=tmp.txt of=tmp1.txt bs=1M oflag=append conv=notrunc; done;
3
ответ дан 23 November 2019 в 04:54

Я также столкнулся с этой проблемой.

символьная ссылка А в пути к каталогу, кажется, проблема. попробуйте ту же команду на/tmp, и это должно работать.

я смог обойти проблему путем добавления '-x' к fallocate команде. Это вызвало 'posix режим', и он предположил для занимания больше времени.

Даже при том, что файловая система была ext4, который символьная ссылка вызывала 'не поддерживаемый в этой файловой системе' ошибка. На самом деле, если я перешел непосредственно к имени каталога (без каких-либо символьных ссылок), fallocate (), вызов действительно работал.

A1: не имейте символьных ссылок нигде на название полного пути файла, который Вы создаете.

A2: используйте '-x', даже при том, что он занимает больше времени.

b\375

1
ответ дан 23 November 2019 в 04:54

Другие вопросы по тегам:

Похожие вопросы: