파일(vdi)은 분할 후 cat 작업 후 크기가 두 배로 증가합니다.

파일(vdi)은 분할 후 cat 작업 후 크기가 두 배로 증가합니다.

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 -l14GB(실제 파일 길이)가 보고될 것으로 예상했지만 du7GB(디스크 공간)가 보고되었습니다. 이는 이미지의 약 절반이 기록되지 않았음을 의미합니다.

스파스 파일은 시스템에서 수행되는 기본 압축 형태입니다. 파일의 취약점은 애플리케이션이 취약점을 읽을 때 보게 되는 다수의 널 바이트를 포함하는 것으로 정의됩니다. 따라서 split(또는 cat또는 cp또는 dd무엇 tar이든) 많은 null 바이트가 읽혀져 출력에서 ​​공간을 차지합니다.

목적지의 공간을 절약하고 싶다면 다음과 같이 하세요.파일을 다시 희소하게 만듭니다.. 이는 공간만 절약할 뿐 성능은 향상되지 않습니다.

관련 정보