드라이브 이미지로 디스크 공간을 절약하려고 하는데, 찾을 수 있는 모든 예에는 빈 공간을 0으로 채우고 결과 이미지를 압축하는 작업이 포함되어 있습니다. 모든 프로그램이 압축된 이미지를 사용할 수 있는 것은 아니기 때문에 (ISO에서 복사하거나 더 작은 드라이브에서 복제하는 등의 이유로) 완전히 사용되지 않은 드라이브의 공간을 절약하기 위해 다음 방법을 사용할 수 있는지 궁금합니다.
다음과 같은 드라이브가 있습니다.
Disk test: 5 MiB, 5242880 bytes, 10240 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x397f74b3
Device Boot Start End Sectors Size ID Type
test1 2048 4095 2048 1M 83 Linux
test2 4096 8191 4096 2M 83 Linux
dd
파일에 처음 8191 * 512 = 4193792바이트를 쓰고 드라이브와 동일한 원본 이미지를 얻을 수 있습니까 ? 일반적으로 가장 높은 부분("최종 섹터" * 논리 섹터 크기)을 복사하여 원본 이미지와 동등한 결과를 얻을 수 있습니까(파티션 뒤에 숨겨진 데이터가 저장되어 있지 않다고 가정)?
답변1
예. 데이터가 없으면 무시해도 됩니다. 루프백 등을 통해 파티션에 액세스하면 작동할 것입니다. 다른 작업에서는 파일을 올바른 크기(예: 0 사용 truncate -s
)로 확장하여 효과적으로 0으로 채워야 할 수도 있습니다.
Unix와 유사한 파일 시스템에 이미지를 저장하는 경우 파티션 뒤의 여유 공간뿐만 아니라 파티션 내부의 여유 공간에도 스파스 파일을 사용할 수 있습니다. 그러면 크기 조정을 할 필요가 없습니다. e2image -a -r
예를 들어 그렇게 할 수 있어야 합니다.
(경고: 시작 부분에 파티션 정보를 저장하는 DOS MBR 파티션을 사용하고 있습니다. 다른 파티션 테이블 형식은 디스크 끝에 백업 또는 기본 파티션 테이블을 저장할 수 있습니다.)