タグ付けされた質問 「dd」

ddはバイナリデータコピーの従来のユーティリティです

13
ddがまだ機能しているかどうかを確認するにはどうすればよいですか?
私はddそれほど多く使用していませんが、これまでのところ、私はまだ失敗していません。今、私はdd12時間以上行ってきました-私は元のディスクに画像を書き戻しています-そして、私はddディスクから画像に約できたので、少し心配しています7時間。 OSX 10.6.6を、Core 2 Duoを搭載したMacBookで、4 GB RAMを搭載した2.1 GHz /コアで実行しています。7200rpmのハードドライブ(ブートドライブ)の.dmgから読み取り、SATA-to-USBコネクタで接続された7200rpmのドライブに書き込みます。デフォルトではブロックサイズのままにしており、画像は約160GBです。 編集:そして、14時間の純粋なストレスのdd後、結局完璧に働きました。ただし、次回は、実行してpv、で追跡しstraceます。皆様のご協力に感謝します。

8
dd vs cat — ddは今でも関連性がありますか?
私は最近、私たちが使用することができます実現cat限りdd、それはだ、実際よりも速くdd これは、ddパフォーマンスだけでなく、ブロックサイズが正確に重要であるテープを扱うのに役立つことを知っています。しかし、最近では、ddできないことcatができる状況はありますか?(ここでは、パフォーマンスの差は20%未満であると見なします。) 具体的な例がいいでしょう!
122 dd  cloning  cat 

20
2台のコンピューター間で大量のデータを送信する最速の方法は何ですか?[閉まっている]
これは私が頻繁にいる状況です: 内部に320GBのハードドライブと16GBのRAMを備えたソースサーバーがあります(正確な仕様はここで入手できますが、これは他のマシンでも頻繁に遭遇する問題であるため、 「合理的な」Linuxマシン) 数テラバイトのハードドライブ領域を備えたバックアップサーバーがあります(正確な仕様はこちら、上記の免責事項を参照) ソースサーバーからターゲットサーバーに320 GBのデータ(具体的にはからのデータ/dev/sda)を転送したい。 2台のコンピューターは物理的に隣り合っているので、ケーブルを接続できます。 私はLAN上にいて、新しいルーターを使用しています。これは、ネットワーク速度が「理想的には」1000Mビットであるべきだということです。 セキュリティは問題ではありません。私はローカルネットワーク上にあり、ルーターを含むネットワーク上のすべてのマシンを信頼しています。 (オプション)データの署名付きチェックサムは必ずしも必要ではありませんが、基本的なエラーチェック(ドロップされたパケットやドライブが読み取れなくなるなど)は、出力に消えるのではなく、検出する必要があります。 この質問をオンラインで検索し、いくつかのコマンドをテストしました。最も頻繁に表示されるのはこれです: ssh user@192.168.1.100 'dd bs=16M if=/dev/sda | gzip' > backup_sda.gz このコマンドは遅すぎることが判明しました(1時間実行し、データで約80GBしか得られませんでした)。1GBのテストパケットには約1分22秒かかり、圧縮されていない場合は2倍の速度になりました。また、転送されたファイルがソースシステムのRAM容量よりも少ないという事実によって、結果が歪められた可能性があります。 さらに(これは1GBのテストピースでテストされました)、gzipコマンドとdd; を使用すると問題が発生します。結果ファイルは、直接パイプされた場合とは異なり、ターゲットで抽出されたときとは異なるチェックサムを持ちます。私はまだこれが起こっている理由を解明しようとしています。

3
ローカルマシンでSSHを使用してリモートディスクをddし、ローカルディスクに保存する方法
ローカルマシンでSSHを使用してリモートディスクのバックアップを作成し、ローカルディスクに保存するにはどうすればよいですか? 私は次を試しました: ssh hostname@my.ip.address "sudo dd if=/dev/sdX " | \ dd of=/home/username/Documents/filename.image` ただし、次のエラーが表示されます。 ttyが存在せず、askpassプログラムが指定されていません
85 ssh  hard-disk  remote  dd 

5
ddへのbsパラメータの最適値を決定する方法はありますか?
「デフォルト値には時間がかかりすぎるため、必ず「bs =」を設定してください」という行に沿ってオンラインでコメントを見たことがあります。先週の時間」はそれを支持するようです。そのため、「dd」を使用する場合(通常は1〜2 GBの範囲)、必ずbytesパラメーターを指定してください。約半分の時間で、コピー元のオンラインガイドで指定されている値を使用しています。残りの時間は、「fdisk -l」のリストから意味のある数字を選択します。これは、遅いメディア(たとえば、書き込み先のSDカード)であると推測されるものです。 特定の状況(メディアの種類、バスのサイズなど)について、「最適な」値を決定する方法はありますか?判断するのは簡単ですか?そうでない場合、そこにある方法の90〜95%を取得する簡単な方法はありますか。または、「512より大きいものを選ぶだけ」でさえ正しい答えですか? 私は実験を自分で試すことを考えましたが、(多くの作業に加えて)どの要因が答えに影響するかわからないので、良い実験を設計する方法がわかりません。

6
その場でgzip圧縮されたddイメージをマウントすることは可能ですか?
システムを初めてバックアップするときに、イメージバックアップを作成するのが好きです。この最初の時間の後、rsyncを使用して増分バックアップを行います。 私の通常のイメージバックアップは次のとおりです。 空のスペースをマウントしてゼロにします。 dd if=/dev/zero of=temp.dd bs=1M rm temp.dd 圧縮しながらドライブをアンマウントしてdd dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c > /mnt/sda1/hda.ddimg.gz システムを通常に戻すには、通常、 gunzip -c /mnt/sda1/hda.img.gz | dd of=/dev/hda conv=sync,noerror bs=64K これは本当に簡単で、「ドライブ全体」を保存できますが、実際には使用済みの領域を保存するだけです。 ここに問題があります。上記を実行しますが、クリーンなシステムでは実行せず、rsyncバックアップをすぐに実行せず、アクセスしたいファイルがイメージ上にあるとしましょう。実際にイメージをドライブに解凍してddするためのストレージスペースがないが、イメージをマウントして個々のファイルを取得したいとします。...これは可能ですか? 通常、ddイメージは圧縮され-o loopないため、... を使用してイメージをマウントするだけで済みますが、これは私の場合ではありません... 圧縮されたimgをその場でマウントするための提案はありますか? AVFSを使用してgzファイルを「マウント」してから、内部dd.imgをマウントすることはできますか(そうは思いませんが...検証が必要です)。

7
ファイルの先頭からバイトを削除する最良の方法は?
今日、私は800MBの混合テキスト/バイナリファイルから最初の1131バイトを削除する必要がありました。これは、新しいリポジトリ用にハッキングしているフィルター処理されたSubversionダンプです。これを行う最良の方法は何ですか? 始めに私が試した dd bs=1 skip=1131 if=filtered.dump of=trimmed.dump しかし、スキップの後、これはファイルの残りを一度に1バイトずつコピーします。つまり、非常に遅いです。最終的には、これをスキップして512の3ブロックに丸めるために405バイトが必要でした dd if=/dev/zero of=405zeros bs=1 count=405 cat 405zeros filtered.dump | dd bs=512 skip=3 of=trimmed.dump どれがかなり早く完了しましたが、もっと簡単/より良い方法があったに違いありませんか?私が忘れていた別のツールはありますか?ありがとう!
61 dd 

2
ddはデータのコピーに適していますか?(または、read()およびwrite()が部分的である場合)
短いバージョン:どのような状況でddデータのコピーに使用しても安全なのは、部分的な読み取りまたは書き込みによる破損のリスクがないことを意味しますか? ロングバージョン—プリアンブル: dd多くの場合、特にデバイスとの間でデータをコピーするために使用されます(例)。これは、(実際にはマジックをやっているデバイスファイルの場合)、時には他のツールよりも低いレベルでのデバイスにアクセスすることができるという神秘的な性質を起因だ-まだdd if=/dev/sda同じものですcat /dev/sda。ddより速いと考えられることもありますがcat、実際にはそれを打ち負かすことができます。それにもかかわらず、dd時にはそれを本当に便利にするユニークな特性があります。 問題: dd if=foo of=bar実際には、と同じではありませんcat <foo >bar。ほとんどのuni¹¹で、ddを1回呼び出しますread()。(。の「入力ブロックの読み取り」を構成するものでPOSIXがあいまいであることがわかりますdd。)read()部分的な結果を返す場合(POSIXおよび他の参照文書によると、実装ドキュメントに特に記載がない限り許可されます)、部分的なブロックがコピーされます。まったく同じ問題が存在しwrite()ます。 観察:実際には、ddブロックデバイスと通常のファイルに対処できることがわかりましたが、それはあまり練習していない可能性があります。パイプのことになると、過ちを犯すことは難しくありませんdd。たとえば、次のコードを試してください: yes | dd of=out bs=1024k count=10 outファイルのサイズを確認します(10MBを大きく下回る可能性があります)。 質問:どのような状況でddデータのコピーに使用しても安全ですか?言い換えると、ブロックサイズ、実装、ファイルタイプなどのどの条件が、ddすべてのデータをコピーすることを保証できますか? (GNU ddには、ブロック全体を転送するためfullblockに呼び出しread()またはwrite()ループするように指示するフラグdd iflag=fullblockがあります。常に安全です。私のフラグは、これらのフラグ(他の実装には存在しない)が使用されない場合に関するものです) ¹ 私は、OpenBSD、GNUのcoreutilsのとBusyBoxの上でチェックしました。
60 io  dd 

4
ddは何の略ですか?
私はコマンドが何をするのかをよく知っていますが、GNU Coreutilsと同様に、「ファイルを変換してコピーする」man ddとinfo dd教えてください。 グーグルは、医学と悪いウェブチャットの俗語の間のすべての略語だと言います。それはデータ駆逐艦'、PCフォレンジックに使用されるものを意味言って誰かを除いて-私のddは破壊された場合、私はぞっとするだろう、私のデータを! 洞察はありますか?:-) 更新:もちろん、専門用語ファイルを確認する必要がありました: Unix dd(1)は、IBM System / 360 JCL(I / Oデバイス用の精巧なDD 'Dataset Definition'仕様があった)を連想させる、奇妙ではっきりと非Unixのキーワードオプション構文で設計されました。 まだかなり曖昧に聞こえますが、それから言う: コマンドはニーズを満たしましたが、インターフェイスの設計は明らかにいたずらでした。 へー:-)
42 dd  command-names 

8
パーティション全体またはハードドライブをスパースファイルに複製する
パーティション全体またはハードドライブ全体をより大きな外部ディスクに複製したいのですが、スパースファイルを作成したいです。ddクローン作成によく使用しますが、スパースファイルはサポートしていません。回避策として、次のようなものを使用しました。 cp --sparse=always <(dd if=/dev/sda1 bs=8M) /mount/external/backup/sda1.raw しかし、これは私の趣味にはややトリッキーすぎて、中止された場合にプロセスを再開することはできません。このためのNTFSツールがあることは面白いですが(ntfsclone)、Linuxのネイティブファイルシステム(EXT2-4)にはそのようなツールは存在しません。 ddスパースをサポートするバリアントなど、これに適したツールはありますか?ディスクバックアップ用の独自のソフトウェアは探していませんが、必要に応じてループデバイスとしてマウントできるスパースクローンコピーを作成したいだけです。

7
dd出力を抑制するにはどうすればよいですか?
を使用してファイルを作成するbashスクリプトがありますdd。問題は、ddが大量の出力をスローして、スクリプトの出力を台無しにすることです。周りを検索して解決策を見つけました: dd if=boot1h of="/dev/r$temp1" >& /dev/null 代替手段はあり/dev/nullますか、それとも唯一の方法にリダイレクトしていますか?
35 bash  sudo  su  dd 

5
hddからhddへのフルDDコピー
元の質問: 次の特性を持つ2つの同一のハードドライブがある場合: SATA 6.0 Gb / s 5400 rpm 3TB 完全なddコピーが完了するまでどのくらいかかりますか? これまでのところ、5時間稼働し続けています... Linux Ubuntu 12.04 64ビットを使用していますが、使用しているコマンドは次のとおりです。 dd if=/dev/sdb of=/dev/sdc 更新:1 進捗を確認できるようになり、コピー430GBで6時間以上かかりました。HDDは3TBです... これを行うより速い方法はありませんか? 更新:2 これは以前よりもはるかに優れているようです(提案についてはGroxxdaに感謝します)。 sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K ETAは3TBで約9時間ですが、6時間後に430GBに達する前なので、前のコマンドを使用すると約36時間かかっていたと思います。
34 hard-disk  dd  cloning 

2
ddを使用したバイナリのパッチ
私はこの引用を(以下)数回読んでいますが、最近ここにありますが、コンパイラだけでなくあらゆるものddにパッチを適用する方法に絶えず困惑しています: 私が30年前に学校で使用したUnixシステムは、RAMとディスク容量が非常に限られていた。特に、/usr/tmpファイルシステムは非常に小さいため、誰かが大きなプログラムをコンパイルしようとすると問題が発生しました。もちろん、学生はとにかく「大規模なプログラム」を書くことになっていない。大規模なプログラムは通常、「どこか」からコピーされたソースコードでした。私たちの多くは、コピー/usr/bin/ccし/home/<myname>/ccて、使用dd、使用するバイナリパッチを適用する/tmp代わりにする/usr/tmp大きかったです。もちろん、これは問題を悪化させただけです。これらのコピーが占めるディスクスペースは当時重要でしたが、現在は/tmp定期的にいっぱいになり、他のユーザーがファイルを編集することさえできなくなりました。何が起こったのかを見つけた後、システム管理者はchmod go-r /bin/* /usr/bin/* 問題を「修正」し、Cコンパイラのすべてのコピーを削除しました。 (エンファシス鉱山) ddマン・ページには、パッチを適用し、このとにかくを行うために再目的とすることができないと思うについては何も言いません。 バイナリには本当にパッチを適用できddますか?これに歴史的な意義はありますか?
32 dd  history  patch 

2
ddを実行しています。リソースがビジーなのはなぜですか?
microSDカードをフォーマットしましたが、ddコマンドを実行したいと思います。残念ながら、ddコマンドは失敗します: $ sudo dd bs=1m if=2016-02-26-raspbian-jessie-lite.img of=/dev/rdisk2 dd: /dev/rdisk2: Resource busy $ インターネット上の誰もが、最初にディスクをアンマウントする必要があると言っています。確かに、それをして先に進むことができます。しかし、OS Xでデバイスをビジーにしている理由を正確に知りたいのですが。これを診断するにはどうすればよいですか? これまで私は試しました: 開いているファイルのリスト: $ lsof /dev/disk2 $ lsof /dev/disk2s1 $ また: $ lsof /Volumes/UNTITLED $ ファイルで作業しているユーザーのリスト: $ fuser -u /dev/disk2 /dev/disk2: $ fuser -u /dev/disk2s1 /dev/disk2s1: $ また: $ fuser -u /Volumes/UNTITLED $ システムメッセージを確認します。 $ sudo dmesg …
32 osx  dd  sd-card  resources 

4
Linuxのベンチマークssd:crystaldiskmarkがWindowsで行うのと同じことを測定する方法
ssd(おそらく暗号化されたファイルシステムで)のベンチマークを行い、それをWindowsのcrystaldiskmarkによって行われたベンチマークと比較したいと思います。 それでは、どのようにしてcrystaldiskmarkとほぼ同じことを測定できますか? 最初の行(Seq)については、次のようなことができると思います LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc sudo su -c "echo 3 > /proc/sys/vm/drop_caches" LC_ALL=C dd if=tempfile of=/dev/null bs=1M count=1024 しかし、ddパラメーターについてはわかりません。 ランダムな512KB、4KB、4KB(Queue Depth = 32)の読み取り/書き込み速度テストでは、Linuxで測定値を再現する方法がわかりませんか?どうすればこれを行うことができますか? 読書速度をテストsudo hdparm -Tt /dev/sdaするためには、たとえばencfs台紙のようなベンチマークをしたいので、私には意味がないように思えます。 編集 @アルコ、@ iain おそらく、この質問の動機について何かを書く必要があります。私のssdのベンチマークを行い、いくつかの暗号化ソリューションを比較しようとしています。しかし、それは別の質問です(私のシステムでさまざまな暗号化ソリューションをベンチマークする最良の方法)。ssdとベンチマークについてWebでネットサーフィンしている間、ユーザーがCrystelDiskMarkの結果をフォーラムに投稿するのをよく見ました。したがって、これが質問の唯一の動機です。Linuxでも同じことをしたいだけです。私の特定のベンチマークについては、他の質問をご覧ください。

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