web-dev-qa-db-ja.com

ddイメージの圧縮と解凍-gzipの代わりにzstd

以前は、fsarchiverを使用して圧縮パーティションイメージを作成していました。いくつかの 奇妙な振る舞い のため、それをddで置き換えることを選択しています。

ただし、私はfsarchiverが zstd で圧縮する方法が好きです。

それで、私は勉強しました、

これらが本質的に言っていることは、私は次のコマンドを使用してバックアップする必要がある

dd if=/dev/sda2 status=progress | gzip -c > /media/mint/Data/_Fsarchiver/MintV1.img.gz

そして、復元する次のコマンド

gunzip -c /media/mint/Data/_Fsarchiver/MintV1.img.gz | dd of=/dev/sda2 status=progress

次に、gzip -cgunzip -czstdzstd -dに置き換えます

私が思いついたコマンドは

圧縮する

Sudo dd if=/dev/sda2 status=progress | zstd -16vT6 > /media/mint/Data/_Fsarchiver/MintV1.zst

解凍する

zstd -vdcfT6 /media/mint/Data/_Fsarchiver/MintV1.zst | dd of=/dev/sda2 status=progress

これらのコマンドを試しても安全ですか、それとも何か問題がありますか?

4
blueray

そのようなddを(オプションなしで)使用すると、あなたの人生は悲惨になります。完全に切り取ってください。または、少なくともブロックサイズを増やして、短い読み取りに反対しないように指示します。

  1. ddがない場合、最初にSudo -sを実行してルートシェルを取得します。

    gzip </dev/sda2 >/media/mint/Data/_Fsarchiver/MintV1.img.gz
    gunzip </media/mint/Data/_Fsarchiver/MintV1.img.gz >/dev/sda2
    

    zstdコマンドは完全にもっともらしいように見えますが、ddを省略して、ルートとしてデバイスを直接読み書きします。 (私のバージョンではT6が理解できないため、ここでは省略します。)

    zstd -16v </dev/sda2 >/media/mint/Data/_Fsarchiver/MintV1.zst    
    zstdcat -v /media/mint/Data/_Fsarchiver/MintV1.zst >/dev/sda2
    
  2. ddでは、ddの前にSudoを付けるか、Sudo -sを使用してルートシェルを取得します。

    dd bs=1M iflag=fullblock if=/dev/sda2 status=progress | gzip >/media/mint/Data/_Fsarchiver/MintV1.img.gz
    gzcat /media/mint/Data/_Fsarchiver/MintV1.img.gz | dd bs=1M iflag=fullblock of=/dev/sda2 status=progress
    
    dd bs=1M iflag=fullblock if=/dev/sda2 status=progress | zstd -16v >/media/mint/Data/_Fsarchiver/MintV1.img.zst
    zstdcat /media/mint/Data/_Fsarchiver/MintV1.img.zst | dd bs=1M iflag=fullblock of=/dev/sda2 status=progress
    
  3. pvの代わりにddを使用します。ルートシェルを取得するには、事前にSudo pvまたはSudo -sを使用します。

    pv </dev/sda2 | gzip >/media/mint/Data/_Fsarchiver/MintV1.img.gz
    gzcat /media/mint/Data/_Fsarchiver/MintV1.img.gz | pv >/dev/sda2
    
    pv </dev/sda2 | zstd -16 >/media/mint/Data/_Fsarchiver/MintV1.img.zst
    zstdzcat /media/mint/Data/_Fsarchiver/MintV1.img.zst | pv >/dev/sda2
    

    ddとpvを組み合わせる場合の構文も参照してください

6
roaima