멀티 부팅 솔루션의 진화: Ventoy와 AI의 결합
기존의 부팅 USB 제작 도구들은 하나의 USB에 하나의 OS 이미지(ISO)만 담을 수 있는 경우가 많아, 여러 운영체제를 테스트해야 하는 환경에서는 매번 포맷을 반복해야 하는 번거로움이 있었습니다. Ventoy는 이러한 문제를 해결하여 USB 내에 ISO 파일들을 복사하기만 하면 부팅 시 메뉴를 통해 선택할 수 있게 해줍니다. 본 아티클에서는 AI 플랫폼을 활용해 Ventoy의 기능을 확장하고, 사용자 편의성을 극대화한 지능형 GUI 도구를 개발하는 과정을 다룹니다.
시스템 아키텍처 설계
이 도구는 사용자의 편의성을 고려하여 프론트엔드와 백엔드가 분리된 구조로 설계되었습니다.
- 프론트엔드 (HTML5/JavaScript): ISO 파일 드래그 앤 드롭 업로드, 실시간 작업 진행률 표시, 부팅 메뉴 커스터마이징 인터페이스를 제공합니다.
- 백엔드 (Python): 디스크 파티션 관리, Ventoy CLI 제어, 네트워크를 통한 시스템 이미지 다운로드 및 QEMU 기반의 가상 부팅 검증 로직을 담당합니다.
핵심 기능 구현 상세
1. 스토리지 장치 자동 인식 및 정보 획득
Python의 psutil 라이브러리를 사용하여 연결된 USB 장치를 식별하고 상세 정보를 추출합니다. 운영체제별로 상이한 디스크 경로를 처리하는 로직이 포함됩니다.
import psutil
def get_usb_storage_info():
available_drives = []
for partition in psutil.disk_partitions():
if 'removable' in partition.opts or 'usb' in partition.device.lower():
try:
usage = psutil.disk_usage(partition.mountpoint)
available_drives.append({
"device": partition.device,
"mountpoint": partition.mountpoint,
"total_size": usage.total,
"free_space": usage.free
})
except Exception:
continue
return available_drives
2. 지능형 파티셔닝 알고리즘
단순한 포맷이 아닌, USB의 전체 용량을 분석하여 최적의 비율로 공간을 할당합니다. 예를 들어 64GB 이상의 USB인 경우, 70%는 부팅용 ISO 저장소(ExFAT)로, 나머지 30%는 일반 데이터 백업용 공간으로 자동 분할하도록 설정할 수 있습니다.
3. 부팅 유효성 검증 (QEMU 연동)
제작이 완료된 부팅 디스크를 실제 PC에 꽂아보기 전에 가상 환경에서 테스트합니다. QEMU를 호출하여 GUI 상에 미리보기 화면을 띄워주는 방식입니다.
import subprocess
def verify_boot_image(drive_path):
# QEMU를 사용하여 선택한 드라이브의 부팅 테스트 실행
qemu_cmd = [
"qemu-system-x86_64",
"-m", "512",
"-drive", f"file={drive_path},format=raw,if=virtio",
"-L", "pc-bios"
]
subprocess.Popen(qemu_cmd)
개발 중 직면한 이슈와 해결책
| 문제 상황 | 해결 방안 |
|---|---|
| 대용량 ISO 업로드 시 브라우저 메모리 부족 | File API를 활용한 청크(Chunk) 단위 분할 업로드 구현 |
| OS별 디스크 식별자 불일치 (Windows vs macOS) | 운영체제 감지 후 \\.\PhysicalDrive와 /dev/disk 경로 매핑 로직 추가 |
| 실시간 로그 출력 지연 | WebSocket을 도입하여 백엔드 프로세스의 표준 출력을 즉시 프론트엔드로 전송 |
기대 효과 및 생산성 향상
AI의 도움을 받아 구축한 이 도구는 전통적인 방식에 비해 작업 시간을 대폭 단축시킵니다. 수동으로 미러 사이트를 찾아 다니며 ISO를 다운로드하던 과정을 자동화하고, 한 번의 설정으로 여러 운영체제(Windows 10/11, Ubuntu, CentOS 등)를 통합 관리할 수 있게 되었습니다. 특히 서버 관리자나 다양한 PC 환경을 다루는 엔지니어에게 최적의 워크플로우를 제공합니다.