Mac OS X和Linux中dd之间的区别

斯蒂芬诺

使用Linux(Debian)时,我经常使用dd将磁盘映像复制到SD卡。我编写了一个脚本,如果在“ of”选项中指定的设备文件太大,则会引发错误。这样可以防止我意外地吹走其中一个硬盘。

SD_SIZE=$(sudo sfdisk -s ${SD_DEV}) 
if [ $SD_SIZE -gt 33554432 ]; then
  echo "might not be and SD card, exiting"
  exit 1
fi

但是,如果我插入SD卡而忘记卸下它,结果将是粗略的。有时复制成功,有时则失败。

我可以在此处用答案修改脚本:如何检查文件系统是否已通过脚本安装

但是,dd中是否有此功能的选项?(在OS X dd上,默认情况下不会写入已安装的磁盘)

同样有意思的是,为什么在尝试复制到已安装的磁盘时dd(在OS X上)会出错?内核或dd可能存在一些差异?如果尝试dd到OS X(10.9)中安装的驱动器,则会出现以下错误:

dd:/ dev / diskN:资源繁忙,请确保磁盘未在使用中

我可以使用cp写入磁盘,因此dd进行的系统调用可能不像OPEN然后WRITE那样简单。

亚历克斯

有时复制成功,有时则失败。

可能是由于一会儿某个过程将某些过程写入了挂载的文件系统而导致失败,所以猜测这是为什么umount以前是一个好习惯的原因:-)

dd确实应该只是openwrite我猜Mac OS X版本添加一些控制,我认为是很容易理解为什么他们的设备名,相比之前的Linux我三检查dd“荷兰国际集团。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章