Initial: PVE VM 원격 제어 가이드 + VirtIO 마이그레이션 함정 분석

- GUIDE.ko.md: VM 원격 제어 (화면 캡처, QGA, qm sendkey, vhd 임포트, DR 이전, 트러블슈팅)
- JOURNEY.md: SATA→VirtIO-SCSI 마이그레이션 실패 연대기 15단계
- 핵심 발견: vioscsi START_TYPE=BOOT_START(0) 승격 필수 (pnputil만으론 부족)
- screenshots: 부팅 검증 화면

검증 환경: PVE 8.1, Win10 Pro 19045, virtio-win 0.1.285
This commit is contained in:
2026-05-19 18:11:26 +09:00
commit bf11a3aeb4
6 changed files with 866 additions and 0 deletions

82
README.md Normal file
View File

@@ -0,0 +1,82 @@
# pve-vm-ops-guide
Proxmox VE에서 Windows/Linux VM을 **원격으로 다루는 실전 가이드** + **SATA → VirtIO-SCSI 디스크 컨트롤러 마이그레이션 함정** 분석.
## ⭐ 이 리포의 핵심 발견
Windows VM의 디스크 컨트롤러를 SATA에서 VirtIO-SCSI로 옮길 때 흔히 부딪치는 BSOD (`0xc0000017` / `0xc0000225`)의 진짜 원인:
```cmd
sc qc vioscsi
> START_TYPE: 3 DEMAND_START ← 이게 문제. boot critical 아님.
```
해결:
```cmd
sc config vioscsi start= boot
```
`pnputil /add-driver`로 드라이버 등록만으로는 **부족**. 서비스를 BOOT_START(0)로 명시 승격해야 winload가 부팅 시점에 vioscsi.sys를 로드한다.
자세한 진단 과정과 다른 잘못된 해결책들의 기록은 [JOURNEY.md](JOURNEY.md) 참조.
---
## 📁 구성
| 파일 | 내용 |
|---|---|
| [GUIDE.ko.md](GUIDE.ko.md) | **본 가이드** — VM 화면 캡처, QGA, qm sendkey, vhd 임포트, virtio-scsi 마이그레이션, DR 이전 |
| [JOURNEY.md](JOURNEY.md) | **실패의 연대기** — 진짜 원인 찾기까지 거친 15단계 |
| [screenshots/](screenshots/) | 부팅 검증 화면 캡처 |
---
## 🎯 가이드가 다루는 것
1. **VM 원격 제어** (Proxmox 호스트 SSH + QEMU monitor + QGA)
- 화면 캡처 (PPM → PNG)
- 게스트 안에서 명령 실행 (`qm guest exec`)
- GUI 키 입력 (`qm sendkey`)
- 사용자 세션 컨텍스트 실행 (QGA + schtasks)
2. **VHD → ZFS raw zvol 변환 + attach**
3. **VirtIO 드라이버 사전 설치 + SATA→SCSI 인터페이스 전환**
4. **VM DR (Disaster Recovery) 이전** — PBS 백업 + 다른 노드 restore
5. **트러블슈팅**
- `WARN: no efidisk configured`
- `GPT PMBR size mismatch`
- BSOD `0xc0000017` / `0xc0000225` (vioscsi boot critical 미설정)
---
## 🛠 검증 환경
- Proxmox VE 8.1.3
- ZFS pool 기반 storage (raw zvol)
- Windows 10 Pro (build 19045)
- virtio-win-0.1.285
- OVMF (UEFI) + machine: pc-i440fx-7.1
---
## 📋 표기 규약
가이드 안 placeholder:
- `<PVE_HOST>` `<PVE_PASSWORD>`: Proxmox 노드 root 접속
- `<SMB_HOST>` `<SMB_USER>` `<SMB_PASSWORD>`: SMB/CIFS 파일 서버
- `<windows_user>`: Windows 게스트 사용자
- VMID 예시는 `101`, zvol 예시는 `vm-101-disk-N` — 본인 환경 값으로 치환
---
## 🤝 기여
같은 함정에 빠진 적 있거나 다른 환경(machine: q35, viostor 기반 부팅, sysprep 이미지 등)에서의 케이스를 추가하고 싶다면 PR/issue 환영.
---
## 📄 라이선스
CC BY 4.0