我有一个从VMWare迁移过来的VM,我已经通过引导到Live、挂载和检查文件系统来确认磁盘是预期的。
系统也在一定程度上启动,但是过了一段时间,它放弃了尝试,转到了一个“dracut”终端,我已经阅读了/run/initramfs/rdsosreport.txt中的日志,并看到了以下内容:
Hyper-V Virtual Machine detected, ATA device ignore set在终端中,我还看到一个错误,即/dev/disk/by-uuid/{uuid here}不可用。在Ubuntu时,我确实检查了错误、/etc/fstab和所有与blkid输出相匹配的UUID。
我还完成了CentOS的干净安装,这是正常引导的,所以几乎可以肯定的是迁移的安装。
对不起,如果这没有给出足够的继续,如果有人需要任何具体的信息,我会尽我最大的努力用它更新这个问题。
如果有帮助,我正在运行Windows 10,版本1903,构建10.0.18941.1001 (这是Hyper报告的版本)。
发布于 2019-08-08 00:34:40
我相信您将需要重建initramfs文件/boot/initramfs-(kernel version).img,因为虚拟硬件的更改。CentOS内核用于虚拟磁盘访问的模块可能有所不同。请遵照下列指示:
/mnt/sysimage上dracut重建initramfs:# chroot /mnt/sysimage dracut --no-hostonly --force --regenerate-all --verbose# touch /mnt/sysimage/.autorelabelInitramfs是一个文件系统映像,引导加载程序在加载内核之后并在将执行上下文切换到它之前将其提取到内存中。这样的映像应该包含内核查找包含根文件系统的块设备所需的所有模块。我不知道Hyper虚拟机需要哪些模块;如果您能够自己找到它们,可以告诉dracut使用--add-drivers参数将它们添加到重建的initramfs中。
发布于 2023-04-25 16:32:45
此问题是由ata_piix中的默认设置引起的。
如果检测到HyperV硬盘,则驱动程序假定IDE是不必要的,并禁用端口。若要重写此操作,可以设置内核参数:ata_piix.prefer_ms_hyperv=0
来源:https://github.com/torvalds/linux/blob/master/drivers/ata/ata_piix.c#L1572
在此之后,操作系统应该启动,您可以重新构建您的linux映像,以包括HyperV驱动程序。
https://serverfault.com/questions/977586
复制相似问题