이것은 오늘날의 가상 환경 환경에서 일반적인 질문입니다. 불행히도 그 대답은 생각만큼 간단하지 않습니다.
dd는 명백한 첫 번째 선택이지만, dd는 본질적으로 사본이며 모든 데이터 블록을 작성하도록 강제합니다 (따라서 파일 내용 초기화). 그리고 초기화는 너무 많은 I / O 시간을 차지합니다. (더 오래 걸리고 싶습니까? / dev / zero 대신 / dev / random을 사용하십시오 ! 그러면 CPU와 I / O 시간을 사용하게됩니다!) 결국 dd는 좋지 않은 선택입니다. VM "create"GUI에서 사용되는 기본값). 예 :
dd if=/dev/zero of=./gentoo_root.img bs=4k iflag=fullblock,count_bytes count=10G
잘라내 기는 또 다른 선택이며 아마도 가장 빠를 것입니다. 그러나 "스파 스 파일"을 생성하기 때문입니다. 기본적으로 스파 스 파일은 동일한 데이터가 많은 디스크 섹션이며 기본 파일 시스템은 실제로 모든 데이터를 저장하는 것이 아니라 모든 것이 존재하는 것처럼 "척하는"방식으로 "속임수"입니다. 따라서 truncate를 사용하여 VM에 20GB 드라이브를 만들면 파일 시스템은 실제로 20GB를 할당하지 않지만 디스크에서 트랙 하나만으로도 20GB의 제로가 있다고 속임수로 표시합니다. 실제로 (실제로) 사용 중일 수 있습니다. 예 :
truncate -s 10G gentoo_root.img
fallocate은이다 와 - 마지막 최고 - 선택 . 그것은 본질적으로 "보유"(또는 공간 당신이있는 거 추구하는 모든 "할당은"하지만, 그래서 쓰기 아무것도 귀찮게하지 않기 때문에, VM의 디스크 할당에 사용 fallocate를 사용하여 20GB 가상 드라이브 공간을 만들면 실제로는 "스파 스 파일"이 아닌 20GB 파일을 얻게되며 아무것도 쓰지 않아도됩니다. 새로운 디스크와 같은 종류!) 예 :
fallocate -l 10G gentoo_root.img