ddコマンドは正確には何をしますか?


8

数日前、私は明示的にそうするように設計されたサードパーティプログラムの助けなしにUSBにISOイメージを書き込むことはそれほど難しいことではないことを知って嬉しく思いました。しかし、これを容易にするコマンド(またはプログラム)-dd-は私を困惑させます。

ウィキペディアによると、生データをコピーして変換するように設計されていますが、正直なところ、この定義は非常に曖昧で曖昧です。あるデータを別のデータに変換できることを理解していますが、指定された出力ファイルが小さすぎて指定された入力ファイルに変換できない場合はどうなりますか?

dd if=giant_file of=tiny_file

また、イメージファイルを使用して起動可能なUSBを作成すると、USBはisofsのファイルシステムタイプを取得しますが、アーカイブまたは実行可能ファイルをドライブに書き込むと、通常のファイルシステムタイプが保持されます。

ddコマンドが実際に何をするのか、またはそれが下位レベルでどのように機能するのかを明確にしていただければ幸いです。ありがとう!

回答:


8

ddconv引数で指定されたオプションの変換を使用して、ソースから宛先へバイト単位のコピーを行います。それによって指定されるように読み取りと書き込み実行*bs*flagによって定義される範囲で、オプションcountskipおよびseekオプション。

指定された出力ファイルが小さすぎて指定された入力ファイルに変換できない場合はどうなりますか?

ofが小さすぎて格納できない場合はif、データが収まるように切り捨てられます。ofが通常のファイルの場合は上書きされることに注意してください。


1
ofファイルでなくても上書きされます-これは、(誤って?)パーティション/ドライブを破壊する非常に良い方法です!そのため、ドライブ/パーティションの場合は、宛先を2重に、場合によっては3重にチェックして、正しいものであることを確認することが非常に重要です。
ボブ

1
技術的には、書き込みそれを上書きするのではなく、オブジェクト。
Ignacio Vazquez-Abrams

答えてくれてありがとう。引数を何も含めないdd if=executable of=archive.tarが、両方が同じサイズであると仮定して、のようなことをした場合 アーカイブは完全に実行可能ファイルに変換されますか?
ICoffeeConsumer

1
一度executablearchive.tar512バイトからバイト単位のコピーを行います。バイナリをアーカイブに変換しません。
Ignacio Vazquez-Abrams

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.