본문 바로가기

작업일지/QEMU

Windows에서 qemu의 qow같은 파일 만드는 방법

fsutil을 사용하면 된다. 아래는 fsutil에 대한 설명이다.

fsutil과 스파스(sparse) 파일

 

스파스(sparse) 파일? - NTFS5(Windows 2K)에 추가된 기능

일반 파일에서 사용하는 공간보다 훨씬 적은 디스크 공간을 사용하여 처리되는 파일이다. 스파스 지원을 사용하면 0이 아닌 영역만 디스크 공간을 할당하고 나머지 0인 영역은 할당하지 않음으로써, 디스크 공간을 사용하지 않고도 대용량의 파일을 작성할 수 있다. 예를 들어, 크기가 64GB인 파일에서 0이 아닌 영역이 64KB라면 디스크 할당 크기는 64KB가 되는 것이다. 이는 압축파일 방식처럼 0인 영역의 크기 정보만 가짐으로써, 실제 디스크 공간을 낭비하지 않아도 된다는 것이다.

 

1. 설정

GetVolumeInformation으로 스파스 파일 지원 여부 검색 -> DeviceIoControl 및 제어코드 이용 ::

FSCTL_SET_SPARSE - 새 파일 또는 기존 파일을 스파스로 설정

FSCTL_SET_ZERO_DATA - 0이 될 영역 설정

※ FSCTL_QUERY_ALLOCATED_RANGES - 스파스 파일 내 0이 아닌 영역의 검색 속도 향상

※ 스파스 파일을 읽을 때, os는 0인 영역을 인식하고 0으로 채워진 버퍼 리턴

 

2. 파일 크기 정보

GetCompressedFileSize - 0이 아닌 영역, 즉 실제 디스크에 할당된 크기

GetFileSize - 0인 영역까지 포함하는 파일의 총 크기

 

fsutil(file system utility)?

재분석 지점 관리, 스파스 파일 관리 또는 볼륨 분리와 같은 FAT 및 NTFS 파일 시스템 관련 작업을 수행하며, Administrator 그룹의 구성원으로 로그온해야 한다.

 

하위 명령 목록 ::

behavior, dirty, file, fsinfo, hardlink, objectid, quota, reparsepoint, sparse, usn, volume

 

사용 예 :: 파일을 스파스로 설정

fsutil sparse setflag c:\temp\sample.txt

 

참고

스파스 파일을 FAT 계열 또는 NTFS5 이외의 볼륨으로 복사/이동하면 원래 크기로 생성되므로, 공간이 충분치 않을 경우 실패한다.





'작업일지 > QEMU' 카테고리의 다른 글

Cross-compile QEMU from Linux  (0) 2011.02.13
zlib 컴파일  (0) 2011.01.26
ARM Emulation With QEMU  (0) 2010.11.19
qemu, colinux network 작업  (0) 2010.03.11
QEMU로 ARM에뮬레이팅 하기  (0) 2010.03.01