VM 이미지 디스크를 수정할 때 사용하는 도구 3가지 `guestmount`, `virt-edit`, `losetup + kpartx` 방식의 장단점과 차이점
By 때찌때찌맴매 - 4월 02, 2025
VM 이미지 디스크 수정 도구 비교 (Proxmox 기준)
1. guestmount
게스트 VM 이미지를 실제 디렉토리처럼 마운트해서 내부 파일을 직접 편집할 수 있는 도구. libguestfs 기반으로 작동하며, 파일시스템 전체 접근이 가능하다.
사용 예시:guestmount -a /path/to/vm.qcow2 -i /mnt/vm
장점:
- 디렉토리 마운트 방식이라 직관적이며 vi 등으로 수정 가능
- /etc, /var 등 내부 전체 파일 접근 가능
- 파일 복사, rsync, 백업 등 다양한 작업 가능
- guestunmount 명령으로 간편하게 마운트 해제
- 대용량 이미지에서는 속도 저하 발생 가능
- SELinux, ACL 복원 실패 가능성 있음
- FUSE, 커널 모듈 의존성 있음 (환경에 따라 제한)
2. virt-edit
VM 이미지 내부의 텍스트 설정 파일을 빠르게 수정할 수 있는 도구. libguestfs 기반이며, 마운트 없이 특정 파일을 직접 편집할 수 있다.
사용 예시:virt-edit -a /path/to/vm.qcow2 /etc/hostname
장점:
- 디스크를 마운트하지 않고도 설정 파일 수정 가능
- 매우 빠르고 간단하게 작동
- 수정 전 백업 파일(.orig) 자동 생성
- 루트 권한 없이도 사용 가능
- 한 번에 하나의 파일만 수정 가능
- sed 스타일의 텍스트 치환 방식만 사용 가능
- 바이너리 파일은 수정 불가
3. losetup + kpartx
디스크 이미지를 루프백 장치로 연결한 뒤 파티션 구조를 인식하고 직접 마운트해서 수정하는 방식. 보다 시스템 수준에서의 접근이 가능하다.
사용 예시:
losetup -fP /path/to/vm.raw
kpartx -av /dev/loopX
mount /dev/mapper/loopXp1 /mnt/vm
장점:
kpartx -av /dev/loopX
mount /dev/mapper/loopXp1 /mnt/vm
- 가장 낮은 레벨에서의 마운트 방식 (정확성 ↑)
- 복잡한 파티션 구조도 문제없이 접근 가능
- 어떤 리눅스 환경에서도 범용적으로 사용 가능
- 명령어가 복잡하고 과정이 길다
- loop 장치 해제 실수 시 디스크 손상 가능
- qcow2 포맷은 사전 변환 필요 (raw 또는 nbd 사용)
요약 비교표
도구 | 추천 상황 | 장점 | 단점 |
---|---|---|---|
guestmount | 파일 여러 개 수정, 전체 접근 | 직관적, 전체 파일 접근 가능 | 느림, FUSE 등 의존성 있음 |
virt-edit | 빠른 설정 변경 (IP, hostname 등) | 빠름, 마운트 불필요, 백업 자동 | 텍스트 파일 하나만 수정 |
losetup + kpartx | 정밀 제어, 멀티 파티션 접근 | 정확성, 복잡한 구조 대응 | 복잡함, 실수 위험 |
추천 사용 기준
- 설정 파일 몇 개만 빠르게 수정 → virt-edit
- SSH 키 추가, 다수 설정 수정 → guestmount
- 파티션 구조 확인 + 정밀 수정 → losetup + kpartx
0 개의 댓글