• ベストアンサー

ddコマンド

sudo dd if=/dev/zero of=/home/pi/test bs=8k count=50k conv=fsync; sudo rm -f /home/pi/test を実行しようとしたところ、 sudo dd if=/dev/zero of=/home/pi/test bs=8k count=50k で実行してしまいました。 何をしてしまったでしょう?? 消そうと思っても、どこにコピーされたか、わかりません。

  • ferra
  • お礼率70% (627/886)

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

>何をしてしまったでしょう?? sudo ddはroot権限でファイルのコピーを実行するものです。 if=でコピー元のファイルを、of=でコピー先のファイルを指定します。 bs=はバイト数を、count=はブロック数(bs=で指定したバイト数を何個コピーするかを指定する) しかし、if=/dev/zeroは0バイトのファイルなので結果として0バイトのtestと言うファイルが/home/piに作成されるはずです。 >実は >sudo dd if=/dev/zero bs=8k count=50k of=の指定が無いのでコンソールへ出力されていると思います。 従って、モニター(端末画面)に表示されるだけだったのでしょう。 >消そうと思っても、どこにコピーされたか、わかりません。 前述のようにof=でコピー先を指定していないのでddコマンドは標準出力のコンソール(モニター)へ出力している筈です。(モニターへはファイルを作成できませんので実行結果が表示されたのでは?) 端末でコマンドを使うときはヘルプで動作を確認してから実行すべきでしょう。 特にsudo(root権限)で実行するのは大変危険です。

ferra
質問者

お礼

なんとなく分かりました。噛み砕いた説明、ありがとうございました!他の方もありがとうございました!

その他の回答 (4)

  • kteds
  • ベストアンサー率42% (1875/4423)
回答No.4

No.2です。 >・・・消えたのでしょうか? of= を省略するとモニターに表示されます。 今回は/dev/zero(つまり何もないデータ)を出力していますので、モニターに出力されているのですが、何も無いので何も見えません。 --- 確認のためには、例えば、/home/pi/kakunin.txtファイルとして確認のためのテキストデータを作成しておいて下記のように of= を指定しなければ sudo dd if=/home/pi/kakunin.txt bs=8k count=50k kakunin.txtの内容がモニターに表示されます。

回答No.3

>sudo dd if=/dev/zero bs=8k count=50k of=を省略した場合、標準出力へ出力され、ファイルは作成されません。 >またdev/zeroとは何のことでしょうか?す、すみません。。 https://ja.wikipedia.org/wiki//dev/zero

  • kteds
  • ベストアンサー率42% (1875/4423)
回答No.2

>何をしてしまったでしょう? /home/pi フォルダに、中身が何もない(NULLデータ)testという名前のファイルを作成して、続けてtestファイルを削除しています。 したがって、testファイルはすでに消えています。 --- /dev/zero とはNULLデータという意味です。 --- 一般論ですが、どんな結果になるのか、自分でもわからないコマンドを実行するのは、やめたほうがいいですよ。 たとえば /dev/zero の意味もわからないで重要なファイルに出力すると、ファイル内容はすべて消えてしまいます。

ferra
質問者

補足

ありがとうございます。以後気を付けます; sudo dd if=/dev/zero bs=8k count=50k この場合は、データを作成しているのが判ったのですが、 testという名前も付いていません。500MB位が作られた気がするのですが、 /home/pi/以下には入っておらず、デフォルト?の場所かもしれないと思い、どこに作られたか知りたかったのですが、消えたのでしょうか??

  • ballville
  • ベストアンサー率47% (233/487)
回答No.1

もう一回やって大丈夫です。 元の、 sudo dd if=/dev/zero of=/home/pi/test bs=8k count=50k conv=fsync; sudo rm -f /home/pi/test はpiユーザのホームフォルダにゼロ埋めしたtestという名前のファイルを生成し、そのあとで消すコマンドラインです。 sudo rm -f /home/pi/test の部分をあとから打ち込めばゴミファイルは消えます。

ferra
質問者

補足

本当にそそっかしくですみません! 実は sudo dd if=/dev/zero bs=8k count=50k このように打ってしまい、home/pi以下に無くて混乱しました。 どこを消せばよいのでしょうか? またdev/zeroとは何のことでしょうか?す、すみません。。

関連するQ&A

  • ddコマンドについて

    % dd if=/dev/zero of=zero.dat count=1000 ⇒ 512*1000 バイトの zero.dat が生成される % dd if=/dev/zero of=zero.dat count=2048 bs=1 ⇒ ブロックサイズを 1 に指定。2048 バイトの zero.dat が生成される http://x68000.q-e-d.net/~68user/unix/pickup?dd とのことですが、では/dev/zeroが50バイトだった場合ファイルサイズはどのようになり、もし増えた分はなにが中に入っているのでしょうか。 ご存知の方、アドバイスをお願いします。

  • ddの前後にマウント、アマウント

    for i in 1 2 3 4 5 6 7 do umount /fome tunefs -a $i /home mount /home dd if=/dev/zero of=/home/EMPTY bs=8k count=1000 umount /home; mount /home time dd of=/dev/null if=/home/EMPTY bs=8k done これはトラックバッファを活かすために連続的に割り当てるブロックの数を1から7まで変えて読み書きの速度を調べるshスクリプトなんですが、ddの前後でマウント、アマウントするのは、dd実行中にifの内容が変化すると一貫性がとれなくなるからだと思うんですが、timeの直前でアマウントしてまたすぐにマウントして元に戻しているのは、どういう意図なんでしょうか。

  • ddについて教えてください

    RedHatLinux7.3を使っている者ですが、コマンド dd if=/dev/zero of=vm1.image bs=1 count=1 seek=1G とはどういう意味ですか?

  • Ubuntu9.04でのddコマンド使用について

    Ubuntu9.04を使用しています。 そこにUserModeLinux起動させようと考えています。 そこで、空のファイルを作ろうと、 ~$ dd if=/dev/zero of=uml-root-hardy bs=4096 seek=1M count=1 とコマンド入力しました。 その後しばらく放っておいても反応がありません。 ddコマンドを使用するには、何か事前操作などが必要なのでしょうか。 お返事お願いします。

  • Linuxコマンド

    Linuxコマンドのついて質問です。 Knoppixを使って >su - >umount /dev/hda >dd if=/dev/zero of=/dev/hda bs=512 count=1 と実行しようとしたのですが、/dev/hdaが読み込み専用モードとなっているためうまくいきません。書き込みも可能にするにはどのようなコマンドがあるのでしょうか? ちなみにKnoppixを起動すると途中でモニタ出力されなくなるのでコンソールで作業しています。よってGUIは使えません。 よろしくお願いいたします。

  • ddコマンドでイメージをコピーしているのですが、めちゃめちゃ遅いです。

    dd if=/dev/sdd of=/test としているのですが、めちゃめちゃ遅いです。 何かパラメータをつけて早くなる方法はあるのでしょうか?

  • DDコマンド

    FreeBSDでDDコマンドがあまりうまくいかなかったのでturbo linux 10(評価版) を別のパーテションにインストールしてDDコマンドを試しました。 4Gのturbo linuxでDDコマンドを使おうとすると領域が足りず圧縮するのが面倒そうだったので 40Gー(windows 10G(hda1) + FreeBSD 4G(hda2))=26G をturbo linuxにあててDDコマンドで d if=/dev/hda2 of=hda2 を実行すると4Gのファイルができました。 これをISOイメージにしてバックアップCDをつくりバックアップCDをつくりたいのですがどうすればいいでしょうか?#dd if=/dev/cdrom of=cdrom.isoというコマンドを おしえていただいたのですがどうやってつかえばいいか わかりません。よろしくおねがいします。

  • ddコマンドの使い方

    こんにちは、 テスト環境のフルバックアップに挑戦しており /dev/hda(テスト環境os)150G(使用10Gほど) /dev/sda(コピ先)80G と、容量の異なるふたつのハードディスクがあり /dev/hdaのテスト環境osを /dev/sdaにコピーしたいと考えています。 シングルユーザーモードで、 dd if=/dev/hda of=/dev/sda で試して見たのですが、一時間しても終わらなかったので 強制終了して/dev/sdaの中身を見てみたら いろいろとファイルが 出来上がってはいたのですが、ファイルサイズは小さすぎる気がしました。 コマンドはこれで正しいのでしょうか?

  • 1Gのddがなぜ一瞬で終わる?

    どこかに書いていたことですが、 $ time dd if=/dev/zero of=1G.img seek=1G bs=1 count=1 とやるとコマンド実行は一瞬で終わって 1G のイメージファイルが生成されるのですが、 なぜ一瞬で終わるのかよく理解できません。 まず、bs*count がコピーされるデータ量なので そもそも生成されるイメージファイルは1バイトになりそうな気がしまして、 なぜ1G になるのか分かりません。 それに、seek は出力の開始位置をずらすだけなので、 このコマンド実行が一瞬で終わるなら 最後の1バイト以外は 元々そこのメモリ領域にあったデータがそのまま残っているならわかるのですが、 $ hexdump -n 1073741825 1G.img 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 40000001 ちゃんと全領域にゼロが書き込まれているようで、不思議です。 どういうことなのか、どなたか教えて下さい。 よろしくお願いします。

  • ddコマンドを使ったバックアップについて教えてください。

    ランレベル5でddコマンドでdd if=/dev/hda1 of=/dev/hdb1と したところ再起動するとhdaでランレベル5で起動できなくなりました。 hdbのディスクを取り外したところ、ランレベル5で起動できるようになりました。どこがまずかったのかとどう行えばよいか教えていただけないでしょうか?