Ventoy 기반의 지능형 멀티 부팅 USB 제작 도구 구현 가이드

멀티 부팅 솔루션의 진화: 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 환경을 다루는 엔지니어에게 최적의 워크플로우를 제공합니다.

태그: Ventoy python Bootable USB ISO automation

5월 22일 06:32에 게시됨