gzip-リダイレクトまたはパイピング?


10

大容量(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

ありがとう。


2
生のディスクイメージではなく、ファイルシステムをバックアップしようとしました。パラメータを調整するには、ベンチマークを行う必要があります。

dd(他のツールは、ありがたいことに離れてい古風であるbs=count=、のようなddrescue)、そしてあなたのケースでも、かなり無意味。gzip -c </dev/sda >disk.img.gz&にパイプするだけgzip -cd disk.img.gz >/dev/sdaです。

または、rsyncを使用します。パラメータを指定してコマンドを作成するだけで、考えられる最も効率的な方法ですべてが実行されます。
vakufo

2番目のリストの2番目のコマンドでは、dd if=.../disk.img.gz |パーツは何をすることになっていますか?私が理解している限り、gzip -dc(= zcat)はstdin、ファイル引数があるときはそれを気にしません。
sr_

Linuxがファイル構造を単にコピーするだけでWindowsインストールを確実に再現できるとは思いません。したがって、のようなビット単位のコピーが必要ですddddrescueプレーンよりも堅牢に見えますdd。GNUを使用しますddrescuedd_rescue?ダウンロードに適したLive CDとは何ですか?
mcu

回答:


3

それはので、配管は、1つの以上のプロセスと1以上のユーザランドのコピーを必要とする必要があります使用リダイレクトする方が効率的。

しかし、今日のハードウェアとソフトウェアのキャッシュシステムでは、実際に違いはないはずです。Linux ではパイプの制限であるため、多分、bs=4kまたはを使用するとより良い結果が得られるでしょう。さまざまなbsパラメータの詳細については、この質問を参照してください。bs=64k


9

使用ddや配管は一切必要ありません。

</dev/sda gzip >/mnt/sdb1/backups/disk.img.gz
</mnt/sdb1/backups/disk.img.gz gunzip >/dev/sda

私はかつてベンチマークを作成したところ、異なるディスク間での単純なコピーddよりも使用が遅いことがわかりましたcatddこの場合、パイプがさらに低速なソリューションを作成することを期待します。


これリダイレクトの使用例です。
psusi

@psusi Gah!「dd or pipe」と書くつもりでした。ありがとう。
Gilles「SO-邪悪なことをやめよ」

pvこれらのコマンドを組み合わせる方法はありますか?
Yaron、2018

2
@Yaron確か:置き換えるgzipことにより、pv | gzipおよびgzip -dによってgzip -d | gv
ジル「SO-停止されて悪」

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