qcow2 파일의 실제 크기가 약간 혼란스럽습니다.
ls -alh VMs/ubuntu-mini.qcow2
-rw------- 1 root root 21G mar 31 23:15 VMs/ubuntu-mini.qcow2
du -h VMs/ubuntu-mini.qcow2
2,7G VMs/ubuntu-mini.qcow2
이 파일을 다른 파티션(ext4)에 복사하고 싶습니다. 이 명령이 실제로 복사된 것 같습니다.21G뿐만 아니라2,7G나는 기대. 이제 새 위치에서 두 명령(du 및 ls) 모두 동일한 크기(21G)를 표시합니다.
du -h /media/HDD0/VMs/ubuntu-mini.qcow2
21G /media/HDD0/VMs/ubuntu-mini.qcow2
ls -alh /media/HDD0/VMs/ubuntu-mini.qcow2
-rw------- 1 root root 21G mar 31 23:15 /media/HDD0/VMs/ubuntu-mini.qcow2
qcow2 파일을 복사하는 올바른 방법은 무엇입니까? "cp" 명령에 2,7G만 복사할 수 있는 스위치가 있나요?
답변1
파일은부족한, 이는 하나 이상의 "구멍"이 포함되어 있음을 의미합니다. 홀에서 데이터를 읽을 때 0이 반환되지만 이러한 0은 디스크에 저장되지 않고 파일 시스템에 의해 생성됩니다.
이 기능은 대부분 0으로 구성된 대용량 파일을 저장할 때 실제 하드 드라이브 공간을 절약합니다. 유틸리티 ls
는 겉보기 파일 크기를 보고하지만 du
파일의 겉보기 크기에서 파일에 있는 구멍의 크기(즉, 파일이 디스크에서 사용하는 공간의 양)를 뺀 값을 표시합니다.
파일을 복사할 때 cp
파일의 사용 가능한 부분은 유지되지 않으며 구멍은 0으로 채워집니다.
GNU 시스템에서 구멍이 충분히 크면 파일을 복사할 때 희소성을 유지하기 위해 --sparse=auto
또는 --sparse=always
플래그를 사용할 수 있습니다. cp
일부 BSD 시스템(적어도 OpenBSD)에서는 cp
기본적으로 희소 파일의 취약점을 보존하려는 시도가 이루어집니다.
rsync
( ) 옵션을 이용하여 파일을 복사 할 수도 있습니다 .--sparse
-S
구멍이 0(전체 또는 부분)으로 채워지더라도 결과 파일은 기능적으로 원본 파일과 동일하지만 실제 디스크 공간을 더 많이 사용합니다.