사용 가능한 공간을 고려하여 dd를 사용하여 압축된 디스크 이미지 또는 복제본을 마운트합니다.

사용 가능한 공간을 고려하여 dd를 사용하여 압축된 디스크 이미지 또는 복제본을 마운트합니다.

로컬에서 복제하여 얻은 이미지를 설치할 계획입니다 dd. 이 이미지는 512GB 저장 용량의 mSATA 디스크에 해당하며, Ubuntu 최하위 버전에는 구성이 거의 없습니다. 따라서 현실적으로 데이터가 포함된 콘텐츠는 3GB를 넘지 않아야 합니다.

다만, 리소스와 공간 효율성을 위해 다음 명령어를 사용하여 gz로 이미지를 압축했습니다.

dd bs=64K if=/dev/sdd conv=sync,noerror status=progress | gzip -c  > /image.img.gz

/dev/sdd문제의 디스크는 어디에 있습니까? 그 안에 2.4GB의 압축된 이미지가 생성되는데, 압축을 풀려고 하면 당연히 원본 512GB를 차지하게 됩니다.

압축된 이미지를 다른 디스크에 구우려면 다음 명령을 사용합니다.

gunzip -c /image.img.gz | dd bs=64K of=/dev/sdy status=progress

그러나 지금은 다른 디스크에 굽는 것이 아니라 특정 디스크에 굽기 전에 몇 가지 변경 및 구성을 수행하고 싶기 때문에 설치 유틸리티를 사용하여 내 시스템에 설치합니다. 그런데 디스크 공간(512GB)이 부족해요.

직접 압축해서 마운트하는 방법이 있나요? 그렇지 않은 경우 디스크를 복제하여 공간을 덜 차지하도록 하는 방법이 있습니까?

답변1

이미지는 잘 압축되어 있으므로 널 바이트가 많이 포함될 수 있습니다. SSD는 fstrim파일 시스템에서 일시적으로 사용되지 않는 섹터에 대해 널 바이트를 반환하는 경우가 많습니다. 이 경우 .gz아카이브를 스파스 파일로 압축을 풀어야 합니다. 이것이 제대로 작동하려면 대상 파일 시스템이 스파스 파일을 지원해야 합니다. 명령 예:

gunzip -c /image.img.gz | cp --sparse=always /dev/stdin /path/to/store/image.img

cp --sparse=always대신 사용할 수 있지만 dd conv=sparse다음 사항에 유의하세요.dd conv=sparse예상한 것만큼 많은 공간이 절약 되지 않는 이유는 무엇입니까 ?

다른 콘솔에서 실행 watch ls -hls /path/to/store/image.img하고 첫 번째와 여섯 번째 열을 관찰하세요. 열 6의 숫자는 약 512GB로 증가합니다. 열 1의 숫자는 압축 해제된 이미지가 디스크에서 차지하는 공간의 양만큼 낮게 유지되어야 합니다.

kpartx그런 다음 Access에서 파티션을 사용하거나 /path/to/store/image.img또는 fdisk -l /path/to/store/image.img(또는 gdisk -l …) mount -o offset=…이미지에서 직접 설치하십시오. 귀하의 컴퓨터 /dev/sdd가 슈퍼 플로피라면(파티션은 없고 파일 시스템만 있음) mount /path/to/store/image.img /the/mountpoint.

관련 정보