У меня была виртуальная машина, перенесенная из VMWare, я подтвердил, что диск соответствует ожиданиям, загрузившись с Live CD, смонтировав и проверив файловую систему .
Система тоже до некоторой степени загружается, но через некоторое время она перестает пытаться, переходя к терминалу «dracut», я прочитал логи в /run/initramfs/rdsosreport.txt
и увидел следующее:
Hyper-V Virtual Machine detected, ATA device ignore set
В терминале я также увидел ошибку о том, что / dev / disk / by-uuid / {uuid here}
недоступен. Пока я был в Ubuntu, я проверил UUID, перечисленные в ошибке, / etc / fstab
, и все совпало с выводом из blkid
.
Я также сделал чистая установка CentOS, которая загружалась нормально, так что это почти наверняка связано с перенесенной установкой.
Извините, если этого недостаточно для продолжения работы, если кому-то нужна конкретная информация, я сделаю все возможное, чтобы обновите вопрос с его помощью.
Если это поможет, я использую Windows 10, версия 1903, сборка 10.0.18941.1001 (это версия, о которой сообщает Hyper-V).
Я считаю, что вам нужно будет восстановить файл initramfs / boot / initramfs- (версия ядра) .img
из-за изменения виртуального оборудования. Модуль, используемый ядром CentOS для доступа к виртуальному диску, вероятно, отличается. Следуйте этим инструкциям:
/ mnt / sysimage
dracut
для восстановления initramfs: # chroot / mnt / sysimage dracut --no-hostonly - -force --regenerate-all --verbose
# touch /mnt/sysimage/.autorelabel
Initramfs - это образ файловой системы, который загрузчик загрузит извлечь в память после загрузки ядра и до переключения на него контекста выполнения. Ожидается, что такой образ будет содержать все модули, которые потребуются ядру для поиска блочного устройства, содержащего корневую файловую систему. Я не знаю, какие модули нужны для виртуальной машины Hyper-V; если вы можете найти их самостоятельно, вы можете указать dracut
добавить их в восстановленные initramfs, используя аргумент - add-drivers
.