dd status=progress if=/dev/zero of=/tmp/testfile.zer bs=100M count=10

dd status=progress if=/dev/urandom of=/tmp/testfile1.ran bs=100M count=10

dd status=progress if=/dev/urandom of=/tmp/testfile2.ran bs=100M count=20

输出是:

-rw-rw-r-- 1 dorinand dorinand 320M dub 21 12:37 testfile1.ran

-rw-rw-r-- 1 dorinand dorinand 640M dub 21 12:37 testfile2.ran

-rw-rw-r-- 1 dorinand dorinand 1000M dub 21 12:37 testfile.zer

为什么输出测试文件从/ dev / urandom生成的三倍小?我希望testfile1.ran的大小为1000M,testfile2.ran的大小为2000M.有人为什么会这样?我该如何生成随机测试文件?

解决方法:

使用较大的块大小,存在获取不完整读取的风险.从管道而不是块设备读取时也会发生这种情况.

如果您希望收到一定的大小(计数* bs),您还必须提供iflag = fullblock.

对于bs = 1M或更小,它可能没有必要,但仍然推荐它.

dd还会尝试向您展示它获得了多少不完整的读数.它复制n m个块,n个完整块和m个不完整块.复制不是blocksize的多个文件时,最后一个块的不完整是正常的.

例:

$dd status=progress if=/dev/urandom of=/dev/null bs=100M count=20

dd: warning: partial read (33554431 bytes); suggest iflag=fullblock

536870896 bytes (537 MB, 512 MiB) copied, 2 s, 254 MB/s

0+20 records in

0+20 records out

671088620 bytes (671 MB, 640 MiB) copied, 2.64391 s, 254 MB/s

在这种情况下,它只有不完整的读取,而不是一个完整的100M块.显然/ dev / urandom不愿意在一次读取中提供那么多数据.我的dd版本甚至告诉你直接使用iflag = fullbock.

使用fullblock,一切正常:

$dd status=progress if=/dev/urandom of=/dev/null bs=100M count=20 iflag=fullblock

2097152000 bytes (2.1 GB, 2.0 GiB) copied, 8 s, 255 MB/s

20+0 records in

20+0 records out

2097152000 bytes (2.1 GB, 2.0 GiB) copied, 8.22914 s, 255 MB/s

它需要更长的时间,因为它实际上复制了两倍以上的数据量.

标签:linux,dd

来源: https://codeday.me/bug/20190809/1629419.html

查看linux设备Ran的大小,linux – 来自/ dev / zero和/ dev / urandom的不同文件大小相关推荐

  1. 如何查看linux系统的存储空间大小,linux 如何查看硬盘大小,存储空间大小等系统信息及硬件信息...

    一.linux CPU大小 [root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpui ...

  2. linux查看usb设备文件,技术|在 Linux 系统里识别 USB 设备名字的 4 种方法

    对于初学者来说,在 Linux 系统里你必须掌握的技术之一就是识别出插入系统里的各种设备.这也许是你的系统硬盘.外部的存储设备或者是可移动设备,比如 USB 设备或 SD 闪存卡等. 现如今,使用 U ...

  3. linux 查看 pci 设备驱动,如何写linux pci设备驱动程序

    PCI总线应用领域及其广泛并且令人惊奇.不同的pci设备有不同的需求以及不同的问题.因此,在linux内核中pci层支持就非常重要啦.本文档就是想为驱动程序设计开发人员解决pci处理中的各种问题. 0 ...

  4. linux设备和驱动注册,Linux驱动第五篇-----驱动注册和生成设备节点

    加载驱动的指令是:insmod xx.ko 查看驱动的指令是: lsmod 卸载驱动的指令是:rmmod xx 在include/linux/platform_device.h这个文件中定义了平台驱动 ...

  5. Linux设备驱动01:Linux设备驱动概述

    目录 1. 设备驱动的作用 2. 有无操作系统时的设备驱动 2.1 无操作系统 2.1.1 硬件.驱动和应用程序的关系 2.1.2 单任务软件典型架构 2.2 有操作系统 2.2.1 硬件.驱动.操作 ...

  6. linux fdisk调整root大小,Linux下分区大小改变及fdisk应用

    改变Linux分区大小 一般来说,Linux系统根分区(一般是Ext2.Ext3.ReiserFS格式)是无法改变容量的,这一点与Windows下的FAT32.NTFS 颇有不同.我曾经试了一下,不但 ...

  7. 嵌入式linux设备驱动开发,嵌入式Linux设备驱动开发简介.pdf

    清远见--嵌入式培训专家 http :// "黑色经典"系列之<嵌入式Linux 应用程序开发详解> 11 章 嵌入式Linux 设备驱动开发 本章目标 本书从 6 章 ...

  8. linux 设备文件分区命令,Linux常见设备及相应/dev/xxx文件名、Mount Point、挂载点、Mount命令、fstab、挂载分区(示例代码)...

    Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取).块设备(有缓冲且可以随机存取).这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理 ...

  9. linux设备驱动程序调试方法,Linux设备驱动程序学习(2)-调试技术

    Linux设备驱动程序学习(2)-调试技术 Linux设备驱动程序学习(2)-调试技术 今天进入<Linux设备驱动程序(第3版)>第四章调试技术的学习. 一.内核中的调试支持 在前面已经 ...

最新文章

  1. RedHat 年度报告:只索取不贡献的开源消费“大户”不受待见
  2. 教程:14、系统性能分析
  3. 全国计算机等级二级证书foxbase,2002年4月全国计算机等级考试二级FOXBASE笔试试题...
  4. ML之Hierarchical clustering:利用层次聚类算法来把100张图片自动分成红绿蓝三种色调
  5. Excel VBA遍历文件
  6. 电脑安装python后开不了机_Python学习第145课——关于无法正常启动centOS问题的解决方案...
  7. bat脚本交互输入_windows 10 如何设定计划任务自动执行 python 脚本?
  8. java微信公众号支付开发平台_Java微信公众平台开发之公众号支付(微信内H5调起支付)...
  9. bzoj千题计划196:bzoj4826: [Hnoi2017]影魔
  10. SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面
  11. AVR单片机(ATmega128)单片机运算乘除法大约所需时间
  12. dns预获取(dns-prefetch)link rel="dns-prefetch"优化载入速度
  13. 计算机新建里没有word,为什么电脑右键新建里头没有WORD文档,如何加上
  14. php+未找到驱动程序,显示未找到驱动程序,怎么办?
  15. 如何下载Eclipse?
  16. CDA Level1知识点总结之数据分析概述与职业操守
  17. 数据分析:数据处理篇1
  18. [UER #1] DZY Loves Graph
  19. 【51单片机实例】智能小车(一)--------小车的前进、后退和停止
  20. Android获取手机的卡槽数量和sim卡数量

热门文章

  1. 刷机命令android手机刷机后,wifi无法使用的解决方法
  2. 【好书推荐】《只有偏执狂才能生存》—安迪.格鲁夫
  3. 如何快速将WPS表格或者excel数据将表格转化为json
  4. 部件MSCOMCTL.OCX或其附件之一不能正确注册:一个文件丢失或无效
  5. WHERE EXISTS
  6. 模拟量的输入和输出问题及选型
  7. 计算机软件系统的组成
  8. 为什么MySQL InnoDB 存储引擎要用B+树做索引,而不用B树?
  9. java 实现微信授权登陆
  10. 股票6题(Aced)