Piix4_SMBus: 000:00:07.3: 主机SMBus控制器总线未启用

我一直在VMware Player上使用Ubuntu;今天当我登录VMware时,它显示有可用的Ubuntu 15.xx更新。我允许更新,并下载了所有的软件包后自动重启,但是却无法再次启动。它一直显示类似以下的错误信息:
Piix4_SMBus: 000:00:07.3: Host SMBus controller bus not enabled
failed to start /etc/rc.local compatibility

请描述一种修复它的方法!

收到的更新是“狡猾的狼人”。 - Murali G
这个问题已经有解决方法了一段时间,但您需要访问Ubuntu安装的“硬盘”来编辑文件/etc/modprobe.d/blacklist.conf并添加行blacklist i2c-piix4。您可以通过从Ubuntu的ISO文件引导虚拟机,并选择“尝试Ubuntu”来完成此操作。 - Charles Green
嗨 Charles,感谢你的快速回复。你能否详细说明一下步骤,因为我在这方面并不是很擅长。我该如何访问Ubuntu安装硬盘?请提供导航。我正在使用VMware Player,并在VMPlayer上安装了Ubuntu。对给你带来的麻烦表示抱歉。 - Murali G
今天我在VMWare Workstation 17下的Debian 13(Trixie)遇到了完全相同的问题,似乎是在安装webcam软件包后出现的。这个答案主要给了我一个窍门! - undefined
5个回答

首先,在您的vmx文件中添加这一行,将启动时间增加到50秒。
bios.bootDelay = "50000"

启动虚拟机,按住左Shift键,然后按Enter键。

在grub菜单中,选择Ubuntu的高级选项 -> 恢复模式。一旦系统启动,选择“Root”进入root shell。

在root shell中,输入以下命令

mount -o remount,rw /
nano /etc/modprobe.d/blacklist.conf

往下走几行(几乎任何地方都可以)然后输入该行
blacklist i2c-piix4

然后按下 ctrl+o 来保存文件,再按下 ctrl+x 最后,输入命令 reboot

1谢谢查尔斯提供详细的答案。我已经解决了第一个问题。我几乎要大喊“欧里卡”,但它还没有启动:-(,还有一个问题未解决,错误:无法启动/etc/rc.local兼容性,请查看“sstemctl status rc-local.service”以获取详细信息。请求您提供宝贵的解决方案。感谢您的时间和耐心。 - Murali G
很抱歉听到持续的问题。 - Charles Green
是的...希望一切都能在你提供的解决方案中得到解决。但是黑名单 i2c-piix4 对我来说是一个很好的学习机会。你清晰明了的答案帮助我解决了这个问题。 - Murali G
你在更新之前有没有碰巧移除虚拟机上的vmtools? - Charles Green
第二个问题,如果您在机器上执行 systemctl status rc-local.service,会发生什么? - Charles Green
最初我没有连接到虚拟机的互联网。因此,我安装了vmtools,然后互联网连接正常。由于互联网连接正常,我获得了更新并执行了更新操作。当我输入命令systemctl status rc-local.service时,我得到了以下结果: 已加载:已加载(/lib/systemd/system/rc-local/service;static;vendor preset:enabled) 附加项:/lib/systemd/system/rc-local/service.d debian.conf 活动状态:非活动(已停止) - Murali G
嗯,我看不出有什么错误,但这已经超出了我能提供帮助的范围。 - Charles Green
没问题,查尔斯。非常感谢你的支持。祝你周末愉快。 - Murali G
我想在论坛上请求有人帮助我。我已经尝试通过浏览各种论坛来解决这个问题,但是没有成功。请帮忙关闭这个事情,非常需要你的支持。 - Murali G
1@MuraliG 你可能需要提出一个单独的问题,并尝试在VMware社区论坛上进行交叉发布。 - Charles Green
@MuraliG 我找到了另一个与此相关的Ubuntu论坛,其中有一个问题涉及使用rc.local来加载vmtools并引起问题。请尝试以下操作:首先按照上述步骤进入恢复模式,然后执行cd /etc,接着执行mv rc.local rc.local.old,再执行touch rc.localchmod 755 rc.local。然后重新启动计算机。这将把您当前的rc.local文件复制到另一个文件中,并创建一个新的、空的rc.local文件。 - Charles Green
嗨 Charles,当我试图将 rc.local 移动到 rc.local.old 时,我收到了错误信息“无法移动,只读文件系统”。我应该更改权限吗?请指导一下。非常感谢你的回复。 - Murali G
啊 - 你忘记了 mount -o remount,rw / 这部分 - 当你进入恢复模式时,你的电脑默认是只读模式... - Charles Green
亲爱的查尔斯,我尝试了上述的选项,但还是没有运气。我也在VMware论坛上发布了这个问题。https://communities.vmware.com/message/2552370#2552370。我也附上了截图供你参考。 - Murali G
我知道这篇帖子很旧了,但我遇到了同样的问题。当我按照@CharlesGreen所说的做时,我的Ubuntu可以启动,但是过了一段时间(当我使用它时),它就会卡住。我该如何解决这个问题?请帮帮我 :) - H.Ghassami
@H.Ghassami 我真心希望你能找到解决问题的办法。我不再使用VMWare,而是使用KVM/QEMU来托管虚拟机。也许你可以在VMware社区论坛上搜索并发布你的问题,获得一些帮助。 - Charles Green
在 macOS 上,VMware Ubuntu 64 位 18.04 无法正常工作。 - Gürol Canbek
1在编辑blacklist.conf后,我还需要运行update-initramfs -u来更新initramfs。 - TimD1
@TimD1 我觉得你不应该这样做,但我已经很久没有使用VMWare了! - Charles Green
我也不得不运行update-initramfs -u,结果发现我在/etc/fstab中犯了一个小错误 - 我将根挂载点从/改为了/i - 可能是在vi编辑器中按下了i键 :) 当update-initramfs -u抱怨找不到要引导的磁盘时,我知道要检查/etc/fstab;将/i中的i删除,重新运行update-initramfs -u(这次确实需要设置正确的根/引导分区),一切都正常工作了。同时还将i2c-piix4列入黑名单,我现在怀疑这不是最初的问题,只是在启动过程中出现的一个(现在已修复的)错误。 - Roel Van de Paar
我知道这个论坛是与Ubuntu相关的,但是如果有人在Debian(13)下遇到了和我一样的问题,需要追加的文件略有不同:/etc/modprobe.d/intel-microcode-blacklist.conf - undefined


首先,通过记事本打开您的VMware文件夹中的*.vmx文件。然后在文件中添加这一行并保存。
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:1010:0101"

问题将会被解决。

1这个选项对我有效,但只能使用一个CPU - 必须减少CPU的数量,然后它才能工作。现在我可以在/etc/modprobe.d中禁用smbus。我尝试从grub中加入黑名单,但没有一个有效 - OpenSUSE Tumbleweed 20180124 - 谢谢! - AveryFreeman
没对我有效。 - dafnahaktana

尽管我迟到了,但你其他问题的解决方案(如在对查尔斯·格林的回答后面的评论中所述,“无法启动/etc/rc.local兼容性”等)很可能是(至少对我而言)清除旧的不兼容的vmhgfs(共享虚拟机磁盘)设置/模块,因为它们会破坏一些东西。

首先,如果存在版本不匹配等情况,该模块不会加载。从/etc/modules中删除vmhgfs,现在init应该正常运行。

其次,如果您为vmhgfs添加了一个fstab条目,systemd-fstab-generator会为其生成一个systemd启动任务,也会导致systemctl单元失败。在fstab中注释或删除您的vmhgfs行,并从/run/systemd/generator中删除相关的mnt-*.mount(例如mnt-vmhgfs.mount)文件。这样应该可以解决问题的第二部分。

我通过进入安全模式并运行清理程序成功解决了这个问题。
编辑:
在重新启动虚拟机时按住Shift键,然后在grub菜单中选择“高级选项”。然后在该菜单中运行“clean”命令。

你能否编辑你的回答并提供更多关于如何进入安全模式和运行清理的详细信息? - storm