用dd备份Linux系统

用dd备份Linux系统,第1张

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是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6152164.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-16
下一篇2023-03-16

发表评论

登录后才能评论

评论列表(0条)

    保存