thất bại: Hoạt động không được hỗ trợ


10

Khi chạy

fallocate -l 10G /path/to/file

Tôi đã trả lại lỗi sau:

fallocate: file: fallocate failed: Operation not supported

Tạo tệp bằng dd (if = / dev / zero hoặc if = / dev / urandom) hoạt động, nhưng nếu tôi đang cố gắng tạo các tệp lớn, kích thước hàng chục GB, phải mất vài giờ để hoàn thành.

Chạy Ubuntu 14.04. Sử dụng phân vùng ext4, chỉ định loại tệp không xuất hiện để thay đổi kết quả.

Hoạt động tốt trên các máy CentOS6 của tôi, không phải Ubuntu.


bạn đang sử dụng hệ thống tập tin nào?
g_p

Đồng thời cập nhật cho chúng tôi loại tệp bạn đang tạo.
vembutech

Sử dụng ext4, loại tệp không xuất hiện vấn đề. Cho dù tôi đang tạo một tệp trống, .txt, .img, tôi đều nhận được cùng một lỗi.
John J Johnson

Câu trả lời:


11

Nếu các tệp thưa thớt phù hợp với bạn (ví dụ: bạn muốn tạo một hình ảnh để đưa nó vào một hệ thống tệp), chúng sẽ được tạo ngay lập tức

100GB mất 3 mili giây:

# 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

Tệp kết quả:

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

Kích thước thật của nó tại thời điểm này: 0 Byte

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

Nó liên quan đến việc tạo một thùng chứa dm-crypt / LUKS, hoạt động theo giả định rằng việc tạo một thùng chứa bằng / dev / urandom sẽ an toàn hơn so với việc tạo một thùng chứa có / dev / zero và dần dần lấp đầy nó với dữ liệu. Tôi đã học được cách sử dụng fallocate sẽ không giải quyết được vấn đề của mình, vì tốc độ chậm chỉ đơn giản là giới hạn về tốc độ pRNG của / dev / urandom hoạt động nhanh như thế nào, nhưng tôi vẫn không biết tại sao chính Fallocate lại từ chối hoạt động. Dù vậy, tôi vẫn cổ vũ cho phản hồi, được chấp nhận như tôi tưởng tượng. Đây là phản hồi tốt nhất tôi sẽ nhận được haha.
John J Johnson

Tôi tự hỏi nếu Fallocate không thể dự phòng để làm điều tương tự? Điều đó có ý nghĩa với tôi.
unfa

3

Nếu bạn không quan tâm đến nội dung mà chỉ cần một số dữ liệu,

Đầu tiên làm

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

Nó sẽ tạo ra,

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

Sau đó, nếu bạn muốn tạo tệp 10M, hãy sử dụng tệp được tạo ở trên để nối lại nhiều lần,

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

2

Tôi cũng gặp vấn đề này.

Một liên kết tượng trưng trong đường dẫn thư mục dường như là vấn đề. thử cùng một lệnh trên / tmp và nó sẽ hoạt động.

Tôi đã có thể khắc phục vấn đề bằng cách thêm '-x' vào lệnh ngụy biện. Điều này buộc 'chế độ posix', và nó sẽ mất nhiều thời gian hơn.

Mặc dù hệ thống tập tin là ext4, liên kết tượng trưng đã gây ra lỗi 'không được hỗ trợ trên hệ thống tập tin này'. Trong thực tế nếu tôi truy cập trực tiếp vào tên thư mục (không có bất kỳ liên kết tượng trưng nào), cuộc gọi fallocate () đã hoạt động.

A1: không có liên kết tượng trưng ở bất cứ đâu trong tên đường dẫn đầy đủ của tệp bạn đang tạo.

A2: sử dụng '-x', mặc dù mất nhiều thời gian hơn.

b \ 375

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.