У меня была виртуальная машина, которая была перенесена из 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-(kernel version).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
аргумент.