Я переношу систему CentOS 7 с VMware Server 2 на XenServer 6.5. Система CentOS была установлена с использованием минимальной установки. Я использовал ovftool для преобразования файла .vmdk в .img, следуя инструкциям здесь
https://www.mylesgray.com/virtualisation/using-vmwares-ovftool-convert-vmx-ova/
и импортировал это в XenServer с помощью XenCenter. При загрузке я получаю следующие ошибки:
dracut-initqueue[286]: Warning: dracut-initqueue timeout - starting timeout scripts
dracut-initqueue[286]: Warning: /dev/centos/root does not exist
dracut-initqueue[286]: Warning: /dev/centos/swap does not exist
dracut-initqueue[286]: Warning: /dev/mapper/centos-root does not exist
Далее запускается аварийная оболочка.
Я думаю, что проблема в названии устройства на диске. В исходной системе диск находится в / dev / sda. В новой системе это / dev / xvda. Используя установочный диск, я могу загрузиться в режиме восстановления, и он монтирует / mnt / sysimage. Но я не знаю, как решить эту проблему. Единственный файл, который я могу найти, связанный с именем устройства, находится в /mnt/sysimage/boot/grub2/device.map. Я попытался изменить это на
(hd0) /dev/xvda
но это не имело значения. Я предполагаю, что конфигурацию диспетчера логических дисков нужно где-то изменить.
Как я могу это исправить? Мне нужны простые инструкции, так как я не эксперт по Linux, особенно в отношении процесса загрузки.
Я использую конвертер Starwinds V2V https://www.starwindsoftware.com/converter для аналогичной задачи некоторое время назад. Он поддерживает несколько форматов дисков виртуальных машин и выполняет внутренние исправления оборудования во время преобразования. Существует возможность включить режим восстановления во время преобразования, и он поддерживает пакетную обработку нескольких виртуальных машин. И это бесплатно.
Буквально сэкономил мне много времени. Попробуйте.
Основная идея - вам нужно регенерировать initrd.
Я знаю, что этот ответ приходит с опозданием, но я подумал, что расскажу, как я это обошел. Я также искал ответ на миграцию виртуальных машин CentOS7 с XenServer 6.5 на Hyper-V 2016. Я пробовал все, от Starwind до экспорта в виде устройства XVA и преобразования его с помощью XenConvert 2.3.1, но безрезультатно.
Решение на самом деле очень простое и сработало с первого раза: Загрузите этот ISO - https://sourceforge.net/projects/boot-repair-cd/
Шаги высокого уровня, которые я предпринял:
1.) Экспорт виртуальной машины XEN в OVA (или преобразование устройства .xva XEN с помощью любого инструмента, например Starwind)
2.) Создайте НОВУЮ виртуальную машину в Hyper-V и присоедините ранее экспортированный VHD.
3.) Смонтируйте ISO по ссылке выше в DVD / CDROM приводе новой виртуальной машины Hyper-V и загрузитесь с него.
4.) Следуйте инструкциям (NB !!! Убедитесь, что к виртуальной машине подключен сетевой адаптер, который подключается к внешней сети, которая передает DHCP и доступ в Интернет)
5.) Выберите автоматическое восстановление (NB !! на этапе переустановки GRUB вам может потребоваться изменить команду yum, в моем случае мне пришлось использовать - «yum erase grub *» вместо «yum erase grub * -common "
6.) Перезагрузитесь и наслаждайтесь виртуальной машиной Linux, работающей на Hyper-V :)
Причина, по которой вы это видите, связана с тем, что образ ядра initramfs создается для конкретной системы, в которой он работает, поэтому переход на новое оборудование приведет к сбою загрузки.
Пересборка initramfs в аварийном режиме (или переход в режим восстановления):
затем
1) Перечислите имеющиеся у вас образы initramfs:
ls -ltrh /boot/initramfs-*
2) Найдите версию ядра, которую вы используете, и создайте ее резервную копию:
cp -iv /boot/initramfs-3.10.0-1062.el7.x86_64.img /boot/initramfs-3.10.0-1062.el7.x86_64.img.back
3) Восстановите образ ядра для этого конкретного ядра.
dracut -f
4) Выберите новый образ ядра
ls -ltrh /boot/initramfs-*
5) Укажите новую версию ядра (для примера):
dracut -f /boot/initramfs-3.10.0-1062.el7.x86_64.img 3.10.0-1062.el7.x86_64
6) Заходим в конфиг Grub
vim /boot/grub2/grub
7) Удалите старую запись в меню и убедитесь, что новая запись находится в первую очередь
8) Создайте файл конфигурации GRUB
grub-mkconfig
9) Перезагрузка
10) Готово.