Linux/UNIX:使用dd命令创建大的1GB二进制镜像文件
时间:2020-01-09 10:40:08 来源:igfitidea点击:
如何在UNIX/Linux/BSD操作系统下使用Shell提示符在dd命令下立即创建1 GB或10 GB的镜像文件?
您可以使用" dd"命令来创建用于网络或文件系统测试的镜像文件。
您需要使用以下命令:
- fallocate命令为文件预分配空间。
- truncate命令将文件的大小缩小或扩展到指定的大小。
- dd命令转换并复制文件,即克隆/创建/覆盖镜像。
- df命令显示可用磁盘空间。
- du命令显示磁盘使用情况统计信息。
- ls命令列出文件大小。
fallocate命令语法
基本语法为:
fallocate -l Image_Size_Here /path/to/image.img
使用fallocate命令在Linux上创建大文件
以下命令将创建1G文件:
fallocate -l 1G test.img
使用ls命令验证新磁盘镜像:
$ ls -lh test.img
您可以使用stat或du命令来验证块分配:
stat test.img
要创建100M大小的文件,请执行:
fallocate -l 100M file.out
-l
选项指定分配的长度(以字节为单位)。
后缀可以指定为k,m,g,t,p,e,表示KB,MB,GB,TB,PB,EB等。
dd命令语法
注意:以下信息仅适用于旧版本的Linux和/或在fallocate命令不可用时。
如果可能,请仅使用fallocate命令创建二进制镜像。
基于dd命令的方法被认为是"旧的,不推荐使用",但此处仅出于历史原因在此介绍。
基本语法是:
dd if=/path/to/input of=/path/to/output [options]
或者
dd if=/dev/zero of=/path/to/output.img [options]
或者
dd if=/dev/zero of=YOUR-IMAGE-FILE-NAME-HERE bs=1 count=0 seek=Size-HERE
使用dd命令创建镜像文件
首先,请确保您有足够的磁盘空间来使用dd创建镜像文件:
$ df -H
要创建1MB文件(1024kb),请执行:
$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=1024
使用上述语法,您将获得一个任意大小的空文件(也称为"稀疏文件")。
要创建10MB文件,请执行:
$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*10]
要创建100MB文件,请执行:
$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*100] $ ls -lh test.img
要创建1GB,文件:
$ dd if=/dev/zero of=1g.img bs=1 count=0 seek=1G
输出示例:
0+0 records in 0+0 records out 0 bytes (0 B) copied, 0.000235686 s, 0.0 kB/s
验证文件大小(注意原始dd命令中的bs因素):
$ ls -lh 1g.img $ stat 1g.img $ du -h 1g.im
dd技巧:在Unix或Linux中创建给定大小的文件
如果truncate命令不可用,请尝试以下语法:dd if =/dev/zero of =/path/to/fiie.img bs = YOUR-FILE-SIZE-HERE count = 1
在此示例中,使用以下命令创建文件: 1G(在* BSD/OS X上使用1g)大小:
$ dd if=/dev/zero of=1g.bin bs=1G count=1
输出示例:
1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 8.12307 s, 132 MB/s
验证文件大小/块:
$ stat 1g.bin
输出示例:
File: `1g.bin' Size: 1073741824 Blocks: 2097152 IO Block: 4096 regular file Device: 805h/2053d Inode: 9043988 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2013-11-27 04:15:02.962662890 -0600 Modify: 2013-11-27 04:15:03.769673943 -0600 Change: 2013-11-27 04:15:03.769673943 -0600