ddコマンドの使用

dd(データセット定義)コマンドは、シンプルで便利、そして驚くほど使いやすいツールです。 このツールを使用すると、WindowsのNorton Ghostなどの商用プログラムやLinuxのCloneZillaなどの無料プログラムと同じように、ディスクやパーティションなどのデバイスでも、短いコマンドラインで同じことができます。

基本構文:

ddコマンドを使用するための最も基本的な構文は次のとおりです。

sudo dd if=origen of=destino

どこ ifは「入力ファイル=入力ファイル「つまり、コピーしたいものと の意味「出力ファイル=出力ファイル「、つまり、宛先ファイル(データがコピーされる場所)。起源と 宛先は、デバイス(CDまたはDVDリーダー、ハードディスク、フロッピーディスク、ペンドライブ、パーティションなど)、バックアップファイルまたはディスクイメージなどですが、フォルダーまたはサブフォルダーは使用できません。

このコマンドをスムーズに使用するには、Linuxでどのパーティション/ハードドライブが呼び出されるかを常に明確にする必要があります(たとえば、/ dev / sda1; / devは英語でdevice = deviceから派生します)。 ソースと宛先のディスク/パーティションを知るために、gpartedのようなグラフィカルパーティションプログラムを使用してコマンドsudo fdisk-loで簡単に見つけることができます。 ddコマンドに関するすべての情報は、コマンドmanddおよびinfoddで参照できます。

このコマンドは注意して使用する必要があります。ディスクのクローンが作成されるとすぐに消去されるため、ディスク/パーティションの順序と名前を常に確認してください。

pvコマンドでの構文:前の構文でddコマンドを使用すると、非常に予約されたコマンドであるため、情報が提供されないため、わずかな欠点があります。これは、実行されたときにターミナルプロンプトが動かないままであるため、何がわからないためです。何が起こっているのか、実行が完了するまでの残り時間です。 この小さな不便さは、コマンドpv(*)(通過するデータを測定するターミナルパイプとして機能します)をddコマンドの構文に追加することで解決できます。したがって、構文は次のようになります。

dd if=origen |pv|dd of=destino

その結果、ターミナルで一種のプログレスバー、転送されたバイト数、実行時間、転送速度に関する情報をすべてリアルタイムで取得できます。

(alf)-(〜)└──┤ddif= / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 1,630GB 0:21:30 [1,12MB / s] [

さらに、終了すると、転送速度、転送された合計バイト数、およびすべてのデータの転送にかかった合計時間の統計が表示されます。

(alf)-(〜)└──┤ddif= / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 10530816 +0レコード読み取り<=> 10530816 + 0レコード書き込み5391777792バイト(5.4 GB)コピー、3873,48 s、 1,4 MB / s 5,02GB 1:04:33 [1,33MB / s] [<=> 10530816 +0レコードの読み取り<=> 10530816 + 0レコードの書き込み5391777792バイト(5.4GB)コピー、3873,48、1,4 s、XNUMX MB / s(alf)-(〜)└──┤

(*)このXNUMX番目の構文でコマンドラインを実行する前に、システムにpvパッケージがインストールされていることを確認するか、インストールされていない場合はインストールします。両方ともSynapticを使用します。

このコマンドのいくつかの実用的な例とオプションを見てみましょう(上記のpvコマンドで説明したトリックを使用したバージョン):

A)ハードドライブとパーティションについて:

=ハードドライブのクローンを作成します。

これを使用して、hdaディスクをhdbに複製します。 (IDEディスク):

sudo dd if=/dev/hda |pv|dd of=/dev/hdb bs=1M

これを使用して、sdbにsdaディスクのクローンを作成します。 (SATAディスク):

sudo dd if=/dev/sda |pv|dd of=/dev/sdb bs=1M

オプションbs = 1Mを使用すると、読み取りと書き込みの両方が1メガバイトブロックで実行されるようになります(速度は遅くなりますが、安全性が高くなり、途中でデータが失われるリスクが高くなります)。

この方法では、ディスクは「現状のまま」、MBR、パーティションテーブル、空きスペースなどとして記録されるため、同じサイズ以上のディスクにのみ記録できることに注意してください。

=ソースディスクの最初のパーティション(hda1)のみを宛先ディスク(hdb)に書き込みます。

sudo dd if=/dev/hda1 |pv|dd of=/dev/hdb bs=1M

=ディスク全体(hda)を宛先ディスクの最初のパーティション(hdb1)に書き込みます。

sudo dd if=/dev/hda |pv|dd of=/dev/hdb1 bs=1M

= /ホームディレクトリのハードディスク(hda)からイメージを作成します(binまたはisoの場合があります)。

sudo dd if=/dev/hda |pv|dd of=/home/hda.bin

=ディスク上の情報を完全に消去します。これを行うには、ディスクにランダムな文字をXNUMX回入力します。 ディスクに情報の痕跡はありません。

for n in {1..5}; do dd if=/dev/urandom |pv|dd of=/dev/hda bs=8b conv=notrunc;

=任意のデバイスから任意のパーティションとディスク全体を消去します。

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (フルディスク消去)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (ディスクパーティションの消去)

ここで、xは消去するディスク、aは消去するパーティションです。

この操作は、パーティションを完全に消去するのに非常に便利です。さらに、消去されるデータは復元できないため、低レベルで非常に安全な消去です。たとえば、ペンドライブが親愛なるウィンドウでウイルスに感染した場合に非常に便利です。 。

B)CD / DVDの場合

= CD(またはDVD)から.isoイメージを作成/マウントする

/ホームディレクトリにCDの.isoイメージを作成するには:

sudo dd if=/dev/cdrom |pv|dd of=/home/imagendeCD.iso

CDから.isoイメージをマウントするには:

sudo mount -o loop imagedeCD.iso /mnt/home

=スクラッチされたDVDを回復します(これはDVD全体を回復するのではなく、この場合は読み取り可能なセクターのみを回復します)。 また、欠陥のあるハードドライブにも適しています。

sudo dd if=/dev/cdrom |pv|dd of=/home/dvd_recuperado.iso conv=noerror,sync

noerrorオプションは、どのような状況でも読み取りエラーを回避するために使用されます。

C)MBRおよびVBSについて:

=マスターブートレコード(MBR)のコピー/復元:

MBRをコピーするには:

sudo dd if=/dev/hda |pv|dd of=mbr count=1 bs=512

MBRを復元するには:

sudo dd if=mbr |pv|dd of=/dev/hda

= MBRとパーティションテーブルをクリーンアップします。

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=512 count=1

= MBRをクリーンアップしますが、パーティションテーブルには触れないでください(パーティション内のデータを失うことなくGRUBを消去するのに非常に便利です):

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=446 count=1

=ボリュームブートセクター(VBS)のコピー/復元:

VBSをコピーするには:

sudo dd if=/dev/hda |pv|dd of=/home/sector_arranque_hda count=1 bs=512

VBSを復元するには:

sudo dd if=/home/sector_arranque_hda |pv|dd of=/dev/hda

D)その他:

=ディスクイメージを/ホームディレクトリに書き込み、ディスクエラーをスキップします(死にかけているディスクに非常に役立ちます):

sudo dd conv=noerror if=/dev/hda |pv|dd of=~/home/imagen_disco_con_errores.iso

=空の1Mbファイルを作成します。

sudo dd if=/dev/zero |pv|dd of=archivo_nuevo_vacio bs=1024 count=1024

= 2Gbスワップファイルを作成します:

sudo dd if=/dev/zero |pv|dd of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace

=すべての文字を大文字に変換します:

sudo dd if=miarchivo |pv|dd of=miarchivo conv=ucase

グラフィカル環境プログラムでddコマンドを使用します。 Gdiskdumpは、このddコマンドのグラフィカル環境であり、次のタスクを容易にします。 パーティションまたはディスクのクローン、すばやく簡単に。 ページからダウンロードできます https://launchpad.net/gdiskdump/ ルート権限(sudo gdiskdump)を使用して開くと、クローンを作成するパーティションまたはディスク(入力形式)とその宛先(出力形式)を指定するだけでよいため、プログラムが非常に使いやすいことがわかります。

 


記事の内容は、次の原則に準拠しています。 編集倫理。 エラーを報告するには、 ここで.

43コメント、あなたのコメントを残してください

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   sieg84

    ddコマンドの糖尿病による誤用がほとんどありました。
    ちなみに、dd_rescueとの違いは何ですか?

    1.    これまで

      デフォルトでは、ddrescueは読み取りエラーで停止せず、さまざまな方法で読み取り不可能な情報を回復しようとします。

    2.    シェコ

      hahahha ddコマンドも非常にひどく使用しましたが、思ったよりはるかに強力です。

  2.   Rots87

    私は、ある時点ですべてのarchユーザーが使用したと信じているとコメントします

  3.   アルフ

    @ sieg84の違いは、ddが何らかの読み取りエラーまたはデバイスエラーで中断されたことです。この場合、破損したブロックが特定の回数読み取り、次のブロックを続行するため、これは発生しません。これには、次の利点もあります。同じ画像に対して複数回実行でき、最初から開始するのではなく、完了しようとします。

    dd_rescueを使ったことがないことは言及する価値があります。

    1.    デビアナイトのマーリン

      このコマンドを使用するKDE用のqtで作成されたGUIがある場合はどうなりますか? または私は辞任する必要がありますか?

      1.    7月

        GdiskdumpはこのコマンドのGUI以上のものであり(それに基づいています)、qtで実行したかどうかはわかりませんが(そうではないと思います)、KDEではほぼ確実に機能します。

    2.    sieg84

      明確化のために感謝します。
      私はdd_rescueを使用してISOをUSBにコピーしただけです(主にopenSUSE wikiにそれがあったためです)。
      dd_rescue tu.iso / dev / sdX
      私が好きなのは、プログレスバーが表示されることです。
      http://box.jisko.net/i/110db781.png

  4.   クレル

    アルフ:
    私は最近、この同じ投稿がHatterasブログに投稿されているのを見ました。 彼はこれをひどく受け止めていないようですが、少なくとも礼儀としてそれを参照するのは良いことだと私は知りません。 したがって、彼はWebポジショニングでも勝ちます。

    これでジレンマを作りたくはありませんが、一見すると、あなたが適応させた端末のスクリーンショットを除いて、記事は95%同一のように見えます。 彼は自分の情報源についても言及しました。

  5.   デビアナイトのマーリン

    興味深いことを認めます| pv | 彼を知りませんでした。

    Krelソースはubuntuwikiまたはarchgreetingsにあると思います。

  6.   アルフ

    @ krel、Linuxのことはこれです:

    この世界での私の旅を通して、私は物事を読んで収集しました。私は、初期の頃に最も貢献したコミュニティであるUbuntu Mexicoに400以上の投稿を入れたノートブックを持っています。残念ながら、物事を繰り返すことができます。あなたはネット上の大量の投稿をレビューします、それらはほとんど同じ順序です、事はほとんどがより短いということです。

    私はその週にさらに5つの投稿を公開できますが、他の投稿が類似または同じであることがわかります。理由は何ですか。 Ubuntuにはネット上で最も多くのフォーラム/ブログがあります。

    決してジレンマがあるとは思いませんし、管理者がそれを削除することを検討しても、気分を害したり、まったく気にしたりすることはありません。私はルールとそれに続くものを順守します。順番に)偶然を避けるために何かを追加しようとしています。

    よろしく

    1.    クレル

      インターネット上で生成されるコンテンツのせいぜい10%だけが新しいことは誰にとっても謎ではありません。 他の90は複製、更新、または救済されたコンテンツであり、これがそれほど重要でないと言っているのではなく、逆に、それは知識の普及の一形態です。

      しかし、私が立ち止まるところは別のものです。 あなたがこのタイプのブログを持っているとき、それを助け、そしておそらくそれに対する認識さえも受ける個人的な動機があります。 同時に、フリーソフトウェアに関するコンテンツを書く人のほとんどは、共有のアイデアに同意していると確信しています。 ただし、BSDのような最も高貴なライセンスでさえ認識を求めていることを忘れないでください。

      また、参照はグーグルのようないくつかの検索エンジンがウェブサイトの位置を改善する方法です。 ただ、感謝の気持ちを込めて素材を使っているので、その作品を参考にしたいと思います。

      共有するのは素晴らしいことだと思いますが、参考にすることで何が失われますか? これよりもポジショニングが良い別のブログから、desdelinuxのコンテンツが参照せずに複製された場合、最終的にはこのブログを埋めてしまうと考えてください。

      Hatterasは10日前にそれを公開しました。彼があなたのノートからそれを取り出したか、あなたがLuis Puenteでない限り、あなたが言っていることを説明することはできません。ほとんどすべてがテキストであるということです。 ありそうもないが不可能ではない。

      しかし、何も、この種のことが起こります。 そして、個人的な倫理のために、そして他の同僚と協力するために、私は彼に言及するだろうと私は知りません。 それはあなた次第です、私はハッテラスがこれを間違った方法でとるとは思いません、まったく反対です。

      1.    MSX

        それは本当です、それはこの投稿の本当のコピーです: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/

  7.   前のもの

    うーん…私はddを作成しましたif = file.iso of = / media / harddrive…誤って😛
    ハードドライブからファイルを回復する方法???

    1.    エラヴ

      Testdiskを使用できます

    2.    デビアナイトのマーリン

      友人が、おそらくテストディスクまたはデータをレスキューするための専用のライブディストリビューションを持って私に起こりました。 そのコマンドを使用するので、次回のバックアップを作成することをお勧めします。これは、新人時代には、ハードディスク全体をフォーマットして、今はうまく再起動することを望まずに微妙なことです……言うまでもなく、どちらのグラブも開始しませんでした。

  8.   ラウル

    誰かがddコマンドでコピーの進行状況を確認するために使用するコマンドを教えてもらえますか?つまり、コピーされている%の進行状況バーを表示することです。

    SLDS

    1.    7月

      友達! コマンドpvを追加します。 この同じ投稿で、彼はほとんど最初にそれを言い、それを使用する方法を説明します。 もう一度お読みください

  9.   ペドロ

    このコマンドの使用:
    dd if = / dev / sdc | bzip2> /media/Elements/iso.gz
    16GbディスクのISOイメージを作成し、400Gbディスクに保存することができました。
    しかし、そのイメージを元の16GBディスクまたは同じ容量の別のディスクに復元するコマンドが何であるかはわかりません

  10.   ルイス·ロドリゲス

    質問

    このコマンドを使用して
    {1..5}のnの場合; do dd if = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc;
    2TBディスクの場合
    それから私はそのような何かをコンソールにとどまります
    >
    別のコマンドを実行する必要がありますか、それともプロセスにどのくらい時間がかかりますか?

    ありがとう、続けて

    1.    ジャズブ

      forにタイプミスがあります…行末にありません«; {1..5}のnに対して»滞在«しました。 do dd if = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc; 完了»

  11.   ヘンリーサラザール

    とても良い記事…..それを実践するつもりです…あいさつ仲間

  12.   Marcos_tux

    とても便利で、とても助かりました

  13.   EDFR

    グッドアルフ。 情報をありがとう。

    質問。 ソースディスクの一部のみをコピーする方法はありますか? ケースは、120Gbのみが使用されている25Gbディスクがあり、40Gbディスクにコピーしたい場合、使用済みスペース(25Gb)のコピーのみに関心がある場合、このコマンドを使用する方法はありますか? ?
    事前に感謝します。

    1.    ゆきてる

      コマンドrsync-av / path / to / origin / path / to / destinyを使用して、rsyncを使用することをお勧めします。すでに、すべてのアクセス許可を対応するアクセス許可でバックアップしています。

    2.    ゆきてる

      つまり、「対応する権限を持つすべてのファイル」

  14.   フォックススパイ

    親愛なる、ddコマンドを占有するときに4.2GBにしか到達せず、ファイルが非常に大きいことを示している理由を誰かが知っていますか? これは250GBディスクのイメージであり、1TB外部ディスクに送られます。

    sudo dd if = / dev / sda | pv | dd of = / home / fox / backup.iso

    1.    誘拐犯

      fs FAT4を使用してパーティションにバックアップを作成しようとしているため、16Gbエラーが発生します。

  15.   ベルン州

    なんて良いブログでしょう。 非常に便利なエントリ。 このコマンドの使用法は他の場所ですでに見たことがありますが、何も説明されていません。 ありがとうございました。

  16.   カルロス・トーレス

    こんにちは、BIOSスタックを置き換えたためにプログラムが失われた射出成形機があります。バックアップはありませんが、別の同じ機械があります。フロッピーとシリアルポートとパラレルポートしかありません。どうすれば作成できますか。このマシンをバックアップして他のマシンにロードします。ありがとうございます。

  17.   エルネスト

    LIVECDから始めずにパーティションをコピーしたいだけです。 たとえば、/ dev / sda1、/ dev / sda5、/ dev / sda6のディスクがあり、別のディスク/ dev / sdb5から/ dev / sda1にコピーを作成したいとします。

    = / dev / sdb1 of = / dev / sda5 bs = 1M ????の場合、コマンドはddです。

  18.   ペドロロバト

    こんにちは、元気ですか。 私もグアダラハラに住んでいます。
    DDコマンドに関するあなたの記事は非常に興味深いものです。 いくつかのLinuxディストリビューション、特にArchlinuxを試したいのですが、DDコマンドを使用して、ダウンロード済みのArchilinuxISOをUSBスティックにコピーすることができませんでした。 これから始めるために私にダニを渡すことができるかどうかはわかりません。 ありがとう、ペドロロバト

  19.   ビクター

    コマンド「dd」でisoを記録すると、一部のPCでの起動にのみ機能するためですか?
    Exp。 私は2つのラップトップを持っていますが、どれもlinuxディストリビューションのisoを起動しません。 それどころか、アイドルディスクのある古いデスクトップPCで起動します

    1.    SEB

      最良の方法は、unetbootinを使用して安全にプレイすることです。ddを使用すると、なぜ時々機能しないのかという疑問も残ります。

      1.    エラヴ

        DDではなくISOに依存していると思います。 Unetbootinでも同じですが、すべてのディストリビューションでうまく機能するとは限りません。

  20.   ビクター

    すべてのPCで機能する場合もありますが、プロセスのusbにmbrとsyslinuxを追加する必要があります。 しかし、これは長くて退屈です。
    unetbootingについての簡単な部分

    注意してください:それは私にとってisoやddではなく、あなたがそれを記録する方法です。

  21.   ダニー

    このコマンドを使用するかどうか疑問があります。
    sudo dd if = / dev / zero of = / dev / diskdrive
    これの代わりに、低レベルのフォーマットは同じであるか、これよりも時間がかかります。
    sudo dd if = / dev / zero of = / dev / diskdrive bs = 1M。。

  22.   Arg0s

    ddコマンドを使用して特定のファイルを削除できますか?

    例えば

    dd if = / dev / urandom of = / home / myfile delete

  23.   Arg0s

    bs = 1Mの場合、高速になります

  24.   アレックス

    そして、すべてのパーティション(swap、sda ...)と両方のディスクを同じにして、あるディスクから別のディスクに正確なコピーを作成する場合、一方はPCにあり、もう一方はネットワーク上のNASにありますか????
    感謝

  25.   ヘラルド

    コメント、私は最後にstatus = progressで使用し、pvは必要ないので、debianは進行状況を確認するのに非常にうまく機能します。
    2つ目は、ユニット全体ではなくデータのみを取得する方法です。これは、100TBのディスクで100 GBしか使用しない場合、そのすべてのスペースが必要になるためです。 その500GBをバックアップする方法はありますか? そして、それを別のメディアに渡すと、XNUMXの小さなディスクになる可能性がありますか?

  26.   アレクサンダー

    助けて!
    コマンドを実行します
    dd if = cbpp-9.0-amd64-20170621.iso of = / dev / sdb

    すべて良いです...しかし今、私はストレージユニットとしてusbを使用したいと思います...

    USBはマウントされておらず、GPartedにも表示されません。

    誰かが私に何ができるか知っていますか。

    PS:ディスクやCDDVDから情報を回復するのに最適なプログラムです…。

    1.    匿名の

      fdiskでテストを再パーティション化する必要があります