
dd - convert and copy a file
假设我们的系统是安装在/dev/sda磁盘上,现在我加入一个和sda一样大小的磁盘,并使用 dd 命令将sda拷过来:
dd对磁盘是极大的浪费,100G的硬盘只用1G,dd后的备份文件也是100G。所以在 dd 时可以指定 bs 和 count 。
我测试时还存在一个问题:
接下来取下sda,直接以sdb开机。和原来系统应该一模一样。
最近想在Mac上装个KaliLinux,无奈虚拟机中的Windows制作启动盘实在太慢,于是想着Mac中有没有烧录工具,百度以后发现dd命令是Mac和Linux系统的制作启动盘命令。
确保分区模式是GUID分区
以下引用百度经验:
在这里我的命令是:
将iso格式转换为dmg格式
将你的路径替换掉/dev/disk1
这一步是必须的,不然后面使用dd命令会显示资源繁忙
同理这里把你的镜像路径和磁盘路径替换掉
/dev/disk1换成/dev/rdisk1可以提高速度
烧录过程不会有任何提示信息直到烧录完成(太不人性化了!!!)
如果有窗口提示要不要推出磁盘,则使用终端来推出磁盘,然后在窗口选择ignore
首先要了解两个特殊的设备:/dev/null:回收站、无底洞
/dev/zero:产生字符
Ø 测试磁盘写能力
1
time dd if=/dev/zero of=/test.dbf bs=64k count=16k
因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。
这个很不准确的,因为命令结束的时候数据还没有真正写到磁盘上去。
1
time dd if=/dev/zero of=/test.dbf bs=64k count=16k conv=fsync
这个还算准确,数据已经写入磁盘。
1
time dd if=/dev/zero of=/test.dbf bs=64k count=4k oflag=dsync
这个可以当成是模拟数据库插入 *** 作,所以很慢。
Ø 测试磁盘读能力
1
time dd if=/dev/sdb1 of=/dev/null bs=8k
因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。
Ø 测试同时读写能力
1
time dd if=/dev/sdb1 of=/test1.dbf bs=8k
这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb1是读,对/test1.dbf是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)