การล้มเหลวล้มเหลว: ไม่รองรับการทำงาน


10

เมื่อวิ่ง

fallocate -l 10G /path/to/file

ฉันกลับข้อผิดพลาดต่อไปนี้:

fallocate: file: fallocate failed: Operation not supported

การสร้างไฟล์โดยใช้ dd (ถ้า = / dev / ศูนย์หรือถ้า = / dev / urandom) ใช้งานได้ แต่ถ้าฉันพยายามสร้างไฟล์ขนาดใหญ่ขนาดสิบ GB ต้องใช้เวลาหลายชั่วโมงจึงจะเสร็จสมบูรณ์

ใช้งาน Ubuntu 14.04 การใช้พาร์ติชัน ext4 การระบุประเภทไฟล์จะไม่ปรากฏขึ้นเพื่อแก้ไขผลลัพธ์

ทำงานได้ดีบนเครื่อง CentOS6 ของฉันไม่ใช่ Ubuntu


คุณใช้ระบบไฟล์ใดอยู่
g_p

อัปเดตประเภทของไฟล์ที่คุณกำลังสร้างด้วย
vembutech

การใช้ ext4 ประเภทของไฟล์จะไม่สำคัญ ไม่ว่าฉันจะสร้างไฟล์เปล่า, .txt, .img ฉันได้รับข้อผิดพลาดเดียวกัน
John J Johnson

คำตอบ:


11

หากไฟล์กระจัดกระจายก็โอเคสำหรับคุณ (เช่นคุณต้องการสร้างภาพเพื่อเติมด้วยระบบไฟล์) ไฟล์เหล่านั้นจะถูกสร้างขึ้นในเวลาไม่นานเลย

100GB ใช้เวลา 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

มันเกี่ยวกับการสร้าง dm-crypt / LUKS container ซึ่งทำงานภายใต้สมมติฐานว่าการสร้าง container โดยใช้ / dev / urandom จะปลอดภัยกว่าการสร้างด้วย / dev / zero และค่อย ๆ กรอกข้อมูล ฉันได้เรียนรู้การใช้ fallocate จะไม่สามารถแก้ปัญหาของฉันได้เนื่องจากความเร็วที่ช้านั้นเป็นเพียงข้อ จำกัด ว่า pRNG ของ / dev / urandom ทำงานได้เร็วแค่ไหน ไชโยสำหรับการตอบสนองแม้ว่าได้รับการยอมรับในขณะที่ฉันจินตนาการหลังจากตลอดเวลานี้มันเป็นคำตอบที่ดีที่สุดที่ฉันจะได้รับฮ่าฮ่า
John J Johnson

ฉันสงสัยว่าการตกหล่นไม่สามารถย้อนกลับไปทำสิ่งเดียวกันได้หรือไม่? มันสมเหตุสมผลสำหรับฉัน
unfa

3

หากคุณไม่สนใจเนื้อหา แต่ต้องการข้อมูลบางอย่าง

ก่อนอื่นเลย

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;

2

ฉันเจอปัญหานี้เช่นกัน

ลิงก์สัญลักษณ์ในพา ธ ไดเร็กทอรีดูเหมือนว่าเป็นปัญหา ลองคำสั่งเดียวกันบน / tmp และมันควรจะทำงาน

ฉันสามารถแก้ไขปัญหาด้วยการเพิ่ม '-x' ลงในคำสั่ง fallocate สิ่งนี้บังคับให้ 'โหมด posix' และมันน่าจะใช้เวลานานกว่า

แม้ว่าระบบไฟล์จะถูกขยาย ext4 ลิงค์สัญลักษณ์ก็ทำให้เกิดข้อผิดพลาด 'ไม่รองรับระบบไฟล์นี้' ในความเป็นจริงถ้าฉันไปที่ชื่อไดเรกทอรีโดยตรง (ไม่มีลิงก์สัญลักษณ์) การโทร fallocate () ก็ใช้งานได้

A1: ไม่มีลิงก์สัญลักษณ์ใด ๆ ในชื่อพา ธ แบบเต็มของไฟล์ที่คุณกำลังสร้าง

A2: ใช้ '-x' แม้ว่าจะใช้เวลานาน

ข \ 375

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.