首页 存档 技术 查看内容

Linux/UNIX:使用dd命令创建1GB大小的二进制

2018-3-30 13:00 |来自: 互联网 746 0

摘要: 我如何使用 Shell 命令,在 UNIX/Linux/BSD 系统上使用dd命令创建1GB或者10GB镜像文件? 您可以使用 dd 命令生成镜像文件,用来测试网络或文件系统。 你需要使用下面命令: fallocate - 预分配空白文件; truncate ...

我如何使用 Shell 命令,在 UNIX/Linux/BSD 系统上使用dd命令创建1GB或者10GB镜像文件?

您可以使用 dd 命令生成镜像文件,用来测试网络或文件系统。

你需要使用下面命令:

  1. fallocate - 预分配空白文件;

  2. truncate - 缩小或扩展文件的大小;

  3. dd - 转换和复制文件,例如 克隆、新建、覆盖 镜像;

  4. df - 查看磁盘空间;

  5. du - 统计磁盘使用情况;

  6. ls - 列出文件大小;

fallocate 命令语法

基本语法是:

fallocate -l Image_Size_Here /path/to/image.img

使用 fallocate 命令在 Linux 上创建大文件

用下面命令创建 1GB 文件:
fallocate -l 1G test.img

使用 ls 命令查看文件大小:

$ ls -lh test.img

示例输出:
-rw-r--r--. 1 root root 1.0G Nov 27 03:42 test.img

你可以使用 stat 或 du 命令查看块分配信息:
stat test.img
File: `test.img'
Size: 1073741824 Blocks: 2097160 IO Block: 4096 regular file
Device: 805h/2053d Inode: 9043983 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-11-27 03:42:27.575841698 -0600
Modify: 2013-11-27 03:42:27.575841698 -0600
Change: 2013-11-27 03:51:06.108962462 -0600
du -h test.img
1048580 test.img

创建 100M 大小的文件,按回车即可:

fallocate -l 100M file.out

后面的 -l 参数时用来指定文件大小以字节为单位,如 k, m, g, t, p, e 分别表示 KiB, MiB, GiB,TiB,PiB,EiB。

dd 命令语法

注意: 下面的信息只存在于老版本的 Linux 或当 fallocate 命令不可用的系统上。如果可能的话尽量使用 fallocate 命令创建的二进制镜像文件。dd 命令被认为是旧的并且不推荐使用,但这里介绍的只是历史的原因。

基本语法:

dd if=/path/to/input of=/path/to/output [options]
OR
dd if=/dev/zero of=/path/to/output.img [options]
OR
dd if=/dev/zero of=YOUR-IMAGE-FILE-NAME-HERE bs=1 count=0 seek=Size-HERE

使用 dd 命令创建镜像

首先,要确保磁盘有足够的空间来存放 dd 创建的文件:

$ df -H

创建 1MB 文件,按回车:

$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=1024

你将会得到一个空文件(也称为“稀疏文件”)。创建 10M 的文件,按回车:

$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*10]

创建 100M 的文件,按回车:

$ 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

确认文件大小(留意 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

在这个例子中,新建一个 1GB 大小的文件(在 *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

英文原文:Linux / UNIX: Create Large 1GB Binary Image File With dd Command

译者:Daniel

本文由 Linux公社翻译组 原创翻译 Linux公社推出

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-12/110147.htm

本文转载自:微信公众账号 - Linux公社,版权归原作者所有!

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部