저전력 시스템에서 USB 3 연결을 포화시키는 전체 디스크 이미지를 위한 최고의 압축 도구는 무엇입니까?

저전력 시스템에서 USB 3 연결을 포화시키는 전체 디스크 이미지를 위한 최고의 압축 도구는 무엇입니까?

저는 전체 디스크 이미지로 작업을 많이 하는데, 성능이 떨어지는 노트북에서 전체 디스크 이미지를 읽고 쓰기 위해 USB-3 디스크를 임시 미디어로 사용해야 하는 경우가 많습니다.

원본 이미지를 복사하는 것이 아마도 가장 빠른 방법일 것입니다. 하지만 제한된 사용 가능한 저장 공간을 처리해야 합니다.

나에게 필요한 것은 높은 처리량과 낮은 CPU 사용량입니다. 압축 비율은 나에게 그다지 중요하지 않습니다.

나는 생성된 이미지를 매우 약간 압축할 수 있는 도구를 원합니다. 기본적으로 디스크의 빈 공간을 인코딩하여 유용한 데이터만 저장할 수 있도록 하면서 가능한 한 빠르게 만들 수 있습니다. 바라건대 원본과 거의 비슷할 것입니다 dd.

압축 속도를 높이기 위해 여러 CPU 코어를 사용할 수 있기 때문에 사용을 선택했으며 pxz -1가장 빠른 압축이 여전히 유용할 것으로 기대했습니다. 그러나 이것은 내가 원하는만큼 뚱뚱해 보이지 않습니다.

500GB 디스크 이미지를 압축하는 데는 21시간이 걸릴 것으로 예상됩니다.

mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G | pxz -1 > Lenovo-Win8-sda.dd.xz
0:09:21 [9.26MiB/s] [6.54MiB/s] [>            ]  0% ETA 21:34:46

압축하지 않고 완료하는 데 3시간이 걸릴 것으로 예상됩니다.

mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G > Lenovo-Win8-sda.dd
0:00:20 [80.2MiB/s] [49.8MiB/s] [>           ]  0% ETA 2:50:20

압축을 사용하면 15시간 ETA를 사용하는 것보다 약간 더 빨라 lbzip2 -1보이지만 여전히 느립니다.pxz -1

mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G | lbzip2 -1 > Lenovo-Win8-sda.dd.bz2
0:00:22 [9.07MiB/s] [9.76MiB/s] [>             ]  0% ETA 14:33:38

Linux용으로 더 빠른 압축 도구가 있습니까?

답변1

LZ4

apt install liblz4-tool

lz4그런 다음 명령을 사용하여 lz4 -d.

기본값은 가장 빠른 압축 모드입니다.

USB 3.0을 통해 내부 하드 드라이브에서 외부 드라이브로 500GB의 데이터를 전송하는 데 걸리는 예상 시간은 2~3시간입니다.

mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G | lz4 > Lenovo-Win8-sda.dd.lz4
0:02:47 [97.5MiB/s] [58.1MiB/s] [>                ]  1% ETA 2:24:11

답변2

따라서 이것이 절대적으로 빠른 것은 아니지만(LZ4, LZOP 및 Snappy보다 느림) 사용하기에 충분히 빠를 수 있으며 다음을 얻을 수 있습니다.방법LZ4보다 비율이 더 좋습니다(더 적은 데이터를 전송하면 시간도 절약됩니다).

Z 표준

공식 웹 사이트:https://facebook.github.io/zstd/

데비안 패키지가 호출됩니다.zstd

LZ4와 달리 멀티 스레드(압축 및 압축 해제용)이며 가장 낮은 압축 설정을 사용하면 USB 3.0 링크를 쉽게 포화시킬 수 있습니다(LZ4를 사용한 테스트에서 이 작업을 수행했을 수 있음). Gzip.

답변3

이건 마치XY 문제. 일반 압축 도구는 사용되지 않은 공간이 비어 있다고 보장할 수 없기 때문에 디스크 이미지에 대해 제대로 작동하지 않을 수 있습니다. (물론 파일 시스템에서 사용되지 않는 공간을 없애는 방법이 있습니다.)

파일 시스템 형식을 이해하고 사용된 부분만 백업하는 rsync, Clonezilla, Time Machine, Duplicity dump또는 심지어 ) 와 같은 백업 도구를 사용하는 것이 더 좋습니다 . tar바라보다이 문제그들 중 일부에 대해 토론하십시오. 이 접근 방식의 장점은 백업을 다른 크기의 디스크에 복원하는 것이 더 쉬워진다는 것입니다.

답변4

나는 사용한다클론속BIOS 모드 부팅 섹터가 있는 드라이브 헤더, 파티션 테이블 등을 포함하여 전체 드라이브의 복제된 복사본 또는 압축 이미지를 생성할 수 있습니다.

Clonezilla 이미지는 대용량 파일이 압축된 많은 파일이 포함된 디렉터리이며, Clonezilla는 이러한 이미지를 정확히 동일하거나 더 큰 크기의 드라이브(더 작은 드라이브는 아님)로 복원할 수 있습니다. 이러한 드라이브는 원래 드라이브(부팅 가능 등)처럼 작동합니다. 드라이브가 더 크고 파티션 테이블이 GPT인 경우 드라이브 끝에서 백업 파티션 테이블을 수동으로 복원해야 할 수 있습니다. gdisk드라이브가 더 크고 파티션 테이블이 GPT인 경우 스크립트를 사용해야 할 수 있습니다.GPT 수리.

Clonezilla는 사용된 블록을 인식하고 파일 시스템에서 사용 가능한 블록을 건너뛸 수 있을 만큼 똑똑합니다(여러 Linux 파일 시스템 및 Microsoft 파일 시스템에서 사용해 본 적이 있으며 작동합니다 partclone). 따라서 사용 가능한 블록의 비율이 적당하다면 "원시" 복제 및 압축보다 훨씬 빠릅니다(여유 공간을 0으로 만드는 것과 상관없이).


최종 사용자 Clonezilla 없이 높은 압축률과 매우 유연한 사용을 원할 경우 여유 공간을 0으로 만들고 dd파이프를 통해 파일을 xz가져옵니다 img.xz. 하지만 이 프로세스는 매우 느리고 현재 상황에 적합하지 않습니다.

관련 정보