Mac OS XとLinuxのddの違い

Mac OS XとLinuxのddの違い

Linux(Debian)を使用するときは、ddを使用してディスクイメージをSDカードにコピーします。 "of"オプションで指定されたデバイスファイルが大きすぎるとエラーが発生するスクリプトを作成しました。これにより、ハードドライブの1つが誤って爆発するのを防ぎます。

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に多少の違いがありますか? OS X(10.9)インストールにドライブを追加しようとすると、次のエラーが発生します。

dd: /dev/diskN: リソースが使用中です。ディスクが使用中でないことを確認してください。

cp を使用してディスクに書き込むことができるため、dd によるシステムコールは OPEN 以降の WRITE ほど単純ではないかもしれません。

答え1

コピーが成功する場合もあり、失敗する場合もあります。

同時に、一部のプロセスがマウントされたファイルシステムに書き込まれるため、失敗する可能性があります。これがumount以前に良い習慣だった理由のようです:-)

dd本当に公平でなければなりませんopenwriteMacOSX版には制御機能が追加されているようで、Linuxと比較してデバイス名を使用する理由を簡単に知ることができると思います。dd使用前に3回確認しました。

関連情報