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

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


2
ddコマンドの「bs」、「count」、「seek」の違いは何ですか?
私はどのように使用することに説明し、多くのガイドやフォーラムの投稿を読んだddが、私は気づいた一つのことは、人々は常に異なる値を使用することでbs=、count=そしてseek=スイッチを。 誰かがこれらのスイッチが何をするかを正確に説明してください(マニュアルページはあまり詳細ではありません)、/ dev / randomまたは/ dev / zeroからファイルを作成し、上書きするなど、さまざまなタスクの最適な設定を説明してくださいパーティションと外部ドライブ。
24 dd 

2
ファイルイメージコンテナーを作成する
ファイルシステムとして使用する100GBファイルを作成したいと思います。ファイルは暗号化されたボリュームに保存されるため、ファイル/ファイルシステム自体を(さらに)暗号化する必要はありません。検索により、これを行うさまざまな方法が明らかになりました。使用するものと使用losetupしないものがあります。次の方法は受け入れられますか? $ dd if=/dev/zero of=~/theFile.img bs=1M count=10240 $ mkfs.ext4 ~/theFile.img # will prompt about block special device $ sudo mount -o loop ~/theFile.img /media/mountPoint
23 filesystems  dd 


5
ハードウェアリソースにあふれないオンザフライストリーム圧縮
200 GBの空きディスク容量、16 GBのRAM(そのうち約1 GBはデスクトップとカーネルが占有)、6 GBのスワップがあります。 240 GBの外付けSSDがあり、70 GBが使用され1が残り、残りはディスクにバックアップする必要があります。 通常、dd if=/dev/sdb of=Desktop/disk.img最初にディスクを使用してから圧縮しますが、圧縮ステップにより空き領域が押しつぶされる場合でも、イメージを最初に作成することはオプションではありません。最終アーカイブはディスクに簡単に収まります。 ddデフォルトでSTDOUTに書き込みgzip、STDINから読み取ることができるため、理論的にはを書き込むことができますがdd if=/dev/sdb | gzip -9 -、gzipバイトddを生成するよりもバイトの読み取りにかなり時間がかかります。 からman pipe: パイプの書き込み側に書き込まれたデータは、パイプの読み取り側から読み取られるまでカーネルによってバッファリングされます。 を|実際のパイプのように視覚化します。1つのアプリケーションがデータを押し込み、もう1つのアプリケーションがパイプのキューからデータをできるだけ早く取り出します。 左側のプログラムがパイプの反対側が処理を期待できるよりも多くのデータをより速く書き込むとどうなりますか?それは極端なメモリまたはスワップの使用を引き起こしますか、またはカーネルはディスク上にFIFOを作成しようとし、それによりディスクをいっぱいにしますか?それともSIGPIPE Broken pipe、バッファが大きすぎると失敗しますか? 基本的に、これは2つの質問に要約されます。 一度に読み取られるよりも多くのデータをパイプに押し込むことの意味と結果は何ですか? 圧縮されていないデータストリーム全体をディスクに配置せずに、データストリームをディスクに圧縮する信頼できる方法は何ですか? 注1:最初の70個の使用済みGBを正確にコピーすることはできません。断片化など、コンテンツ全体を完全に維持する必要があるため、動作中のシステムまたはファイルシステムを取得します。
23 pipe  dd  compression  gzip 

4
ddがキャッシュしない、またはキャッシュから読み取らない
私は、ddのbusyboxバージョンを使用した組み込みシステムで作業しています。外部ユーティリティからドライブへの消去をテストしようとしていますが、ddは消去後にディスクから再度読み取りを行いませんが、キャッシュされたデータを表示します。 最初のddを実行し、データを確認し、システムを再起動してキャッシュをフラッシュし、消去を実行し、ddを再度実行してすべてゼロになったため、ddに絞り込みました。 ただし、工場出荷時の設定でddを実行し、ドライブを消去し、再起動せずに再度ddを実行すると、再起動するまですべてのゼロが表示されません。 GNUのマンページで、ddはnocacheフラグを使用してiflag optをサポートしているが、busyboxはそのオプションをサポートしていないので、それは論外です。 私の質問は、ddにキャッシュからではなく、ディスクからの読み取りを強制するにはどうすればよいですか?
22 linux  dd 

2
cat、dd、pv、または別の手順を使用してCD / DVDをコピーする方が良いですか?
バックグラウンド 一部のデータCD / DVDをISOファイルにコピーして、後でドライブで使用せずに使用しています。 私は手順をネットで探していますが、たくさん見つけました: を使用catしてメディアをコピーする:http : //www.yolinux.com/TUTORIALS/LinuxTutorialCDBurn.html cat /dev/sr0 > image.iso を使用しddてそうする(明らかに最も広く使用されている):http : //www.linuxjournal.com/content/archiving-cds-iso-commandline dd if=/dev/cdrom bs=blocksize count=count of=/path/to/isoimage.iso pvこれを達成するためだけに使用:詳細についてはman pv、以下を参照してください。 Taking an image of a disk, skipping errors: pv -EE /dev/sda > disk-image.img Writing an image back to a disk: pv disk-image.img > /dev/sda Zeroing a disk: pv …
22 linux  dd  cat  disk-image  pv 

4
コマンドddの 'seek'引数
次の行で何が起こっているのか説明できますか? dd if=/dev/urandom bs=4096 seek=7 count=2 of=file_with_holes 特にシーク部分は明確ではありません マニュアルページは言う: seek=BLOCKS skip BLOCKS obs-sized blocks at start of output OBSサイズのブロックとは何ですか?
20 dd 

5
ディスクのゼロ化中に書き込みエラーを無視する方法は?
故障したハードディスクをゼロアウトするとします。可能な限りゼロで上書きする必要があります。望まないのは、最初の書き込みエラーでプロセスが中断することです。どうやってするか? AFAICS、plain ddは読み取りエラーを無視するオプションのみを提供します。したがって、次のようなもの dd if=/dev/zero of=/dev/disk/by-id/lousy-vendor-123 bs=128k 十分ではありません。 ddrescue エラーを無視するのが良いようですが、それで最適なコマンドラインは何でしょうか? GNU ddrescueでの私の試み: ddrescue --verbose --force --no-split /dev/zero /dev/disk/by-id/lousy-vendor-123
19 hard-disk  dd  ddrescue 

4
大きなファイルの途中を読む
1 TBのファイルがあります。バイト12345678901からバイト19876543212に読み取り、それを100 MB RAMのマシンの標準出力に出力したいと思います。 これを行うperlスクリプトを簡単に書くことができます。sysreadは700 MB / s(これは問題ありません)を提供しますが、syswriteは30 MB / sしか提供しません。より効率的なもの、できればすべてのUnixシステムにインストールされ、1 GB /秒のオーダーで配信できるものが望ましい。 私の最初のアイデアは: dd if=1tb skip=12345678901 bs=1 count=$((19876543212-12345678901)) しかし、それは効率的ではありません。 編集: syswriteを間違って測定した方法がわかりません。これにより、3.5 GB /秒が実現します。 perl -e 'sysseek(STDIN,shift,0) || die; $left = shift; \ while($read = sysread(STDIN,$buf, ($left > 32768 ? 32768 : $left))){ \ $left -= $read; syswrite(STDOUT,$buf); }' 12345678901 …
19 files  dd 

3
ハードドライブの/ bin / ddで作成された「img」をマウントするにはどうすればよいですか?
80GBドライブのddバックアップに使用しました dd if=/dev/sdb of=~/sdb.img 次に、そのドライブ上のいくつかのファイルにアクセスする必要がありますが、「。img」をドライブ上にコピーしたくありません。 mount ~/sdb.img /mnt/sdb動作しません。それは返します: mount: you must specify the filesystem type 私はファイルシステムタイプを見つけようとしました file -s fox@shoebox $ file -s sdb.img sdb.img: x86 boot sector; partition 1: ID=0x12, starthead 1, startsector 63, 10233342 sectors; partition 2: ID=0xc, active, starthead 0, startsector 10233405, 72517410 sectors; partition 3: ID=0xc, starthead …
19 mount  dd 

6
`dd if = / dev / zero of = / dev / sda`は何をしますか
編集済み:データを破棄する場合を除き、これを実行してテストしないでください。 誰かが私が得たものを理解するのを手伝ってもらえますか? dd if=/dev/zero of=/dev/sda bs=4096 count=4096 Q:なぜ特に4096 countですか? dd if=/dev/zero of=/dev/sda bs=512 count=4096 seek=$(expr blockdev --getsz /dev/sda - 4096) Q:これは正確に何をしますか?
19 udev  dd  disk 

1
ディスクがいっぱいになるまで、「tar」を「dd」にパイプするのが止まらないのはなぜですか?
単一のディスクイメージのtarアーカイブがあります。このtarファイル内の画像のサイズは約4GBです。Iパイプの出力tar xfにddSDカードにディスクイメージを書き込みます。ディスクダンプは、カードがいっぱいになるまで停止しません。これが私のシェルセッションです。 $ ls -l disk.img.tgz -rw-r--r-- 1 confus confus 192M Okt 5 00:53 $ tar -tvf disk.img.tgz -rw-r--r-- root/root 4294968320 2018-10-05 00:52 disk.img $ lsblk -lb /dev/sdc NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdc 8:32 1 16022241280 0 disk $ tar zxf disk.img.tgz -O | sudo dd status=progress …
18 pipe  tar  dd  disk-image 

3
コマンドラインを使用してファイルをトリミングするにはどうすればよいですか?
次のPythonコードに相当するコンソールは何ですか: target = file("disk", "w") # create a file target.seek(2*1024*1024*1024) # skip to 2 GB target.write("\0") target.close() 多分DDの呪文?このアイデアは、仮想化などで使用するために、見かけのサイズが2 GBのファイルを作成することです。 kvm disk -cd whatever.iso #Only allocate space as necessary
18 files  dd  sparse-files 


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