出力ファイルと /dev/urandom 入力ファイル以外のオプションを指定せずに dd を実行すると、パーティション上の他のファイルが上書きされる可能性がありますか?

出力ファイルと /dev/urandom 入力ファイル以外のオプションを指定せずに dd を実行すると、パーティション上の他のファイルが上書きされる可能性がありますか?

USBマウントのハードドライブを持っています7GB以下のコマンドを使用して、疑似ランダム データで埋めようとした空き領域:

$ cd /media/username/volume_name
$ sudo dd if=/dev/urandom of=random_data_file.txt

random_data_file.txt以前は存在していませんでした。コマンドがファイルを作成し、疑似ランダムデータを書き込み、そのファイルを含むパーティションがいっぱいになったら停止することを期待していました。ファイルマネージャのステータスバーには最終的に0 bytes空き容量が表示されました。しかし、ddコマンドは停止せず、ターミナルエミュレータもファイルマネージャもドライブがいっぱいであることを通知しませんでした。 でコマンドを終了した後Ctrl+C、ターミナル出力には次のように表示されました。40GB書き込まれました。マネージャでファイルを選択すると、ステータスバーにサイズも表示されました。40GBこれは、以前の空き容量より 33 GB 多い値です。

  1. このコマンドによって、他のファイル、パーティション、または他のパーティションが上書きまたは変更された可能性はありますか? それとも、 random_data_file.txt40 GB / 7 GB = 5.7 回書き込まれ、上書きされたことを意味しますか? 後者の場合、ファイル マネージャーではサイズが 7 GB より大きいと表示されるのはなぜですか? ファイルrandom_data_file.txtマネージャーを使用して削除すると、ステータス バーには空き領域が 7 GB として表示されます。
  2. dd出力ファイルを含む何も上書きせずに(同じパーティション上の空き領域以外)、出力ファイルのパーティションがいっぱいになるまで疑似ランダム データを作成して出力ファイルに書き込むコマンドの正しい使用方法は何ですか?

答え1

ディスク ハードウェアが正常であり (偽の使用可能領域を表示する不正な SD カードではない)、ファイル システムが破損しておらず、フリーリストが破損しておらず、ブロックがまだフリーリスト内にあるファイルも破損していないと仮定すると、dd if=/dev/urandom of=random_data_file.txtディスクが破損したり、何も上書きされたりすることはありません (random_datafile.txt 以外)。

おそらく、先頭に sudo は必要なかったでしょう。dd コマンドが正しいかどうかわからない場合は、sudo として実行しないでください。

予想よりも多くのデータが書き込まれた理由として考えられるのは、ほとんどのファイルシステムが、一般ユーザーがディスクがいっぱいだと認識したときにルートが書き込みを続行できるように、少しの空き領域 (通常は 5%) を予約していることです。(繰り返しますが、sudo ではこれを実行しないでください...)

関連情報