我有一台VMWare Redhat机器,需要将机器上的SCSI控制器从LSI Logic Parallel转换为LSI Logic SAS。 我已经通过vmware完成了这个工作,但是现在当这个盒子试图启动的时候,内核崩溃,说它不能挂载/ dev / root
任何人都可以帮助,因为我无法find很多信息,真的不想重build机器。
谢谢
如果是RHEL 5或6,则不要在虚拟机定义中使用两个LSI控制器中的任何一个。 使用半虚拟化存储驱动程序。
有关支持的configuration和迁移过程,请参阅此 VMware知识库文章。
LSI Logic SAS虚拟控制器实际上仅适用于Windows 2008以允许进行群集。 改用其他虚拟控制器之一。
在RHEL 7.x中,这与modprobe.conf不存在有点不同。
在我的情况下,我需要将根磁盘的控制器从Paravirtual更改为LSI Logic SAS。 正如前面的post所示,这需要在两个地方完成,普通磁盘和RamDisk都需要使用新的驱动程序启动。
首先,如果可能,克隆你的机器,不要快照。 无论何时使用磁盘,最好不要涉及快照。 你可能不需要做第二步,我是这么理解的:磁盘控制器如果通过一个额外的磁盘引入到系统中,它就会初始化自己,就像你对Windows所做的那样:第二步 – closures你的虚拟机,使用您想要更改根磁盘的SCSI控制器types附加1 GB磁盘,然后将系统备份到modprobe发现它。 (你可能会这样做很热)第三步 – 运行以下命令将正确的驱动程序添加到RamDisk中(请记住,我正在从VMWare准虚拟机迁移到LSI Logic SAS驱动程序。相反的方式,但您只需要更改驱动程序types:dracut -f -v –add-drivers mptsas
驱动程序的其他选项是:mptspi mptscsih mptbase
这样做后,closures并删除1 GB的临时磁盘。 将根磁盘的控制器更改为刚添加到ramdisk的任何驱动程序,然后启动系统。
问题是,当系统启动时,将从包含某些驱动程序的文件内容创build一个初始RAM磁盘,系统需要继续引导。 如果该初始RAM磁盘文件不包含系统的驱动程序,系统将无法启动。 为了解决这个问题,你需要使用以下过程重buildinitrd文件:
备份你的/etc/modprobe.conf文件,并用下面的代替它里面的任何scsi_hostadapter条目:
别名scsi_hostadapter mptbase别名scsi_hostadapter1 mptspi
创build一个初始的RAM磁盘
如果因为任何原因需要恢复,只需重新启动到救援模式并恢复/etc/modprobe.conf和initrd – *。img文件,然后重启。