<p><script type="application/ld+json"><span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "Миграция с VMware на Proxmox: пошаговый плейбук",
"description": "Пошаговая миграция виртуальных машин с VMware на Proxmox. Экспорт VMDK, qm importdisk, VirtIO-драйвера для Windows, конвертация сети, параллельный запуск и откат.",
"totalTime": "PT120M",
"supply": [
{"@type": "HowToSupply", "name": "Proxmox VE 8.x"},
{"@type": "HowToSupply", "name": "VMware ESXi/vSphere"},
{"@type": "HowToSupply", "name": "VirtIO-ISO драйвера"}
],
"tool": [
{"@type": "HowToTool", "name": "SSH / SCP"},
{"@type": "HowToTool", "name": "Web-интерфейс Proxmox"}
]
}
</script></p>
"Быстрый
<ol>
<li>Выключи ВМ в VMware.</li>
<li>Установи VirtIO-драйвера на Windows-гостя до миграции.</li>
<li>Экспортируй диск в VMDK. Скопируй на <a class="wpil_keyword_link" title="Виртуализация" href="https://it-apteka.com/category/virtualise/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="3146">Proxmox</a> через SCP.</li>
<li>Создай пустую ВМ в Proxmox без диска.</li>
<li>Импортируй VMDK через qm importdisk.</li>
<li>Прикрепи диск к ВМ.</li>
<li>Поменяй сетевой адаптер с e1000 на VirtIO.</li>
<li>Запусти. Если <a class="wpil_keyword_link" title="Windows Server" href="https://it-apteka.com/category/windows-server/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="3145">Windows</a> упал в BSOD 7B — значит, VirtIO-драйвер не стоял.</li>
<li>Верни машину в VMware, поставь драйвер, повтори.</li>
<li>Для отката оставь исходную ВМ выключенной первые 48 часов.<br />
</li>
</ol>
<h2>1. Диагноз</h2>
<p>Миграция с vmware на proxmox. Broadcom купил VMware, цены взлетели, лицензии сгорели. Знакомо?</p>
<p>Сидишь на vSphere 6.7, все работает. Потом приходит письмо: «Ваше соглашение истекает, продлите за сумму, от которой у директора глаза на лоб лезут». Ты открываешь прайс Broadcom и понимаешь, что проще купить машину, чем продлить лицензию на три хоста. Коллеги начинают шептать про Proxmox. Бесплатный. Открытый. На KVM. Ты качаешь ISO, ставишь гипервизор, а потом понимаешь: а как перенести двадцать виртуалок без остановки бизнеса?</p>
<p>В этой статье разберем пошаговый плейбук. Получишь рабочий процесс, который прошел через десяток продакшенов. Время миграции одной ВМ — от 30 минут до часа. Нужен работающий Proxmox, исходный VMware и немного терпения.</p>
<p>Вот что будет внутри:</p>
<ul>
<li>Подготовка Windows-гостя — почему VirtIO-драйвера ставятся до, а не после</li>
<li>Экспорт VMDK из VMware</li>
<li>qm importdisk — импорт диска в Proxmox</li>
<li>Конвертация сетевого адаптера e1000 в VirtIO</li>
<li>Проверка загрузки и первичная диагностика</li>
<li>Параллельный запуск — как не потерять данные</li>
<li>Откат — если что-то пошло не так</li>
</ul>
<p>Если базовая настройка Proxmox еще не сделана, начни с нее. А для сегментации <a class="wpil_keyword_link" title="Сети" href="https://it-apteka.com/category/networks/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="3143">сети</a> смотри статью про VLAN.</p>
<h2>2. Причины</h2>
<p>Почему миграция с VMware на Proxmox превращается в ад? Разберем по факту.</p>
<h3>Broadcom поднял цены в 5-10 раз</h3>
<p>Старые лицензии VMware по упрощенной модели исчезли. Новые пакеты стоят как новый сервер. Для SMB это смертный приговор. Proxmox стоит ноль рублей за лицензию. Поддержка стоит денег, но она опциональна. Когда бюджет режут, а виртуалки нужны, выбор очевиден.</p>
<h3>Windows падает в BSOD при смене контроллера диска</h3>
<p>VMware эмулирует LSI Logic или VMware Paravirtual. Proxmox по умолчанию предлагает VirtIO. Windows без драйвера VirtIO видит новый контроллер и паникует. INACCESSIBLE_BOOT_DEVICE. Синий экран. Переустановка не нужна, но машину придется возвращать в VMware, ставить драйвер, потом повторять миграцию. Это как забыть выпить таблетку перед операцией.</p>
<h3>Сетевой адаптер e1000 не оптимален для Proxmox</h3>
<p>В VMware многие ВМ сидят на e1000 или e1000e. Это эмуляция Intel. В Proxmox VirtIO-net дает в разы больше throughput и меньше latency. Но простая смена адаптера в настройках приводит к «Сетевой кабель не подключен» внутри гостя. Потому что Windows не знает про VirtIO-net, пока не поставит драйвер.</p>
<h3>VMDK и QCOW2 — разные форматы</h3>
<p>VMware хранит диски в VMDK. Proxmox предпочитает QCOW2 или RAW. Неправильный импорт приводит к копированию вместо конвертации, и диск занимает весь выделенный объем, а не только использованный. На тонких дисках разница — в десятки гигабайт.</p>
<h3>Лицензии Windows привязаны к железу</h3>
<p>VMware предоставляет свои BIOS и UUID. Proxmox предоставляет другие. Windows может потребовать переактивации. В корпоративной среде с KMS это не проблема. На розничных лицензиях — головная боль.</p>
<h3>Отсутствие плана отката</h3>
<p>Админ мигрирует ВМ, удаляет исходную из VMware, через день обнаруживает, что в Proxmox не работает специфичное ПО. Вернуться некуда. Бэкап на ленте, восстановление — сутки. План отката должен быть готов до начала миграции, а не после.</p>
<h2>3. Рецепт</h2>
<h3>Подготовка</h3>
<p>Перед тем как трогать продакшен, проверь окружение. Потеряешь виртуалку с бухгалтерией в пятницу вечером — будешь работать всю ночь.</p>
<table style="border-collapse: collapse; width: 100%;" border="1" cellspacing="0" cellpadding="8">
<tbody>
<tr style="background: #f1f5f9;">
<th style="text-align: left;">Параметр</th>
<th style="text-align: left;">Требование</th>
</tr>
<tr>
<td>Proxmox VE</td>
<td>8.x (на момент публикации актуальна 8.2. Перед установкой проверь свежие релизы на <a href="https://www.proxmox.com/en/downloads" target="_blank" rel="noopener">proxmox.com</a>)</td>
</tr>
<tr>
<td>VMware</td>
<td>ESXi 6.5+ или vSphere / Workstation</td>
</tr>
<tr>
<td>Место на хранилище</td>
<td>Минимум 1.5x от размера VMDK для конвертации</td>
</tr>
<tr>
<td>Сеть</td>
<td>SCP/SSH между VMware-хранилищем и Proxmox</td>
</tr>
<tr>
<td>VirtIO-ISO</td>
<td>Скачай с <a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/" target="_blank" rel="noopener">fedorapeople.org</a></td>
</tr>
</tbody>
</table>
<p>Таблица портов:</p>
<table style="border-collapse: collapse; width: 100%;" border="1" cellspacing="0" cellpadding="8">
<tbody>
<tr style="background: #f1f5f9;">
<th style="text-align: left;">Порт</th>
<th style="text-align: left;">Протокол</th>
<th style="text-align: left;">Назначение</th>
<th style="text-align: left;">Доступен снаружи</th>
</tr>
<tr>
<td>22</td>
<td>TCP</td>
<td>SSH / SCP — передача дисков</td>
<td>Только локально</td>
</tr>
<tr>
<td>8006</td>
<td>TCP</td>
<td>Proxmox Web UI</td>
<td>Только локально</td>
</tr>
<tr>
<td>443</td>
<td>TCP</td>
<td>VMware vSphere Web Client</td>
<td>Только локально</td>
</tr>
<tr>
<td>902</td>
<td>TCP</td>
<td>VMware Console</td>
<td>Нет</td>
</tr>
</tbody>
</table>
<p>Архитектура миграции:</p>
<pre class="mermaid">%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["VMware ESXi"] --> B["ВМ Windows/Linux"]
B --> C["Экспорт VMDK"]
C --> D["SCP на Proxmox"]
D --> E["Proxmox VE"]
E --> F["qm importdisk"]
F --> G["Конвертация в QCOW2"]
G --> H["Запуск ВМ"]
H --> I["Проверка загрузки"]
I --> J["Отключение VMware ВМ"]
style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style B fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style E fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style H fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#c2410c
style J fill:#f8fafc,stroke:#ef4444,stroke-width:2px,color:#b91c1c
</pre>
<h3>Шаг 1. Бэкап и снапшот</h3>
<p>Сначала снапшот. Всегда. Даже если «я точно знаю, что делаю». Особенно если точно знаешь.</p>
<p>В VMware создай снапшот ВМ перед любыми действиями.</p>
<pre><code class="language-bash">
# В vSphere Client
# ПКМ по ВМ -> Снапшоты -> Создать снапшот
</code></pre>
<p>Результат: если что-то пойдет не так, откатишься за минуту.</p>
<h3>Шаг 2. Установка VirtIO-драйверов на Windows-гостя</h3>
<p>Вот тут важно. Этот шаг делается в VMware, до миграции. Пропустишь — получишь BSOD 7B при первой загрузке в Proxmox.</p>
"Критично
<br />
VirtIO-драйвера должны стоять в госте до миграции. Windows не загрузится сVirtIO-контроллером без предустановленного драйвера. Это не рекомендация. Это требование.<br />
<p>Скачай VirtIO-ISO на хост VMware и подключи к ВМ как CD-ROM.</p>
<pre><code class="language-bash">
# В vSphere
# ПКМ по ВМ -> Изменить настройки -> CD/DVD -> Подключить ISO
# Укажи путь к virtio-win.iso
</code></pre>
<p>Внутри <a title="Диагностика проблем с диском в Windows: шпаргалка IT-инженера" href="https://it-apteka.com/diagnostika-problem-s-diskom-v-windows-shpargalka-it-inzhenera/" target="_blank" rel="noopener" data-wpil-monitor-id="3137">Windows открой диск</a>, запусти установщик. Или обнови драйвера вручную через Диспетчер устройств.</p>
<pre><code class="language-bash">
# Внутри Windows
# Диспетчер устройств -> Действие -> Установить старое устройство
# Добавь устройство -> Контроллеры запоминающих устройств -> Red Hat VirtIO SCSI
</code></pre>
<p>Также установи VirtIO Ethernet Adapter. Потом пригодится.</p>
<pre><code class="language-bash">
# Диспетчер устройств -> Сетевые адаптеры -> Действие -> Установить старое устройство
# Сетевой адаптер -> Red Hat VirtIO Ethernet Adapter
</code></pre>
<p>Результат: Windows знает про VirtIO SCSI и VirtIO NET. Можно менять контроллер диска и сетевую карту без синего экрана.</p>
<h3>Шаг 3. Выключение ВМ и экспорт VMDK</h3>
<p>Выключи ВМ чисто. Не suspend, не pause. Полное выключение. Иначе файловая система останется в грязном состоянии.</p>
<p>В vSphere экспортируй диск. Есть два пути: через Datastore Browser или через ovftool.</p>
<p>Простой путь — Datastore Browser:</p>
<pre><code class="language-bash">
# vSphere Client -> Хранилище -> Datastore -> Обзор
# Найди папку ВМ, скачай .vmdk файл
</code></pre>
<p>Если ВМ на тонком диске, скачай оба файла: descriptor и flat.</p>
<p>Путь через ovftool (если есть доступ к vCenter):</p>
<pre><code class="language-bash">
ovftool vi://user:pass@vcenter.local/Datacenter/vm/MyVM /tmp/myvm.ova
</code></pre>
<p>Результат: VMDK-файл на локальной машине или в сетевой папке.</p>
<h3>Шаг 4. Копирование VMDK на Proxmox</h3>
<p>Используй SCP. Если диск большой, займет время. На 500 ГБ тонкого диска — около часа по гигабиту.</p>
<pre><code class="language-bash">
scp /path/to/disk.vmdk root@proxmox-ip:/var/lib/vz/images/
</code></pre>
<p>Если диск очень большой, используй rsync с прогрессом.</p>
<pre><code class="language-bash">
rsync -avP --progress /path/to/disk.vmdk root@proxmox-ip:/var/lib/vz/images/
</code></pre>
<p>Результат: VMDK лежит на Proxmox в хранилище.</p>
<h3>Шаг 5. Создание пустой ВМ в Proxmox</h3>
<p>Зайди в Web UI Proxmox. Создай новую ВМ. Главное — не создавай диск на этом этапе. Мы импортируем существующий.</p>
<pre><code class="language-bash">
# В Web UI
# Создать ВМ -> ID: 100 -> Имя: migrated-vm
# ОС: Do not use any media
# Система: Default
# Диск: не подключать
# CPU: скопируй с VMware
# Память: скопируй с VMware
# Сеть: VirtIO, мост vmbr0
</code></pre>
<p>Результат: пустая ВМ с ID 100 создана. Диска пока нет.</p>
<h3>Шаг 6. Импорт диска через qm importdisk</h3>
<p>Вот звезда нашего шоу. qm importdisk конвертирует VMDK в формат хранилища Proxmox и прикрепляет к ВМ.</p>
"Важно"
<br />
Укажи правильное хранилище. local-lvm использует LVM-thin и требует импорта в формат RAW. local с директорией принимает QCOW2.<br />
<p>Для хранилища типа Directory (например, local):</p>
<pre><code class="language-bash">
qm importdisk 100 /var/lib/vz/images/disk.vmdk local --format qcow2
</code></pre>
<p>Для LVM-thin хранилища:</p>
<pre><code class="language-bash">
qm importdisk 100 /var/lib/vz/images/disk.vmdk local-lvm
</code></pre>
<p>Команда сама сконвертирует VMDK в нужный формат. Для LVM-thin это будет RAW. Для Directory — QCOW2.</p>
<p>Проверь, что диск появился в неиспользуемых устройствах ВМ.</p>
<pre><code class="language-bash">
qm config 100
</code></pre>
<p>Увидишь строку вида unused0: local:100/vm-100-disk-0.qcow2.</p>
<p>Результат: диск импортирован и привязан к ВМ, но еще не подключен.</p>
<h3>Шаг 7. Подключение диска и настройка контроллера</h3>
<p>Прикрепи импортированный диск к ВМ через Web UI или CLI.</p>
<pre><code class="language-bash">
# В Web UI
# Hardware -> Unused Disk 0 -> Edit
# Bus/Device: SCSI -> Controller: VirtIO SCSI
# Cache: Write back (если был на VMware)
# Добавить
</code></pre>
<p>Или через CLI:</p>
<pre><code class="language-bash">
qm set 100 --scsi0 local:100/vm-100-disk-0.qcow2,cache=writeback
</code></pre>
<p>Удали CD-ROM, если он мешает загрузке. Или перемести его вниз списка загрузки.</p>
<pre><code class="language-bash">
qm set 100 --boot order=scsi0
</code></pre>
<p>Результат: диск подключен как VirtIO SCSI. Загрузка пойдет с него.</p>
<h3>Шаг 8. Конвертация сетевого адаптера</h3>
<p>В VMware ВМ скорее всего сидела на e1000 или e1000e. В Proxmox мы создали VirtIO. Если шаг 2 выполнен правильно, Windows увидит новую карту и подхватит драйвер.</p>
<p>Проверь настройки сети в ВМ:</p>
<pre><code class="language-bash">
qm config 100 | grep net
</code></pre>
<p>Должно быть:</p>
<pre><code class="language-text">
net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0,firewall=1
</code></pre>
<p>Если там e1000, поменяй на virtio.</p>
<pre><code class="language-bash">
qm set 100 --net0 virtio,bridge=vmbr0
</code></pre>
<p>Результат: сетевая карта VirtIO. Драйвер уже стоит в Windows.</p>
<h3>Шаг 9. Первый запуск и проверка</h3>
<p>Запусти ВМ через Web UI. Открой консоль (noVNC или SPICE).</p>
<pre><code class="language-bash">
qm start 100
</code></pre>
<p>Наблюдай за загрузкой. Если Windows загрузился — отлично. Если BSOD 7B — значит, VirtIO SCSI драйвер не был установлен. Вернись к шагу 2.</p>
<p>После загрузки проверь:</p>
<ul>
<li>Диски видны? Открой Управление дисками.</li>
<li>Сеть работает? Пингуй шлюз.</li>
<li>IP получен по DHCP или статика на месте?</li>
</ul>
<p>Результат: ВМ загружена в Proxmox. Базовая функциональность проверена.</p>
<h3>Шаг 10. Установка QEMU Guest Agent</h3>
<p>QEMU Guest Agent нужен для корректного выключения, снапшотов и отображения IP в Web UI. Установи его внутри гостя.</p>
<p>Для Windows — скачай и установи из VirtIO-ISO:</p>
<pre><code class="language-bash">
# Внутри Windows
# Открой диск virtio-win
# qemu-ga-x86_64.msi
</code></pre>
<p>Для <a class="wpil_keyword_link" title="Linux" href="https://it-apteka.com/category/linux/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="3144">Linux</a>:</p>
<pre><code class="language-bash">
apt install qemu-guest-agent
systemctl enable qemu-guest-agent
systemctl start qemu-guest-agent
</code></pre>
<p>Результат: Proxmox видит IP-адрес ВМ в summary. Выключение происходит чисто.</p>
<h3>Шаг 11. Параллельный запуск</h3>
<p>Не выключай исходную ВМ в VMware сразу. Оставь ее выключенной, но не удаляй. Первые 24-48 часов держи возможность быстрого отката.</p>
<p>Схема параллельного запуска:</p>
<pre class="mermaid">%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["VMware ВМ - ВЫКЛЮЧЕНА"] --> B["Proxmox ВМ - ВКЛЮЧЕНА"]
B --> C["Проверка 24-48 часов"]
C --> D{"Все работает?"}
D -->|Да| E["Удалить VMware ВМ"]
D -->|Нет| F["Выключить Proxmox ВМ"]
F --> G["Включить VMware ВМ"]
G --> H["Откат за 5 минут"]
style A fill:#f8fafc,stroke:#ef4444,stroke-width:2px,color:#b91c1c
style B fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style E fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style H fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#c2410c
</pre>
<p>Результат: если в Proxmox что-то сломалось, включаешь VMware ВМ обратно. Бизнес не страдает.</p>
<h3>Шаг 12. Откат</h3>
<p>Если миграция не удалась:</p>
<ol>
<li>Выключи ВМ в Proxmox.</li>
<li>Включи исходную ВМ в VMware.</li>
<li>Проверь, что она загружается.</li>
<li>Убедись, что сеть и сервисы на месте.</li>
</ol>
<p>Удали неудачную ВМ из Proxmox, если она больше не нужна:</p>
<pre><code class="language-bash">
qm stop 100
qm destroy 100
</code></pre>
<p>Результат: бизнес вернулся к исходному состоянию. Время отката — 5 минут.</p>
<h2>4. Проверка</h2>
<p>Мигрировал? Проверь всё, прежде чем позвонить директору.</p>
<h3>Проверка диска</h3>
<pre><code class="language-bash">
qm config 100
</code></pre>
<p>Убедись, что scsi0 указывает на импортированный диск. Размер должен совпадать с исходным.</p>
<h3>Проверка загрузки</h3>
<pre><code class="language-bash">
qm status 100
</code></pre>
<p>Статус running. Консоль показывает экран загрузки без BSOD.</p>
<h3>Проверка сети</h3>
<p>Внутри гостя:</p>
<pre><code class="language-bash">
ipconfig /all
ping 8.8.8.8
</code></pre>
<p>Должен быть IP из нужной подсети. Пинг до интернета проходит.</p>
<h3>Проверка производительности диска</h3>
<p>В Windows:</p>
<pre><code class="language-bash">
winsat disk
</code></pre>
<p>Сравни с показателями в VMware. На VirtIO SCSI должно быть не хуже, а лучше.</p>
<h3>Проверка снапшотов</h3>
<pre><code class="language-bash">
qm snapshot 100 post-migration clean=yes
</code></pre>
<p>Снапшот должен создаться без ошибок. QEMU Guest Agent должен быть запущен.</p>
<h3>Проверка отката</h3>
<p>Выключи Proxmox ВМ. Включи VMware ВМ. Убедись, что она загружается. Это финальная проверка перед удалением исходной.</p>
<h2>5. Осложнения</h2>
<h3>Ошибка: Windows BSOD 7B INACCESSIBLE_BOOT_DEVICE</h3>
<p>Причина: VirtIO SCSI драйвер не установлен в госте до миграции. Windows не может загрузиться с неизвестного контроллера.</p>
<p>Решение: верни ВМ в VMware. Загрузись. Установи драйвер из VirtIO-ISO. Перезагрузись в VMware, убедись, что драйвер работает. Повтори миграцию.</p>
<h3>Ошибка: Сеть не работает после миграции</h3>
<p>Причина: VirtIO NET драйвер не установлен. Или MAC-адрес изменился, и DHCP выдал другой IP. Или статическая конфигурация привязана к старому адаптеру e1000.</p>
<p>Решение: проверь драйвер в Диспетчере устройств. Если адаптер не опознан, установи драйвер с VirtIO-ISO. Если IP не тот, очисти кэш DHCP или пропиши статику заново.</p>
<h3>Ошибка: qm importdisk падает с ошибкой «Failed to import disk»</h3>
<p>Причина: VMDK поврежден. Или это тонкий диск, а ты скопировал только descriptor без flat-файла. Или не хватает места на хранилище.</p>
<p>Решение: проверь целостность VMDK.</p>
<pre><code class="language-bash">
qemu-img check /var/lib/vz/images/disk.vmdk
</code></pre>
<p>Проверь свободное место:</p>
<pre><code class="language-bash">
df -h /var/lib/vz/
</code></pre>
<p>Если тонкий диск, убедись, что скачал оба файла: disk.vmdk и disk-flat.vmdk.</p>
<h3>Ошибка: Лицензия Windows слетела</h3>
<p>Причина: смена виртуального железа. Windows видит новый BIOS, новый диск, новую сетевую карту. OEM-лицензия привязана к старому железу VMware.</p>
<p>Решение: если у тебя KMS в домене, переактивация произойдет автоматически. Если розничная лицензия, придется ввести ключ заново или звонить в Microsoft. Для корпоративных сред настрой KMS до миграции.</p>
<h3>Ошибка: Медленная производительность диска</h3>
<p>Причина: диск импортирован как IDE или SATA вместо VirtIO SCSI. Или кэш не настроен.</p>
<p>Решение: проверь bus у диска.</p>
<pre><code class="language-bash">
qm config 100 | grep scsi
</code></pre>
<p>Должно быть scsi0, а не ide0 или sata0. Поменяй через Web UI или CLI.</p>
<pre><code class="language-bash">
qm set 100 --scsi0 local:100/vm-100-disk-0.qcow2,cache=writeback
</code></pre>
<h3>Ошибка: Linux-гость не видит сеть</h3>
<p>Причина: в Linux имена интерфейсов привязаны к MAC-адресу. Смена адаптера с e1000 на virtio создает новый интерфейс ens19 вместо ens160. Старый конфиг netplan или /etc/network/interfaces не применяется.</p>
<p>Решение: обнови конфигурацию сети на новое имя интерфейса.</p>
<pre><code class="language-bash">
ip link show
</code></pre>
<p>Найди новый интерфейс. Обнови netplan.</p>
<pre><code class="language-bash">
nano /etc/netplan/00-installer-config.yaml
</code></pre>
<h2>6. Альтернативы</h2>
<h3>Импорт OVA через ovftool</h3>
<p>Можно экспортировать ВМ из VMware в формат OVA и импортировать в Proxmox через qm importovf. Это работает, но OVA часто тащит <a title="Настройка IKEv2 VPN сервера на Ubuntu 24.04: StrongSwan без лишних клиентов" href="https://it-apteka.com/kakoj-vpn-server-ustanovit-na-ubuntu-dlja-nativnogo-podkljuchenija/" target="_blank" rel="noopener" data-wpil-monitor-id="3139">лишние устройства и настройки</a> BIOS, которые Proxmox не понимает. Ручной импорт VMDK через qm importdisk дает больше контроля. OVA подходит для массовой миграции, когда руками ковырять каждую ВМ лень.</p>
<h3>Live-миграция через shared storage</h3>
<p>Если у тебя есть общее хранилище, подключенное и к VMware, и к Proxmox, можно скопировать VMDK без выключения ВМ. Но Proxmox не умеет читать VMFS напрямую. Нужен промежуточный NFS или iSCSI. Для одноразовой миграции это оверкилл. Для сотен машин — имеет смысл.</p>
<h3>Backup/Restore через Veeam</h3>
<p>Veeam <a class="wpil_keyword_link" title="Резервное копирование" href="https://it-apteka.com/category/rezervnoe-kopirovanie/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="3142">Backup</a> поддерживает restore в Proxmox? Нет, не поддерживает напрямую. Можно сделать backup в VMware, восстановить как файлы, потом импортировать VMDK. Это добавляет шагов, но дает проверенный backup перед миграцией. Если у тебя уже есть Veeam, используй его для создания снапшота перед миграцией.</p>
<h3>Установка с нуля</h3>
<p>Самый чистый способ. Новая ВМ в Proxmox, установка ОС с ISO, перенос данных через backup приложений. Но это требует времени простоя и ручной настройки. Если ВМ — это просто сервер приложений с настроенным окружением, миграция диска быстрее. Если ВМ — это Windows с кучей легаси-софта, миграция диска — единственный реалистичный вариант.</p>
<h2>7. Профилактика</h2>
<h3>Снапшоты перед миграцией</h3>
<p>Делай снапшот в VMware перед каждой миграцией. Делай снапшот в Proxmox сразу после успешного импорта. Два снапшота — две точки отката. Паранойя в наше время — не порок.</p>
<pre><code class="language-bash">
qm snapshot 100 pre-production clean=yes
</code></pre>
<h3>Документирование конфигурации</h3>
<p>Запиши исходные параметры ВМ в VMware: CPU, RAM, размер диска, MAC-адрес, сетевые настройки. После миграции сравни. Если что-то не совпадает, ты узнаешь это до звонка пользователя.</p>
<pre><code class="language-bash">
vim-cmd vmsvc/getallvms
vim-cmd vmsvc/get.summary
</code></pre>
<h3>Тестовая миграция</h3>
<p>Перед боевой миграцией прогони процесс на копии. Склонируй ВМ в VMware, мигрируй клон, проверь загрузку. Если клон работает — боевую мигрируй с уверенностью. Время на тестовую миграцию окупается сторицей.</p>
<h3>Мониторинг после миграции</h3>
<p>Первые 48 часов следи за:</p>
<ul>
<li>Загрузкой CPU в Proxmox</li>
<li>I/O wait диска</li>
<li>Сетевыми ошибками на VirtIO</li>
<li>Логами Windows/Linux на предмет новых ошибок</li>
</ul>
<pre><code class="language-bash">
qm monitor 100
info status
</code></pre>
<h3>Резервное копирование</h3>
<p>Настрой proxmox-backup-client или vzdump сразу после миграции.</p>
<pre><code class="language-bash">
vzdump 100 --mode snapshot --compress zstd --storage local
</code></pre>
<p>Что бэкапить: конфиг ВМ, диск, снапшоты. Как часто: ежедневно для прода, еженедельно для тестов. Где хранить: отдельный NAS или PBS. Как восстановить: qmrestore или через Web UI.</p>
<h3>Обновление VirtIO-драйверов</h3>
<p>VirtIO-драйвера обновляются регулярно. Следи за новыми версиями на <a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/" target="_blank" rel="noopener">fedorapeople.org</a>. Обновляй раз в квартал. Новые версии содержат фиксы производительности и совместимости.</p>
<h2>8. FAQ</h2>
<h3>Почему Windows не грузится после миграции на Proxmox?</h3>
<p>Скорее всего, не установлен VirtIO SCSI драйвер до миграции. <a title="Автомонтирование сетевых дисков: от костылей Windows 7 до изысков Server 2022" href="https://it-apteka.com/avtomontirovanie-setevyh-diskov-ot-kostylej-windows-7-do-izyskov-server-2022/" target="_blank" rel="noopener" data-wpil-monitor-id="3140">Windows не может обратиться к диску</a> через новый контроллер и падает в BSOD 7B. Верни ВМ в VMware, установи драйвер с VirtIO-ISO, перезагрузись, убедись, что диск виден через VirtIO контроллер, потом повтори миграцию.</p>
<h3>Как проверить что миграция прошла успешно?</h3>
<p>Три проверки. ВМ загружается без ошибок. Сеть работает, IP корректный. Диски видны и данные на месте. Плюс проверь приложения: если это сервер 1С, открой базу. Если это терминал, залогинься. Если все три пункта ок — миграция успешна.</p>
<h3>Что делать если появился BSOD 7B?</h3>
<p>Не паникуй. Выключи ВМ в Proxmox. Включи исходную ВМ в VMware. Загрузись. Установи VirtIO-драйвер. Перезагрузись. Убедись, что Windows видит диск через VirtIO. Выключи. Повтори миграцию с шага 3. BSOD 7B — это не приговор, это напоминание о шаге 2.</p>
<h3>Чем Proxmox лучше VMware для SMB?</h3>
<p>Цена. Proxmox бесплатен. Поддержка стоит денег, но она опциональна. Открытый код. Нет vendor lock-in. KVM под капотом — стандарт де-факто в Linux. ZFS из коробки. LXC контейнеры рядом с ВМ. Для малого и среднего бизнеса это оптимальный баланс функциональности и стоимости.</p>
<h3>Нужно ли переактивировать Windows после миграции?</h3>
<p>Если у тебя <a title="VAMT (Volume Activation Management Tool): централизованное управление MAK и KMS активациями в домене" href="https://it-apteka.com/vamt-volume-activation-management-tool/" target="_blank" rel="noopener" data-wpil-monitor-id="3138">KMS или Volume</a> License — нет, активация восстановится автоматически при подключении к домену. Если розничная OEM-лицензия — скорее всего, да. Windows привязывается к виртуальному железу. Смена гипервизора меняет железо. Запасись ключом или свяжись с Microsoft для повторной активации.</p>
<h3>Можно ли мигрировать без остановки ВМ?</h3>
<p>Нет, если используешь qm importdisk. Диск должен быть консистентным. Для live-миграции нужна общая storage между VMware и Proxmox, что на практике редко. Делай миграцию в обеденный перерыв или ночью. Снапшот в VMware позволит откатиться, если что-то пойдет не так.</p>
<h2>9. Прогноз</h2>
<p>Ты прошел миграцию с vmware на proxmox. Установил VirtIO-драйвера до миграции, экспортировал VMDK, импортировал через qm importdisk, сконвертировал сетевой адаптер в VirtIO. Windows загрузился без синего экрана. Сеть работает. Данные на месте.</p>
<p>Исходная ВМ в VMware остается выключенной на случай отката. Первые 48 часов ты следишь за логами. Потом удаляешь старую ВМ и освобождаешь лицензии VMware. Broadcom больше не диктует тебе цены. Proxmox работает. Бюджет сэкономлен.</p>
<p>Если не заработало — пиши в комментарии, разберемся. Прикладывай вывод qm config и скриншот BSOD если он есть. Без этого диагностика превращается в гадание на кофейной гуще.</p>
<p>А если нужно разделить сети гостей и сотрудников на новом Proxmox, смотри статью про VLAN. Один кабель, четыре сети, никто никому не мешает.</p>
Быстрый ответ
- Выключи ВМ в VMware.
- Установи VirtIO-драйвера на Windows-гостя до миграции.
- Экспортируй диск в VMDK. Скопируй на Proxmox через SCP.
- Создай пустую ВМ в Proxmox без диска.
- Импортируй VMDK через qm importdisk.
- Прикрепи диск к ВМ.
- Поменяй сетевой адаптер с e1000 на VirtIO.
- Запусти. Если Windows упал в BSOD 7B — значит, VirtIO-драйвер не стоял.
- Верни машину в VMware, поставь драйвер, повтори.
- Для отката оставь исходную ВМ выключенной первые 48 часов.
1. Диагноз
Миграция с vmware на proxmox. Broadcom купил VMware, цены взлетели, лицензии сгорели. Знакомо?
Сидишь на vSphere 6.7, все работает. Потом приходит письмо: «Ваше соглашение истекает, продлите за сумму, от которой у директора глаза на лоб лезут». Ты открываешь прайс Broadcom и понимаешь, что проще купить машину, чем продлить лицензию на три хоста. Коллеги начинают шептать про Proxmox. Бесплатный. Открытый. На KVM. Ты качаешь ISO, ставишь гипервизор, а потом понимаешь: а как перенести двадцать виртуалок без остановки бизнеса?
В этой статье разберем пошаговый плейбук. Получишь рабочий процесс, который прошел через десяток продакшенов. Время миграции одной ВМ — от 30 минут до часа. Нужен работающий Proxmox, исходный VMware и немного терпения.
Вот что будет внутри:
- Подготовка Windows-гостя — почему VirtIO-драйвера ставятся до, а не после
- Экспорт VMDK из VMware
- qm importdisk — импорт диска в Proxmox
- Конвертация сетевого адаптера e1000 в VirtIO
- Проверка загрузки и первичная диагностика
- Параллельный запуск — как не потерять данные
- Откат — если что-то пошло не так
Если базовая настройка Proxmox еще не сделана, начни с нее. А для сегментации сети смотри статью про VLAN.
2. Причины
Почему миграция с VMware на Proxmox превращается в ад? Разберем по факту.
Broadcom поднял цены в 5-10 раз
Старые лицензии VMware по упрощенной модели исчезли. Новые пакеты стоят как новый сервер. Для SMB это смертный приговор. Proxmox стоит ноль рублей за лицензию. Поддержка стоит денег, но она опциональна. Когда бюджет режут, а виртуалки нужны, выбор очевиден.
Windows падает в BSOD при смене контроллера диска
VMware эмулирует LSI Logic или VMware Paravirtual. Proxmox по умолчанию предлагает VirtIO. Windows без драйвера VirtIO видит новый контроллер и паникует. INACCESSIBLE_BOOT_DEVICE. Синий экран. Переустановка не нужна, но машину придется возвращать в VMware, ставить драйвер, потом повторять миграцию. Это как забыть выпить таблетку перед операцией.
Сетевой адаптер e1000 не оптимален для Proxmox
В VMware многие ВМ сидят на e1000 или e1000e. Это эмуляция Intel. В Proxmox VirtIO-net дает в разы больше throughput и меньше latency. Но простая смена адаптера в настройках приводит к «Сетевой кабель не подключен» внутри гостя. Потому что Windows не знает про VirtIO-net, пока не поставит драйвер.
VMDK и QCOW2 — разные форматы
VMware хранит диски в VMDK. Proxmox предпочитает QCOW2 или RAW. Неправильный импорт приводит к копированию вместо конвертации, и диск занимает весь выделенный объем, а не только использованный. На тонких дисках разница — в десятки гигабайт.
Лицензии Windows привязаны к железу
VMware предоставляет свои BIOS и UUID. Proxmox предоставляет другие. Windows может потребовать переактивации. В корпоративной среде с KMS это не проблема. На розничных лицензиях — головная боль.
Отсутствие плана отката
Админ мигрирует ВМ, удаляет исходную из VMware, через день обнаруживает, что в Proxmox не работает специфичное ПО. Вернуться некуда. Бэкап на ленте, восстановление — сутки. План отката должен быть готов до начала миграции, а не после.
3. Рецепт
Подготовка
Перед тем как трогать продакшен, проверь окружение. Потеряешь виртуалку с бухгалтерией в пятницу вечером — будешь работать всю ночь.
| Параметр |
Требование |
| Proxmox VE |
8.x (на момент публикации актуальна 8.2. Перед установкой проверь свежие релизы на proxmox.com) |
| VMware |
ESXi 6.5+ или vSphere / Workstation |
| Место на хранилище |
Минимум 1.5x от размера VMDK для конвертации |
| Сеть |
SCP/SSH между VMware-хранилищем и Proxmox |
| VirtIO-ISO |
Скачай с fedorapeople.org |
Таблица портов:
| Порт |
Протокол |
Назначение |
Доступен снаружи |
| 22 |
TCP |
SSH / SCP — передача дисков |
Только локально |
| 8006 |
TCP |
Proxmox Web UI |
Только локально |
| 443 |
TCP |
VMware vSphere Web Client |
Только локально |
| 902 |
TCP |
VMware Console |
Нет |
Архитектура миграции:
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["VMware ESXi"] --> B["ВМ Windows/Linux"]
B --> C["Экспорт VMDK"]
C --> D["SCP на Proxmox"]
D --> E["Proxmox VE"]
E --> F["qm importdisk"]
F --> G["Конвертация в QCOW2"]
G --> H["Запуск ВМ"]
H --> I["Проверка загрузки"]
I --> J["Отключение VMware ВМ"]
style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style B fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style E fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style H fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#c2410c
style J fill:#f8fafc,stroke:#ef4444,stroke-width:2px,color:#b91c1c
Шаг 1. Бэкап и снапшот
Сначала снапшот. Всегда. Даже если «я точно знаю, что делаю». Особенно если точно знаешь.
В VMware создай снапшот ВМ перед любыми действиями.
# В vSphere Client
# ПКМ по ВМ -> Снапшоты -> Создать снапшот
Результат: если что-то пойдет не так, откатишься за минуту.
Шаг 2. Установка VirtIO-драйверов на Windows-гостя
Вот тут важно. Этот шаг делается в VMware, до миграции. Пропустишь — получишь BSOD 7B при первой загрузке в Proxmox.
Критично для Windows
VirtIO-драйвера должны стоять в госте до миграции. Windows не загрузится сVirtIO-контроллером без предустановленного драйвера. Это не рекомендация. Это требование.
Скачай VirtIO-ISO на хост VMware и подключи к ВМ как CD-ROM.
# В vSphere
# ПКМ по ВМ -> Изменить настройки -> CD/DVD -> Подключить ISO
# Укажи путь к virtio-win.iso
Внутри Windows открой диск, запусти установщик. Или обнови драйвера вручную через Диспетчер устройств.
# Внутри Windows
# Диспетчер устройств -> Действие -> Установить старое устройство
# Добавь устройство -> Контроллеры запоминающих устройств -> Red Hat VirtIO SCSI
Также установи VirtIO Ethernet Adapter. Потом пригодится.
# Диспетчер устройств -> Сетевые адаптеры -> Действие -> Установить старое устройство
# Сетевой адаптер -> Red Hat VirtIO Ethernet Adapter
Результат: Windows знает про VirtIO SCSI и VirtIO NET. Можно менять контроллер диска и сетевую карту без синего экрана.
Шаг 3. Выключение ВМ и экспорт VMDK
Выключи ВМ чисто. Не suspend, не pause. Полное выключение. Иначе файловая система останется в грязном состоянии.
В vSphere экспортируй диск. Есть два пути: через Datastore Browser или через ovftool.
Простой путь — Datastore Browser:
# vSphere Client -> Хранилище -> Datastore -> Обзор
# Найди папку ВМ, скачай .vmdk файл
Если ВМ на тонком диске, скачай оба файла: descriptor и flat.
Путь через ovftool (если есть доступ к vCenter):
ovftool vi://user:pass@vcenter.local/Datacenter/vm/MyVM /tmp/myvm.ova
Результат: VMDK-файл на локальной машине или в сетевой папке.
Шаг 4. Копирование VMDK на Proxmox
Используй SCP. Если диск большой, займет время. На 500 ГБ тонкого диска — около часа по гигабиту.
scp /path/to/disk.vmdk root@proxmox-ip:/var/lib/vz/images/
Если диск очень большой, используй rsync с прогрессом.
rsync -avP --progress /path/to/disk.vmdk root@proxmox-ip:/var/lib/vz/images/
Результат: VMDK лежит на Proxmox в хранилище.
Шаг 5. Создание пустой ВМ в Proxmox
Зайди в Web UI Proxmox. Создай новую ВМ. Главное — не создавай диск на этом этапе. Мы импортируем существующий.
# В Web UI
# Создать ВМ -> ID: 100 -> Имя: migrated-vm
# ОС: Do not use any media
# Система: Default
# Диск: не подключать
# CPU: скопируй с VMware
# Память: скопируй с VMware
# Сеть: VirtIO, мост vmbr0
Результат: пустая ВМ с ID 100 создана. Диска пока нет.
Шаг 6. Импорт диска через qm importdisk
Вот звезда нашего шоу. qm importdisk конвертирует VMDK в формат хранилища Proxmox и прикрепляет к ВМ.
Важно
Укажи правильное хранилище. local-lvm использует LVM-thin и требует импорта в формат RAW. local с директорией принимает QCOW2.
Для хранилища типа Directory (например, local):
qm importdisk 100 /var/lib/vz/images/disk.vmdk local --format qcow2
Для LVM-thin хранилища:
qm importdisk 100 /var/lib/vz/images/disk.vmdk local-lvm
Команда сама сконвертирует VMDK в нужный формат. Для LVM-thin это будет RAW. Для Directory — QCOW2.
Проверь, что диск появился в неиспользуемых устройствах ВМ.
qm config 100
Увидишь строку вида unused0: local:100/vm-100-disk-0.qcow2.
Результат: диск импортирован и привязан к ВМ, но еще не подключен.
Шаг 7. Подключение диска и настройка контроллера
Прикрепи импортированный диск к ВМ через Web UI или CLI.
# В Web UI
# Hardware -> Unused Disk 0 -> Edit
# Bus/Device: SCSI -> Controller: VirtIO SCSI
# Cache: Write back (если был на VMware)
# Добавить
Или через CLI:
qm set 100 --scsi0 local:100/vm-100-disk-0.qcow2,cache=writeback
Удали CD-ROM, если он мешает загрузке. Или перемести его вниз списка загрузки.
qm set 100 --boot order=scsi0
Результат: диск подключен как VirtIO SCSI. Загрузка пойдет с него.
Шаг 8. Конвертация сетевого адаптера
В VMware ВМ скорее всего сидела на e1000 или e1000e. В Proxmox мы создали VirtIO. Если шаг 2 выполнен правильно, Windows увидит новую карту и подхватит драйвер.
Проверь настройки сети в ВМ:
qm config 100 | grep net
Должно быть:
net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0,firewall=1
Если там e1000, поменяй на virtio.
qm set 100 --net0 virtio,bridge=vmbr0
Результат: сетевая карта VirtIO. Драйвер уже стоит в Windows.
Шаг 9. Первый запуск и проверка
Запусти ВМ через Web UI. Открой консоль (noVNC или SPICE).
qm start 100
Наблюдай за загрузкой. Если Windows загрузился — отлично. Если BSOD 7B — значит, VirtIO SCSI драйвер не был установлен. Вернись к шагу 2.
После загрузки проверь:
- Диски видны? Открой Управление дисками.
- Сеть работает? Пингуй шлюз.
- IP получен по DHCP или статика на месте?
Результат: ВМ загружена в Proxmox. Базовая функциональность проверена.
Шаг 10. Установка QEMU Guest Agent
QEMU Guest Agent нужен для корректного выключения, снапшотов и отображения IP в Web UI. Установи его внутри гостя.
Для Windows — скачай и установи из VirtIO-ISO:
# Внутри Windows
# Открой диск virtio-win
# qemu-ga-x86_64.msi
Для Linux:
apt install qemu-guest-agent
systemctl enable qemu-guest-agent
systemctl start qemu-guest-agent
Результат: Proxmox видит IP-адрес ВМ в summary. Выключение происходит чисто.
Шаг 11. Параллельный запуск
Не выключай исходную ВМ в VMware сразу. Оставь ее выключенной, но не удаляй. Первые 24-48 часов держи возможность быстрого отката.
Схема параллельного запуска:
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["VMware ВМ - ВЫКЛЮЧЕНА"] --> B["Proxmox ВМ - ВКЛЮЧЕНА"]
B --> C["Проверка 24-48 часов"]
C --> D{"Все работает?"}
D -->|Да| E["Удалить VMware ВМ"]
D -->|Нет| F["Выключить Proxmox ВМ"]
F --> G["Включить VMware ВМ"]
G --> H["Откат за 5 минут"]
style A fill:#f8fafc,stroke:#ef4444,stroke-width:2px,color:#b91c1c
style B fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style E fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style H fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#c2410c
Результат: если в Proxmox что-то сломалось, включаешь VMware ВМ обратно. Бизнес не страдает.
Шаг 12. Откат
Если миграция не удалась:
- Выключи ВМ в Proxmox.
- Включи исходную ВМ в VMware.
- Проверь, что она загружается.
- Убедись, что сеть и сервисы на месте.
Удали неудачную ВМ из Proxmox, если она больше не нужна:
qm stop 100
qm destroy 100
Результат: бизнес вернулся к исходному состоянию. Время отката — 5 минут.
4. Проверка
Мигрировал? Проверь всё, прежде чем позвонить директору.
Проверка диска
qm config 100
Убедись, что scsi0 указывает на импортированный диск. Размер должен совпадать с исходным.
Проверка загрузки
qm status 100
Статус running. Консоль показывает экран загрузки без BSOD.
Проверка сети
Внутри гостя:
ipconfig /all
ping 8.8.8.8
Должен быть IP из нужной подсети. Пинг до интернета проходит.
Проверка производительности диска
В Windows:
winsat disk
Сравни с показателями в VMware. На VirtIO SCSI должно быть не хуже, а лучше.
Проверка снапшотов
qm snapshot 100 post-migration clean=yes
Снапшот должен создаться без ошибок. QEMU Guest Agent должен быть запущен.
Проверка отката
Выключи Proxmox ВМ. Включи VMware ВМ. Убедись, что она загружается. Это финальная проверка перед удалением исходной.
5. Осложнения
Ошибка: Windows BSOD 7B INACCESSIBLE_BOOT_DEVICE
Причина: VirtIO SCSI драйвер не установлен в госте до миграции. Windows не может загрузиться с неизвестного контроллера.
Решение: верни ВМ в VMware. Загрузись. Установи драйвер из VirtIO-ISO. Перезагрузись в VMware, убедись, что драйвер работает. Повтори миграцию.
Ошибка: Сеть не работает после миграции
Причина: VirtIO NET драйвер не установлен. Или MAC-адрес изменился, и DHCP выдал другой IP. Или статическая конфигурация привязана к старому адаптеру e1000.
Решение: проверь драйвер в Диспетчере устройств. Если адаптер не опознан, установи драйвер с VirtIO-ISO. Если IP не тот, очисти кэш DHCP или пропиши статику заново.
Ошибка: qm importdisk падает с ошибкой «Failed to import disk»
Причина: VMDK поврежден. Или это тонкий диск, а ты скопировал только descriptor без flat-файла. Или не хватает места на хранилище.
Решение: проверь целостность VMDK.
qemu-img check /var/lib/vz/images/disk.vmdk
Проверь свободное место:
df -h /var/lib/vz/
Если тонкий диск, убедись, что скачал оба файла: disk.vmdk и disk-flat.vmdk.
Ошибка: Лицензия Windows слетела
Причина: смена виртуального железа. Windows видит новый BIOS, новый диск, новую сетевую карту. OEM-лицензия привязана к старому железу VMware.
Решение: если у тебя KMS в домене, переактивация произойдет автоматически. Если розничная лицензия, придется ввести ключ заново или звонить в Microsoft. Для корпоративных сред настрой KMS до миграции.
Ошибка: Медленная производительность диска
Причина: диск импортирован как IDE или SATA вместо VirtIO SCSI. Или кэш не настроен.
Решение: проверь bus у диска.
qm config 100 | grep scsi
Должно быть scsi0, а не ide0 или sata0. Поменяй через Web UI или CLI.
qm set 100 --scsi0 local:100/vm-100-disk-0.qcow2,cache=writeback
Ошибка: Linux-гость не видит сеть
Причина: в Linux имена интерфейсов привязаны к MAC-адресу. Смена адаптера с e1000 на virtio создает новый интерфейс ens19 вместо ens160. Старый конфиг netplan или /etc/network/interfaces не применяется.
Решение: обнови конфигурацию сети на новое имя интерфейса.
ip link show
Найди новый интерфейс. Обнови netplan.
nano /etc/netplan/00-installer-config.yaml
6. Альтернативы
Импорт OVA через ovftool
Можно экспортировать ВМ из VMware в формат OVA и импортировать в Proxmox через qm importovf. Это работает, но OVA часто тащит лишние устройства и настройки BIOS, которые Proxmox не понимает. Ручной импорт VMDK через qm importdisk дает больше контроля. OVA подходит для массовой миграции, когда руками ковырять каждую ВМ лень.
Live-миграция через shared storage
Если у тебя есть общее хранилище, подключенное и к VMware, и к Proxmox, можно скопировать VMDK без выключения ВМ. Но Proxmox не умеет читать VMFS напрямую. Нужен промежуточный NFS или iSCSI. Для одноразовой миграции это оверкилл. Для сотен машин — имеет смысл.
Backup/Restore через Veeam
Veeam Backup поддерживает restore в Proxmox? Нет, не поддерживает напрямую. Можно сделать backup в VMware, восстановить как файлы, потом импортировать VMDK. Это добавляет шагов, но дает проверенный backup перед миграцией. Если у тебя уже есть Veeam, используй его для создания снапшота перед миграцией.
Установка с нуля
Самый чистый способ. Новая ВМ в Proxmox, установка ОС с ISO, перенос данных через backup приложений. Но это требует времени простоя и ручной настройки. Если ВМ — это просто сервер приложений с настроенным окружением, миграция диска быстрее. Если ВМ — это Windows с кучей легаси-софта, миграция диска — единственный реалистичный вариант.
7. Профилактика
Снапшоты перед миграцией
Делай снапшот в VMware перед каждой миграцией. Делай снапшот в Proxmox сразу после успешного импорта. Два снапшота — две точки отката. Паранойя в наше время — не порок.
qm snapshot 100 pre-production clean=yes
Документирование конфигурации
Запиши исходные параметры ВМ в VMware: CPU, RAM, размер диска, MAC-адрес, сетевые настройки. После миграции сравни. Если что-то не совпадает, ты узнаешь это до звонка пользователя.
vim-cmd vmsvc/getallvms
vim-cmd vmsvc/get.summary
Тестовая миграция
Перед боевой миграцией прогони процесс на копии. Склонируй ВМ в VMware, мигрируй клон, проверь загрузку. Если клон работает — боевую мигрируй с уверенностью. Время на тестовую миграцию окупается сторицей.
Мониторинг после миграции
Первые 48 часов следи за:
- Загрузкой CPU в Proxmox
- I/O wait диска
- Сетевыми ошибками на VirtIO
- Логами Windows/Linux на предмет новых ошибок
qm monitor 100
info status
Резервное копирование
Настрой proxmox-backup-client или vzdump сразу после миграции.
vzdump 100 --mode snapshot --compress zstd --storage local
Что бэкапить: конфиг ВМ, диск, снапшоты. Как часто: ежедневно для прода, еженедельно для тестов. Где хранить: отдельный NAS или PBS. Как восстановить: qmrestore или через Web UI.
Обновление VirtIO-драйверов
VirtIO-драйвера обновляются регулярно. Следи за новыми версиями на fedorapeople.org. Обновляй раз в квартал. Новые версии содержат фиксы производительности и совместимости.
8. FAQ
Почему Windows не грузится после миграции на Proxmox?
Скорее всего, не установлен VirtIO SCSI драйвер до миграции. Windows не может обратиться к диску через новый контроллер и падает в BSOD 7B. Верни ВМ в VMware, установи драйвер с VirtIO-ISO, перезагрузись, убедись, что диск виден через VirtIO контроллер, потом повтори миграцию.
Как проверить что миграция прошла успешно?
Три проверки. ВМ загружается без ошибок. Сеть работает, IP корректный. Диски видны и данные на месте. Плюс проверь приложения: если это сервер 1С, открой базу. Если это терминал, залогинься. Если все три пункта ок — миграция успешна.
Что делать если появился BSOD 7B?
Не паникуй. Выключи ВМ в Proxmox. Включи исходную ВМ в VMware. Загрузись. Установи VirtIO-драйвер. Перезагрузись. Убедись, что Windows видит диск через VirtIO. Выключи. Повтори миграцию с шага 3. BSOD 7B — это не приговор, это напоминание о шаге 2.
Чем Proxmox лучше VMware для SMB?
Цена. Proxmox бесплатен. Поддержка стоит денег, но она опциональна. Открытый код. Нет vendor lock-in. KVM под капотом — стандарт де-факто в Linux. ZFS из коробки. LXC контейнеры рядом с ВМ. Для малого и среднего бизнеса это оптимальный баланс функциональности и стоимости.
Нужно ли переактивировать Windows после миграции?
Если у тебя KMS или Volume License — нет, активация восстановится автоматически при подключении к домену. Если розничная OEM-лицензия — скорее всего, да. Windows привязывается к виртуальному железу. Смена гипервизора меняет железо. Запасись ключом или свяжись с Microsoft для повторной активации.
Можно ли мигрировать без остановки ВМ?
Нет, если используешь qm importdisk. Диск должен быть консистентным. Для live-миграции нужна общая storage между VMware и Proxmox, что на практике редко. Делай миграцию в обеденный перерыв или ночью. Снапшот в VMware позволит откатиться, если что-то пойдет не так.
9. Прогноз
Ты прошел миграцию с vmware на proxmox. Установил VirtIO-драйвера до миграции, экспортировал VMDK, импортировал через qm importdisk, сконвертировал сетевой адаптер в VirtIO. Windows загрузился без синего экрана. Сеть работает. Данные на месте.
Исходная ВМ в VMware остается выключенной на случай отката. Первые 48 часов ты следишь за логами. Потом удаляешь старую ВМ и освобождаешь лицензии VMware. Broadcom больше не диктует тебе цены. Proxmox работает. Бюджет сэкономлен.
Если не заработало — пиши в комментарии, разберемся. Прикладывай вывод qm config и скриншот BSOD если он есть. Без этого диагностика превращается в гадание на кофейной гуще.
А если нужно разделить сети гостей и сотрудников на новом Proxmox, смотри статью про VLAN. Один кабель, четыре сети, никто никому не мешает.