dd 이미지 압축 및 압축 풀기 - gzip 대신 zstd

dd 이미지 압축 및 압축 풀기 - gzip 대신 zstd

이전에는 fsarchiver를 사용하여 압축된 파티션 이미지를 만들었습니다. 어떤 일로 인해이상한 행동으로 교체하기로 했습니다 dd.

그러나 나는 fsarchiver가 압축하는 방식을 좋아합니다.이것이 표준이다.

그래서 조사해보니,

이것이 본질적으로 말하는 것은 백업하려면 다음 명령을 사용해야 한다는 것입니다.

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 -c이제 &를 &로 바꾸고 싶습니다 .gunzip -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

이 명령을 사용해도 안전합니까, 아니면 제가 뭔가 잘못하고 있습니까?

답변1

(선택의 여지 없이) 이렇게 사용하면 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. 사용할 때 with dd접두사를 사용하거나 루트 셸을 가져오는 데 사용할 수 있습니다.ddsudosudo -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. 루트 셸을 얻으려면 .prep pv대신 사용하세요 .ddsudo -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를 결합할 때의 구문

항상 그렇듯, 읽기에 높은 권한을 사용하려면 command <source로 변경하고 sudo cat source | command, 쓰기에 높은 권한을 사용하려면 command >target로 변경하세요 command | sudo tee target >/dev/null.

답변2

zstd동일한 명령 및 파이프라인 기능이 지원되므로 gzip명령 세트가 작동하면 gzip역시 작동합니다 zstd.

작은 의견으로 압축 해제 측의 몇 가지 명령 플래그가 중복된다는 점에 유의하십시오. 이 경우 충분 하고 zstd -dvc동일하게 작동하며 쓸모가 없습니다(다행히도 손상되지는 않지만).-f-T6

관련 정보