生成指定大小的文件
09月 7th, 2007dd if=/dev/zero of=100M.bin bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.256523 seconds, 409 MB/s
参数1M表示每次读写1M数据,100为读写100次
这样就生成100M的空镜像文件,问题是,如果要生成1G的虚拟块设备文件,就得占用1G的硬盘空间,而这个镜像文件完全是空的,是不是有一点浪费?好在Linux支持Sparse(稀疏)文件。请看下面的例子
# dd if=/dev/zero of=1G.img bs=1M seek=1000 count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 3.3e-05 seconds, 0.0 kB/s
# ls -l 1G.img
-rw-r–r– 1 root root 1048576000 Mar 25 15:32 1G.img
# du -m 1G.img
1 1G.img
这里用了一个新的命令seek,表示略过1000个Block不写(这里Block按照bs的定义是1M),count=0表示写入0个Block。用ls命令看新生成的文件,大小可以看出是1000M。但是再用du一看,实际占用硬盘大小只有1M。