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

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

4
dd:複数の入力ファイル
2つのファイルからチャンクを連結する必要があります。 ファイル全体を連結する必要がある場合は、単に行うことができます cat file1 file2 > output ただし、最初のファイルから最初の1 MBをスキップする必要があり、2番目のファイルからは10 MBしか必要ありません。の仕事のように聞こえddます。 dd if=file1 bs=1M count=99 skip=1 of=temp1 dd if=file2 bs=1M count=10 of=temp2 cat temp1 temp2 > final_output ワンステップでこれを行う可能性はありますか?つまり、中間結果を保存する必要はありませんか?で複数の入力ファイルを使用できますddか?
13 files  dd  cat  data 

5
現在動作中のドライブのドライブイメージを撮っても安全ですか?
ハードディスクをバックアップする必要があります。使用ddして、外部hddにイメージを配置します。 ddhdd自体にあるOSを使用してこれを実行できますか、またはLiveCDなどの別のデバイスから起動する必要がありますか? 一般に、デバイスがマウントされて動作している場合、デバイスの画像を撮影することは安全ですか? デバイスがマウントされているが、dd実行中に他のI / O操作がないと確信している場合はどうなりますか? これはrsync、バックアップ、特に増分バックアップに使用するのに最適なツールであると確信しています。 しかしdd、他のストレージデバイスもバックアップしたいので、パーティション分割されていないスペースに保存されているデータもコピーするので、に興味があります。たとえば、私の電子書籍リーダーは、パーティション化されていないスペースを使用して、uboot、カーネル、その他のデータを保存します。
12 backup  dd  disk-image 

3
故障したドライブからデータを保存する
外付けの3½ "HDDは故障の危険にさらされているようです。アイドル時にカチカチという音がします。 私は交換用ドライブを購入しましたが、疑わしいドライブのデータを可能な限り節約できる最良の方法でデータを取得するための最適な戦略を知りたいと思います。 他のディレクトリよりも重要なディレクトリがあります。ただし、ディレクトリを選択することで、すべてを保存できる可能性が低くなると思います。また、ディレクトリを効果的に優先順位付けできるように、マウントし、ファイルリストをダンプしてからアンマウントする必要があります。これを行うには時間がかかるという事実に加えて、私はこのアプローチから離れています。 を使用することを検討しましたddが、データの特定の部分のみの救助を妨げる可能性のある読み取りエラーやその他の問題をどのように処理するのかわかりません。ドライブの他の部分が保存されないようにします。私は理想的には、できるだけ多くを取得するために単一のパスを実行し、エラーのために失敗したものを再試行することに戻ると思います。 たとえば、オーバーヒートの問題を回避するために、操作をフルティルトで実行するよりも、コピー速度を遅くする(たとえば、x MB / GBごとに一時停止する)方が良いでしょうか? 「あなたのバックアップはどこにいるのか」という群衆のために:これは実際には私のバックアップドライブですが、音楽ではなく、バックアップではない、つまりバックアップされていない重要でないものもいくつか含まれています。 ドライブは、このやや不吉な音以外の明確な障害の兆候を示していません。最近、いくつかのエラーをfsckする必要がありました。孤立したiノード、不正な空きブロック/ iノード数、iノードビットマップの違い、削除されたiノードのゼロdtime。全部で約20のエラー。 パーティションのファイルシステムはext3です。

1
コマンドpkill -USR1 -n -x ddは正確にはどういう意味ですか?
ddBeagleBoneのsdカードへのディスクイメージのネットワーク転送に使用しています。 pkill -USR1 -n -x ddこのBeagleBoneへのssh接続で使用すると、転送プロセスのステータスが更新されます。これは素晴らしいことです。それが実際にどのように機能するか知りたいので、将来的にそれを効果的に使用できます。 読んman pkillだ後でも、pkill -USR1 -n -x ddこの非常に便利なステータスの更新をどのように機能させているのかはまだ完全には説明されていませんでした。
12 kill  dd  signals 

6
未加工ブロックデバイスの比較
2つのブロックデバイスを比較できるユーティリティ(またはシェルマジック)はありますか? 詳細:ddを使用して少し大きいSATAデバイスにバックアップした1つの大きな(0.5 TB)RAIDデバイスがあります。デバイスにはいくつかのパーティションがありますが、パーティション化されたデバイスノードではなく、「親」デバイスからコピーします(たとえば、/ dev / hda1ではなく/ dev / hdaをコピーします)。 バックアップが良い/正しいことを確認したいのですが。 各デバイスでmd5sumを実行することを考えましたが、2番目のデバイスが最初のデバイスよりわずかに大きいため、余分なバイトによってハッシュが変更されるため、正確な結果は得られません。

6
ddでDVDをコピーできないのはなぜですか?
私はdd、dd_rescue、ddrescueを試しましたが、すべて失敗しました。これらのツールはファイルシステムをバイパスし、ビットごとのコピーを作成すると思いました。 ddはだまされて終了しますが、小さなファイルが生成され、終了したと表示されます。 dd_rescuseとddrescueは読み取りエラーについて不平を言っており、許容できないほど遅いです。これらのツールは、10分で数MBしかコピーできません。 なぜこれが起こっているのですか、なぜこれらのツールは失敗していますか? AnyDVDは、Win7ホスト上でディスクを1秒でコピー可能にします。不思議なことに、UDFファイルシステムにはパッチが適用されており、不良セクターがないことも示されています。ディスク全体を10分でコピーできます。 更新:解決策については、スーパーユーザーに関する私の同様の質問を参照してください。

4
ddを使用してランダムデータを書き込むとディスクパーティションが作成されるのはなぜですか?
ddコマンドを実行する前に、コマンドlsblkは以下の出力を返しました。 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk コマンドdd if=/dev/urandom of=/dev/sda conv=fsync status=progressが実行されます。ただし、デバイスは電力を失い、シャットダウンします。電源が回復すると、コマンドlsblkは次の出力を返します。 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk sda2 8:2 0 487.5G 0 disk
11 partition  dd  lsblk 

2
bashは16進数値0x00を変数に格納できません
私はddでいくつかのトリックをしようとしています。私はそれをddにパイプするために "header"と呼ばれる変数にいくつかの16進値を格納することは可能だと思いました。 変数を使用しない最初のステップは次のとおりです。 $ echo -ne "\x36\xc9\xda\x00\xb4" |dd of=hex $ hd hex 00000000 36 c9 da 00 b4 |6....| 00000005 その後、私はこれを試しました: $ header=$(echo -ne "\x36\xc9\xda\x00\xb4") $ echo -n $header | hd 00000000 36 c9 da b4 |6...| 00000004 ご覧のとおり\x00、$header変数の値が失われました。誰かがこの動作の説明をしていますか?これは私を夢中にさせています。
11 linux  bash  shell-script  dd 

4
/ bootとMBRを新しいドライブに移動する
2台のハードドライブを搭載したCentOS 6サーバーがあります。古い3TBドライブで問題が発生したため、新しいドライブに移動します。私/と/homeパーティションはLVMによって管理されているため、それらを新しいドライブに移行するのは簡単でした。次に、/bootパーティションとそれをすべて起動させるMBR に移動します。 私はライブCDをロードし、rsynced私以上の/boot私の新しいドライブ上の同じサイズのパーティションに分割。また、次のコマンドを使用してMBRをコピーしようとしました。 dd if=/dev/sda of=mbrbackup bs=512 count=1 dd if=mbrbackup of=/dev/sdb bs=446 count=1 これを行った後、再起動し、起動サイクル中に古いハードドライブを調べずに新しいドライブのみを見るようにBIOSに指示しましたが、カーソルが点滅するだけで終わりました。 ここで一歩逃した?または、古いドライブを完全に削除できるように、起動するために他に必要なことはありますか? 編集:私はrsyncが/ bootパーティションをあるドライブから別のドライブにコピーする方法ではなかったと思い始めています。このガイドに基づいて、代わりにdumpコマンドを使用してみました。このコマンドでは、マウントされていない古いブートパーティションをマウントされた新しい空のブートパーティションにコピーしました。 dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) ブート時にグラブエラー15が発生します。これはカーソルの点滅よりも優れていますが、それが解決策に近いかどうかはわかりません。
11 boot  dd  mbr  dump 

3
ddバックアップの整合性をチェックする方法は?
次の方法で、ハードドライブ全体(50GB)のバックアップを作成sshしました。 dd if=/dev/hda | buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img" ファイルの整合性をチェックするための最善の方法は何ですかimage.img、つまり、すべてが正しくコピーされていることを確認する方法は何ですか?
11 backup  dd  integrity 

2
dd skip | seekオフセットを16進数として渡す
# dd if=2013-Aug-uptime.csv bs=1 count=1 skip=3 2> /dev/null d # dd if=2013-Aug-uptime.csv bs=1 count=1 skip=0x3 2> /dev/null f 2番目のコマンドが異なる値を出力するのはなぜですか? skip | seekオフセットをdd16進数値として渡すことは可能ですか?
11 dd 

2
ディスクの終わりにddコマンドのbsオプション
dd次のようにコマンドを使用するとします。 dd if=/dev/zero of=/dev/sdX bs=16M 16Mの正確な倍数でない場合、ディスクの最後で何が起こりますか?それは、ディスクの最後の残りの部分がゼロにならないことを意味しますか? 私はhttps://www.marksanborn.net/howto/wiping-a-hard-drive-with-dd/で気づきました、彼は米国政府が使用していると書いています dd if=/dev/urandom of=/dev/sda bs=8b conv=notrunc conv=notrunc最後のバイトがすべて確実にワイプされるようにする方法はありますか?
10 dd 

4
ディスク全体のDDを再開する
古き良きものを使用してハードドライブをランダムデータで上書きしていますdd: dd if=/dev/urandom of=/dev/disk/by-uuid/etc bs=512 それは2TBアレイであり、私のMacBook(Linuxを実行している、そうですか?)はデータを3.7MB / sでしか書き込むことができません。これは、自宅のデスクトップが20MB / sを実行しているのを見て、かなり哀れです。今夜家に帰ったら、ddここで走りを止めて家に持ち帰り、より強力な機械で一晩でどんな進歩が見られるかを確認したいと思います。 私は単純なループを使用して進行状況を監視しています: while true; do kill -USR1 $PID ; sleep 10 ; done 出力は次のようになります。 464938971+7 records in 464938971+7 records out 238048755782 bytes (238 GB) copied, 64559.6 s, 3.7 MB/s dd自宅でパスを再開した場合、どうすれば再開できますか?seekパラメータは知っていますが、レコード番号やバイト数など、何を指しますか?
10 dd 

3
`dd`を使用してデータブロックを右シフトするにはどうすればよいですか?
簡単な例として、100MBのrawブロックデバイスを考えます。つまり、合計512760バイトの512バイトの204800ブロックです。 最初の98MB(200704ブロック)をシフトして、その前に2MB(4096ブロック)のギャップを設けることが課題です。これをインプレースで行うには、読み取られていないセクターに何も書き込まれないことが必要です。これを実現する1つの方法は、バッファーを導入することです。 $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 | dd of=/dev/sdj2 seek=4096 期待されるのはmbuffer、ライターに何かを渡す前に4096ブロックを格納することです。これにより、読み取られていない領域に何も書き込まれず、ライターがバッファーのサイズによってリーダーよりも遅れることが保証されます。バッファーは、リーダーとライターがそれらの制約内で可能な限り高速に動作できるようにする必要があります。 ただし、確実に機能するようには見えません。私は実際のデバイスを使ってみましたが、実際には機能しませんが、ファイルを使った実験は64ビットボックスでは機能しましたが、32ビットボックスでは機能しませんでした。 まず、いくつかの準備: $ dd if=/dev/sdj2 count=200704 | md5sum 0f0727f6644dac7a6ec60ea98ffc6da9 $ dd if=/dev/sdj2 count=200704 of=testfile これは機能しません: $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 -H | dd of=/dev/sdj2 …
10 dd  block-device 

3
gzip-リダイレクトまたはパイピング?
大容量(750GB)ディスクをddを使用して外部USBディスクにバックアップします。 リダイレクトまたはパイピングを使用する必要がありますか?どちらがより効率的ですか?または違いはありますか? また、最適なブロックサイズは何ですか?ここでUSBがボトルネックになる可能性があります。 dd if=/dev/sda bs=1M | gzip -c > /mnt/sdb1/backups/disk.img.gz gzip -dc /mnt/sdb1/backups/disk.img.gz | dd of=/dev/sda bs=1M 対 dd if=/dev/sda bs=1M | gzip -c | dd of=/mnt/sdb1/backups/disk.img.gz dd if=/mnt/sdb1/backups/disk.img.gz | gzip -dc | dd of=/dev/sda bs=1M ありがとう。
10 linux  gzip  pipe  dd 

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