Wil*_*ins 3 virtualbox laravel homestead macos-catalina
我是一名经验丰富的全栈 Web 开发人员,多年来一直是 Laravel 的 Homestead 的快乐用户,但我在我的新 16 英寸 MacBook Pro 上在 MacOS Catalina 下使用 Laravel Homestead 已经有几个星期了,我只能' t 找出问题所在。发出 后vagrant up
,该进程在 90% 的时间内暂停,等待与 VM 的成功 SSH 连接。
当我通过 VirtualBox 打开虚拟机的显示时,我每次都会看到不同的错误,例如:
/sbin/init: /lib/x86_64-linux-gnu/libselinux.so.1: no version information available (required by /sbin/init)
Run Code Online (Sandbox Code Playgroud)
/sbin/init: /lib/x86_64-linux-gnu/libmount.so.1: version 'BLKID_2.15' not found (required by /lib/x86_64-linux-gnu/libmount.so.1)
Run Code Online (Sandbox Code Playgroud)
/dev/mapper/homestead--vg-root: clean, 197904/3604480 files, 1607396/14397440 blocks
Couldn't find an alternative telinit implementation to spawn.
[ 3.535222] Kernel panic - not syncing: Attempted to kill i
Run Code Online (Sandbox Code Playgroud)
/sbin/init: /lib/x86_64-linux-gnu/libidn.so.11: version 'XZ_5.0' not found (required by /lib/systemd/libsystemd-shared-237.so)
[ 3.388154] Kernel panic - not syncing: Attmpted to kill init! exitcode=0x00000100
Run Code Online (Sandbox Code Playgroud)
[ 4.532862] systemd[395]: /lib/systemd/system-generators/lvm2-activation-generator failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
我在 MacOS 10.15.4 下运行 Vagrant 2.2.7、VirtualBox 6.1.4 r136177。VM 使用的磁盘映像称为 ubuntu-18.04-amd64-disk001.vmdk。
我的 Homestead 配置来自 Mojave 下的一个工作设置,并在 Catalina 下工作,但我不知道是什么改变了阻止它工作。我迁移了两个 Homestead 环境:一个运行我所有简单 PHP 网站的通用环境和一个在 Apache 下运行单个网站的特定于项目的环境(这是一个重型企业应用程序,需要一些特定的配置才能正常工作,所以我将它分开来自我的通用 Homestead 环境)。这曾经工作得很好,但现在两个 Homestead 环境都出现了完全相同的问题。
我有:
.. 但在任何情况下,我都无法获得新安装的 Laravel Homestead 机器,该机器带有新磁盘和新下载的盒子,可以毫无问题地可靠运行。好像十分之一它确实有效,另外十分之九我看到奇怪的错误和内核恐慌(在 VM 内),因为它在发出vagrant up
. 上面的错误只是典型的例子,我什至无法可靠地得到相同的错误。
这让我怀疑 VM 的 I/O 配置有问题,但即使我没有触及任何默认设置,我也会遇到这些问题,但我没有在网上找到其他对 Laravel 有问题的用户MacOS Catalina 上的 Homestead 或新的 16" MacBook Pro。我慢慢地发疯了,不知道还能去哪里找。
小智 6
至少对我来说,解决方案是:问题是 Intel Power Gadget 内核扩展。卸载它,VirtualBox Linux 客户端 VM 内核恐慌应该会停止。
我最近遇到了一些非常相似的事情(Vagrant 2.2.7,VirtualBox 6.1.4 r136177 在 MacOS 10.15.4 下在 2018 年末 i5 MacBook Air 下,Homestead for Laravel 和 Chassis for WordPress 网站)。尝试了我能找到的所有旧版本的 VirtualBox 和 Vagrant,重新安装了 macOS(尽管各种尝试降级 Mojave 都没有成功)。浪费了大量时间,这让我无法完成任何开发工作。
没有任何效果,这令人气愤:每次我运行vagrant up
虚拟机时,启动时总是内核恐慌,即使我确实设法在恐慌后以某种方式连接到它们,vagrant ssh
但它们总是坏了——运行sudo -s; apt-get update && apt-get upgrade
将无法下载包,或者无法安装,以奇怪的方式,他们不会响应网络请求等。
所以我最终在想:在 macOS 上有什么可能把事情搞得这么奇怪?我能想到的只有内核扩展。我没有安装很多:Paragon 的 NTFS 驱动程序(我已经卸载了它),Little Snitch,还有——感谢 iStat Menus 的一些建议,说如果我安装它会更好地进行电源监控——Intel Power Gadget(适用于 MacOS 的 v3.7.0)。
那么,是时候快速测试一下我的 Homestead VM 内核是否出现了恐慌vagrant up
?是的,是的,它确实叹了口气。好的,让我们卸载一些内核模块并再次检查。打开终端并运行sudo -s
成为 root。
现在列出我们所拥有的,不包括 Apple kexts:
bash-3.2# kextstat | grep -v com.apple.
Index Refs Address Size Wired Name (Version) UUID <Linked Against>
163 0 0xffffff7f8446d000 0x4000 0x4000 com.intel.driver.EnergyDriver (3.7.0) 35E739F9-BF6C-3024-A67C-750711B3FB64 <8 6 5 3>
187 0 0xffffff7f8468b000 0x185000 0x185000 at.obdev.nke.LittleSnitch (5470) A938A4D4-0642-39B0-A99E-4FA69C7F9660 <8 6 5 3 1>
188 3 0xffffff7f84810000 0xf1000 0xf1000 org.virtualbox.kext.VBoxDrv (6.1.6) 13AC652B-A2C1-3E8E-809A-7604B284295D <8 6 5 3 1>
191 0 0xffffff7f84919000 0x8000 0x8000 org.virtualbox.kext.VBoxUSB (6.1.6) 60779F27-059F-3030-9302-A74F05246760 <190 188 64 8 6 5 3 1>
196 0 0xffffff7f8493b000 0x5000 0x5000 org.virtualbox.kext.VBoxNetFlt (6.1.6) 018767CF-8706-37EE-B97E-DEC1E0552BED <188 8 6 5 3 1>
197 0 0xffffff7f84940000 0x6000 0x6000 org.virtualbox.kext.VBoxNetAdp (6.1.6) BB0DE95D-8041-32A2-B1D1-9144E531FB07 <188 6 5 1>
Run Code Online (Sandbox Code Playgroud)
所以让我们卸载英特尔能源驱动程序:
bash-3.2# kextunload -b com.intel.driver.EnergyDriver
Run Code Online (Sandbox Code Playgroud)
并检查它是否不再列出:
bash-3.2# kextstat | grep -v com.apple.
Index Refs Address Size Wired Name (Version) UUID <Linked Against>
187 0 0xffffff7f8468b000 0x185000 0x185000 at.obdev.nke.LittleSnitch (5470) A938A4D4-0642-39B0-A99E-4FA69C7F9660 <8 6 5 3 1>
188 3 0xffffff7f84810000 0xf1000 0xf1000 org.virtualbox.kext.VBoxDrv (6.1.6) 13AC652B-A2C1-3E8E-809A-7604B284295D <8 6 5 3 1>
191 0 0xffffff7f84919000 0x8000 0x8000 org.virtualbox.kext.VBoxUSB (6.1.6) 60779F27-059F-3030-9302-A74F05246760 <190 188 64 8 6 5 3 1>
196 0 0xffffff7f8493b000 0x5000 0x5000 org.virtualbox.kext.VBoxNetFlt (6.1.6) 018767CF-8706-37EE-B97E-DEC1E0552BED <188 8 6 5 3 1>
197 0 0xffffff7f84940000 0x6000 0x6000 org.virtualbox.kext.VBoxNetAdp (6.1.6) BB0DE95D-8041-32A2-B1D1-9144E531FB07 <188 6 5 1>
Run Code Online (Sandbox Code Playgroud)
是的,它不再运行了。现在让我们尝试vagrant up
……哇,VM 不再崩溃了!vagrant reload
它仍然很好。我的天啊。所有的时间都浪费了,这是一个该死的kext。
我用我所有的 Chassis WordPress 盒子重新测试,它们也都开始正常,重新启动并再次执行上述操作,并且我的 VM 会一直出现内核恐慌,直到我卸载英特尔能源驱动程序。所以我很确定是 Intel Power Gadget 以某种方式与 VirtualBox 发生冲突并导致 VM 内核崩溃。
不能确定这是否与您遇到的问题相同,但希望以上信息能帮助任何不幸遇到此问题的人,并阻止您再次遇到此问题。