Перенёс машину из VMware, и она не загружается: диск на месте, дороги к нему нет

Самый частый отказ после переноса из VMware это не потерянный диск. Это гость, который больше не узнаёт контроллер перед диском, и решение остаётся обратимым на каждом шаге, пока вы меняете по одной вещи за раз.

AtlasPVE ·

Эта статья отвечает на

  • vmware to proxmox inaccessible boot device
  • proxmox импортированная вм не загружается
  • esxi в proxmox миграция ошибка загрузки
  • proxmox перенесённая windows вм синий экран
  • proxmox нет загрузочного устройства после импорта

Импорт завершён, диск в списке, машина стартует, а потом останавливается с сообщением о загрузочном устройстве, до которого не может добраться. Первое чувство: что-то потерялось при преобразовании. Почти всегда ничего не потерялось.

Диск там, где ему положено быть. Изменилась дорога к нему.

Почему так происходит

Виртуальная машина разговаривает не с диском. Она разговаривает с контроллером дисков, а контроллер это часть того, что показывает ей гипервизор. VMware показывал один вид. Proxmox показывает другой.

Это было бы безобидно, если бы гость загружал каждый драйвер, который ему когда-либо может понадобиться. Он этого не делает. Операционная система загружает лишь небольшой набор драйверов до того, как получит доступ к собственному диску, и этот набор был определён в день установки. Если контроллера перед диском в нём нет, гость не видит ничего, с чего можно загрузиться, и говорит об этом единственным доступным способом: загрузочного устройства нет.

То есть симптом указывает на диск, а причина лежит слоем впереди.

Два разных отказа, похожих друг на друга

Их принимают за одну задачу, а это не так.

Загрузочного устройства нет вовсе. Часто дело в прошивке, а не в контроллере. Машина, созданная под EFI, не загрузится под старым BIOS, и наоборот тоже. С диском всё в порядке; машину запускают способом, для которого её никогда не устанавливали.

Загрузка начинается, а потом останавливается с жалобой на загрузочное устройство. Это случай контроллера. Прошивка была верной, загрузчик отработал, а затем ядро не добралось до указанного ему диска.

Различить эти два случая до того, как что-либо трогать, экономит весь день, потому что лечение разное, и применение неправильного добавляет второй симптом поверх первого.

Три вопроса, прежде чем что-то трогать

Диск действительно подключён к машине? Смотрите в конфигурацию машины, а не в хранилище. Импортированный диск может лежать в хранилище и не быть подключённым, и это исправление на две секунды, выглядящее как катастрофа.

Под какой прошивкой эта машина была установлена? Если она пришла из среды EFI, прошивка нужна, и нужно ещё место, где хранить её загрузочные записи.

Есть ли у гостя драйвер нового контроллера вообще? Не «установлен ли он», а «существует ли он внутри этого образа диска». Машина с Windows, которая никогда не встречала контроллер VirtIO, этого драйвера не имеет и не может его скачать, пока не загрузится.

Путь, который остаётся обратимым

Есть два подхода, и они не одинаково безопасны.

Дайте гостю контроллер, который он уже знает. Подключите диск к интерфейсу, который гость поддерживает со дня установки, загрузитесь обычным образом, установите новый драйвер изнутри работающей системы, выключите, и только потом смените контроллер. Каждый шаг маленький, и каждый можно отменить.

Приём, который делает это безболезненным: перед сменой подключите второй, крошечный диск нового типа контроллера. Гость загрузится по старой дороге, увидит незнакомое оборудование и спокойно даст установить для него драйвер. Потом смена настоящего диска пройдёт буднично, потому что драйвер уже на месте.

Внедрить драйвер в образ снаружи. Быстрее и работает, но если не сработает, вам останется разбираться с образом, который теперь отличается от исходного. Это правильный инструмент, когда машин много и рецепт известен. Для первой он неправильный.

⚠️ Меняйте по одной вещи за раз. Прошивка и контроллер вместе это самый частый способ превратить решаемую задачу в неясную: машина по-прежнему не загружается, и теперь подозреваемых двое.

Гости на Linux: та же причина, более тихий симптом

Происходит то же самое и читается иначе. Загрузчик отрабатывает, а потом система останавливается в ожидании корневого устройства, которое так и не появляется. Причина идентична: ранний загрузочный образ собран без драйвера нового контроллера, потому что на прежнем гипервизоре он никогда не был нужен.

Лечение той же формы. Загрузиться со спасательного образа, пересобрать ранний загрузочный образ с драйвером внутри, и только после этого менять контроллер.

Чего делать не надо

Не пересоздавайте машину, чтобы подключить к ней старый диск. У новой машины будет тот же контроллер и тот же результат, и теперь придётся следить за двумя машинами.

Не удаляйте исходную машину пока. Перенос завершён, когда новая загрузилась, сделала настоящую работу и попала в резервную копию. Не когда закончилось копирование.

Не удивляйтесь потом быстрому запуску. Гость Windows, выключенный при включённом быстром запуске, выключается не полностью, поэтому изменение оборудования в таком состоянии встречает систему, которая думает, что продолжает работу, а не начинает её.

Что делает Atlas

Atlas помещает на один экран те две вещи, между которыми живёт эта задача. Вид оборудования машины показывает диск, контроллер, к которому он подключён, и настройку прошивки вместе, поэтому вопрос «что из двух неверно» решается взглядом, а не перебором.

Цепочка ресурсов отвечает и на первый из трёх вопросов напрямую: карта рисует от машины до физического диска, поэтому импортированный, но не подключённый диск заметно отсутствует в цепочке, а не прячется в списке хранилищ.

Перед применением такого изменения Atlas делает снимок, чтобы обратимый путь оставался обратимым, даже если гость отреагирует плохо. Затрагиваемые ресурсы перечисляются до запуска, и именно это делает «по одной вещи за раз» выполнимым, а не просто разумным.

Источники

Собственная документация Proxmox. На английском, и последнее слово в этом вопросе за ней.

Похожие статьи

Как это выглядит внутри Atlas?

Перейти на страницу продукта