fallocate gagal: Operasi tidak didukung


10

Saat berlari,

fallocate -l 10G /path/to/file

Saya mengembalikan kesalahan berikut:

fallocate: file: fallocate failed: Operation not supported

Membuat file menggunakan dd (jika = / dev / nol atau jika = / dev / urandom) berfungsi, tetapi jika saya mencoba membuat file besar, puluhan GB, dibutuhkan beberapa jam untuk menyelesaikannya.

Menjalankan Ubuntu 14.04. Menggunakan partisi ext4, menentukan tipe file tidak muncul untuk mengubah hasilnya.

Bekerja dengan baik pada mesin CentOS6 saya, hanya saja tidak Ubuntu.


sistem file mana yang Anda gunakan?
g_p

Perbarui kami juga jenis file yang Anda buat.
vembutech

Menggunakan ext4, tipe file sepertinya tidak penting. Apakah saya membuat file kosong, .txt, dan .img, saya menerima kesalahan yang sama.
John J Johnson

Jawaban:


11

Jika file jarang ok untuk Anda (misalnya Anda ingin membuat gambar untuk mengisinya dengan sistem file), mereka dibuat dalam waktu singkat

100GB ambil 3 milidetik:

# 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

File yang dihasilkan:

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

Ukuran sebenarnya saat ini: 0 Bytes

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

Dalam hal menciptakan wadah dm-crypt / LUKS, beroperasi dengan asumsi bahwa membuat wadah menggunakan / dev / urandom akan lebih aman daripada membuat wadah dengan / dev / nol dan secara bertahap mengisinya dengan data. Sejak itu saya telah belajar menggunakan fallocate tidak akan menyelesaikan masalah saya, karena kecepatan lambat hanyalah keterbatasan seberapa cepat pRNG dari / dev / urandom bekerja, tetapi saya masih tidak tahu mengapa fallocate sendiri menolak untuk bekerja. Cheers for the response, diterima seperti yang saya bayangkan setelah selama ini adalah respon terbaik yang akan saya dapatkan haha.
John J Johnson

Saya bertanya-tanya apakah fallocate tidak dapat mundur untuk melakukan hal yang sama? Itu masuk akal bagi saya.
unfa

3

Jika Anda tidak peduli tentang konten tetapi hanya perlu beberapa data,

Pertama lakukan,

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

Itu akan membuat,

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

Kemudian, jika Anda ingin membuat file 10M, gunakan file yang dibuat di atas untuk ditambahkan berulang kali,

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

2

Saya juga mengalami masalah ini.

Tautan simbolis di jalur direktori tampaknya menjadi masalah. coba perintah yang sama pada / tmp dan itu seharusnya berfungsi.

Saya bisa mengatasi masalah dengan menambahkan '-x' ke perintah fallocate. Ini memaksa 'mode posix', dan itu seharusnya memakan waktu lebih lama.

Meskipun filesystem ext4, tautan simbolik menyebabkan kesalahan 'tidak didukung pada filesystem ini'. Bahkan jika saya langsung pergi ke nama direktori (tanpa tautan simbolik), panggilan fallocate () berhasil.

A1: tidak memiliki tautan simbolik di mana pun di nama path lengkap dari file yang Anda buat.

A2: gunakan '-x', meskipun itu butuh waktu lebih lama.

b \ 375

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.