最新消息:

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

LINUX reebor 172瀏覽 0評論

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

您可以使用 dd 命令生成鏡像文件,用來測試網絡或文件系統。

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

你需要使用下面命令:

  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

轉載請注明:REB站長網 » Linux/UNIX: 使用 dd 命令創建 1GB 大小的二進制

發表我的評論
取消評論

表情

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
四川快乐12走势图基本