Верно, Xen - это первое, что загружается. На обычном ПК он либо загружается через GRUB, либо напрямую через EFI. Когда вы начинаете с существующей установки, такой как установка Mint, она становится Dom0, а ее ядро загружается в паравиртуализированном режиме.
Предполагая, что диск, содержащий систему старого ПК, физически подключен к хосту KVM, вы можете сделать что-то вроде этого:
Используйте virsh
или virt-manager
для создания виртуальной машины с файлом образа диска соответствующего размера -И ISO, содержащим хороший аварийный компакт-диск (Я использую clonezilla или gparted для таких вещей.Подойдет любая хорошая "живая" система. Лучше не использовать ISO-образ установщика для любого дистрибутива ).
Пока НЕ подключайте физический жесткий диск к виртуальной машине.
Загрузите систему, используя образ ISO. Разделите и отформатируйте виртуальный диск (, который, вероятно, будет /dev/vda
в виртуальной машине )по мере необходимости. Смонтируйте его как/target
(и другие разделы, если они есть, под/target
)
На хосте KVM подключите физический диск, содержащий старую систему, к виртуальной машине с помощью команды virsh attach-disk
. В вашем вопросе недостаточно подробностей, чтобы дать вам даже приблизительную строку команды -, но запустите virsh help attach-disk
для сводки параметров. В итоге получится что-то вроде:
virsh attach-disk vmname /dev/sdX /dev/vdb --targetbus sata
, где /dev/sdX
— физический диск, /dev/vdb
— устройство, которое будет видно виртуальной машине, а целевая шина — sata, scsi или даже virtio.
Вернувшись к виртуальной машине, смонтируйте раздел ОС, который вы хотите виртуализировать, как /source
и любые другие разделы под ним. Монтируйте их все, читайте -только с mount -o ro /dev/vdbN /target/XXXXX
для защиты от опечаток/ошибок.
rsync -a /source/ /target
(замыкание /
на /source/
важно)
umount
все под /source
. он вам больше не нужен.
for i in proc dev sys dev/pts ; do mount -o bind /$i /target/$i done
Это гарантирует, что все системные псевдо -файловые системы, которые grub-install
и другие инструменты (, например. lsblk
илиblkid
)должны быть связаны -и видимы внутри chroot
, которые мы собираемся ввести на следующем шаге.
chroot /target
отредактируйте /etc/fstab
, чтобы настроить записи монтирования для использования новых имен блочных устройств (или меток, или UUID ).
Здесь вы можете изменить другие параметры, например конфигурацию сети, или оставить эти элементы на потом, когда будет запущена основная система. Я бы посоветовал сделать копию любых крупных изменений, которые вы вносите, на случай, если с первого раза все пойдет не так, и вам придется попробовать еще раз. Альтернативно,просто запишите, что вы изменили, чтобы вы знали, что нужно сделать, если вам придется начать все сначала.
grub-install /dev/vda
exit
#выйти из chroot и вернуться в оболочку на образе аварийного компакт-диска.
for i in proc dev/pts dev proc sys; do umount /target/$i ; done
umount
все под/target
На хосте KVM отсоедините дополнительный диск с помощью virsh detach-disk
.
Теперь вы сможете перезагрузить виртуальную машину. Возможно, вам придется указать ему загружаться с жесткого -диска вместо виртуального «CD -ROM» образа ISO.