Назад | Перейти на главную страницу

/ dev / centos / root не существует после миграции CentOS7 с vmware на Xen

Я переношу систему 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 для аналогичной задачи некоторое время назад. Он поддерживает несколько форматов дисков виртуальных машин и выполняет внутренние исправления оборудования во время преобразования. Существует возможность включить режим восстановления во время преобразования, и он поддерживает пакетную обработку нескольких виртуальных машин. И это бесплатно.

Буквально сэкономил мне много времени. Попробуйте.

Тот же вопрос был на Reddit.

Основная идея - вам нужно регенерировать initrd.

  1. Загрузитесь в linux rescue
  2. Назовите dracut -f в соответствии с Эта статья.

Я знаю, что этот ответ приходит с опозданием, но я подумал, что расскажу, как я это обошел. Я также искал ответ на миграцию виртуальных машин 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) Готово.