ddがbs = 1Gで34MBファイルを生成するのはなぜですか? [コピー]

ddがbs = 1Gで34MBファイルを生成するのはなぜですか? [コピー]

コマンドを入力するとき:

dd if=/dev/urandom of=outputfile bs=1G count=1

私が理解したことが正しい場合は、1 GBのファイルを受け取る必要があります。

ただし、次の値を含むファイルを受け取りました。

33554431 bytes (34 MB, 32 MiB) copied, 0.27126 s, 124 MB/s

なぜそんなことですか?

稼働しているシステムでは、以下を受け取ります。

1+0 Records in
1+0 Records out

ファイルサイズは34MBになり、以下を受け取りました。

0+1 Records in
0+1 Records out

ベストアンサー1

デバイスは/dev/urandom一時的にゼロバイト(データなし)を返します。ユーティリティddはそれをEOFとして処理して停止します。これにより、より多くのランダムなデータが生成されることがわかっているため、入力の読み取りを再試行するように指示する必要があり/dev/urandomます。dd

dd if=/dev/urandom iflag=fullblock bs=1G count=1

このフラグは、ツールからデータを読み取るときにもiflag=fullblock必要です(ブロックサイズではなく単位でデータを書き込むなど)。zcat

おすすめ記事