파티션 크기는 2Gb에 가깝고 실제 사용된 크기는 1.5Gb입니다. 활성화 플래그를 사용하여 이 파티션의 dd
이미지를 생성 하려고 합니다 conv=sparse
.
결과 이미지 dd
크기는 1.8GB입니다.
du
표시된 파티션의 실제 크기는 1.5Gb입니다.
나를 가장 혼란스럽게 하는 것은 그날 일찍 dd
파티션을 편집할 때 표시되는 것입니다 du
. 그런 다음 파티션에 몇 가지 변경 사항을 적용하고 다시 실행했습니다 dd
. 이번에는 불일치가 있습니다.
그 원인은 무엇입니까? 메모리가 비어 있음에도 불구하고 비어 있거나 0이 아니므로 dd
희소 알고리즘이 작동하지 않는 것 같습니다.
답변1
당신의 추측이 정확합니다. dd
파일 시스템 사용에 대한 개념은 없으며 단지 데이터를 복사합니다(또는 conv=sparse
설정되어 있고 전체 블록이 0인 경우 복사하지 않음).
100% 완전한 파일 시스템을 보유하는 것도 가능하지만 매우 작은 dd 스파스 이미지도 가능합니다. 파일이 모두 0이라고 가정해 보겠습니다.
여유 공간과 의도적으로 제로화되었지만 사용된 공간에는 차이가 있지만 dd
이에 대한 개념은 없습니다. 따라서 conv=sparse
특히 회복 중에 주의해서 사용해야 합니다.
복원된 희소 이미지를 사용하는 경우 conv=sparse
대상 장치를 완전히 0으로 설정해야 합니다. 그렇지 않으면 0이 아닌 오래된 데이터가 0이 있어야 하는 위치에 남아 있게 됩니다. 그 결과 파일 시스템이 손상됩니다.