7GB vdi 파일을 분할하고 cat 명령을 사용하여 결합했습니다. 파일은 VBox에서 제대로 작동하지만 다시 결합하면 14GB가 됩니다. 정확한 작업은 다음과 같습니다.
$ split -- bytes=2000M file.vdi /locationX/prefix
다른 기계로 옮기세요...
$ cat prefix* > /locationY/file.vdi
그랬더니 크기가 두 배로 커졌어요.
무슨 일이에요?
답변1
file.vdi
아마스파스 파일. 이는 가상 머신 디스크 이미지에서 매우 일반적입니다. 기록되지 않은 부분은 파일에서 공간을 차지하지 않는 구멍으로 남게 됩니다. 원본 파일의 길이가 디스크 사용량과 일치하는지 확인하여 이를 확인할 수 있습니다.
ls -l file.vdi; du file.dvi
ls -l
14GB(실제 파일 길이)가 보고될 것으로 예상했지만 du
7GB(디스크 공간)가 보고되었습니다. 이는 이미지의 약 절반이 기록되지 않았음을 의미합니다.
스파스 파일은 시스템에서 수행되는 기본 압축 형태입니다. 파일의 취약점은 애플리케이션이 취약점을 읽을 때 보게 되는 다수의 널 바이트를 포함하는 것으로 정의됩니다. 따라서 split
(또는 cat
또는 cp
또는 dd
무엇 tar
이든) 많은 null 바이트가 읽혀져 출력에서 공간을 차지합니다.
목적지의 공간을 절약하고 싶다면 다음과 같이 하세요.파일을 다시 희소하게 만듭니다.. 이는 공간만 절약할 뿐 성능은 향상되지 않습니다.