Câu trả lời:
Các phương pháp zero-điền (ở đây sửa đổi để tránh tắc nghẽn bộ nhớ tiềm ẩn ) mất 17 giây để tạo ra một tập tin 10 GB trên một SSD và gây ra giao diện đồ họa của Ubuntu trở thành không phản hồi.
$ time sh -c 'dd if=/dev/zero iflag=count_bytes count=10G bs=1M of=large; sync'
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 17.2003 s, 624 MB/s
real 0m17.642s
user 0m0.008s
sys 0m9.404s
$ du -B 1 --apparent-size large
10737418240 large
$ du -B 1 large
10737422336 large
fallocate tạo các tệp lớn ngay lập tức bằng cách thao tác trực tiếp không gian đĩa được phân bổ của tệp:
$ time sh -c 'fallocate -l 10G large; sync'
real 0m0.038s
user 0m0.000s
sys 0m0.016s
$ du -B 1 --apparent-size large
10737418240 large
$ du -B 1 large
10737422336 large
cắt ngắn cũng hoạt động ngay lập tức và tạo các tệp thưa thớt không sử dụng hết dung lượng đĩa thực cho đến khi dữ liệu được ghi sau này:
$ time sh -c 'truncate -s 10G large; sync'
real 0m0.014s
user 0m0.000s
sys 0m0.004s
$ du -B 1 --apparent-size large
10737418240 large
$ du -B 1 large
0 large
Một cách dễ dàng là sử dụng dd
lệnh để viết một tệp đầy số không.
dd if=/dev/zero of=outputFile bs=2G count=1
Sử dụng G trong đối số kích thước nếu bạn muốn máy tính (1024 * 1024 * 1024) gigabyte hoặc GB nếu bạn muốn con người (1000 * 1000 * 1000) gigabyte.
/dev/urandom
trong trường hợp đó (nó không chặn, nhưng không được bảo đảm có cùng mức độ ngẫu nhiên). Việc rút 2 GB từ một trong hai thứ gần như chắc chắn sẽ làm cạn kiệt hoàn toàn entropy của hệ thống của bạn, vì vậy đừng làm bất cứ điều gì về mật mã trong một thời gian sau đó.
ftp://ftp.fsf.hu/testfiles/maketestfiles.sh
hoặc Tìm kiếm là kích thước của tệp bạn muốn theo byte - 1.
dd if=/dev/zero of=filename.big bs=1 count=1 seek=1048575 # 1 MByte
dd if=/dev/zero of=filename.big bs=1 count=1 seek=10485759 # 10 MByte
dd if=/dev/zero of=filename.big bs=1 count=1 seek=104857599 # 100 MByte
dd if=/dev/zero of=filename.big bs=1 count=1 seek=1073741823 # 1024 MByte
dd if=/dev/zero of=filename.big bs=1 count=1 seek=42949672959 # 40960 MByte
dd ... bs=2G count=1
đọc 2 GB vào bộ nhớ (trong mộtread(2)
cuộc gọi). Nếu bạn có áp lực bộ nhớ có lẽ không phải là cách để đi. Nhiều hơn, các khối nhỏ hơn có thể nhanh hơn nếu nó có nghĩa là phân trang ít hơn.