Я пытаюсь перенести компьютер с Linux на виртуальную машину, работающую в XenServer. Обычно я просто создаю образ загрузочного диска (/ dev / sda) с помощью dd и использую его для перезаписи пустого образа виртуального диска. К сожалению, загрузочный диск довольно большой, поэтому я создал только образ загрузочного раздела (/ dev / sda1) размером всего около 250 ГБ. Затем я создал новый виртуальный диск объемом 500 ГБ, подключил его к существующей виртуальной машине Linux (/ dev / xvdc), разбил его на разделы для создания основного раздела (/ dev / xvdc1) и добавил к нему образ раздела.
Я мог смонтировать этот раздел. Файлы оказались там, где я ожидал их, но, конечно, отсутствовал загрузочный код grub.
Итак, я использовал метод, описанный в Как chroot Ubuntu с помощью Live CD, чтобы исправить запрос восстановления GRUB для установки grub на / dev / xvdc.
$ sudo su
$ mount /dev/sdax /mnt/newroot
$ mount ‐‐bind /dev /mnt/newroot/dev
$ mount ‐‐bind /proc /mnt/newroot/proc
$ mount ‐‐bind /sys //mnt/newroot/sys
$ chroot /mnt/newroot
$ grub-install /dev/xvdc
Вроде нормально работает, сообщений об ошибках не выводилось.
Теперь я подключил новый виртуальный диск к новой виртуальной машине в качестве единственного диска и попытался загрузить его. Нет такой удачи. Я не получаю ни сообщений об ошибках, ни приглашения grub, он просто запускается, а затем останавливается.
РЕДАКТИРОВАТЬ: появилось сообщение об ошибке, я просто пропустил его:
"The Bootloader for this VM returned an error -- did the VM installation
succeed? INVALID_SOURCE
cdrom repo
/dev/sm/backend/[some long number, probably a GUID]
Что мне здесь не хватает?
РЕДАКТИРОВАТЬ: подключение виртуального диска к существующей виртуальной машине Linux решило проблему. Я заставил его загрузиться с этого диска, сделал полную копию этой виртуальной машины и, наконец, вернул оригинал обратно на исходный загрузочный диск.
Остается вопрос: почему XenServer настаивал на загрузке с несуществующего DVD?