我无法使用Hyper-V按照此处https://laravel.com/docs/5.7/homestead所提供的说明去宅基地启动。最初的问题是计算机无法启动,只会无限期挂起。解决此问题后,在我完成vagrant up命令之前,我又遇到了2个问题。
我不是100%肯定是在此处发布此内容的正确位置,但是我已经花了大约2周的时间来尝试解决此问题,如果其他人遇到类似的问题,希望我可以节省一些时间。我可以使用virtual-box来使用宅基,但是在我的PC上没有运行Hyper-V极为不便,因此我卸载了virtual-box并尝试使用Hyper-V来设置宅基。对我来说,虚拟机根本无法启动。当我在Hyper-V管理器中查看它时,它只是在启动时挂起。原来是将其设置为第1代盒,并将驱动器连接为IDE。对我来说,解决方案是创建新一代的2 VM,并使用SCSI连接提供的驱动器。然后,我禁用了安全启动,并且能够启动。然后,它在配置脚本尝试挂载默认的无用共享时失败。我无法弄清楚如何修改此调用,因此据我所知,最终它被禁用,因为它不需要宅基地。然后,我的第三个问题是无法在homestead.yaml文件中挂载任何用户定义的共享。对此进行了一些搜索,发现我需要使用该脚本似乎无法提供选择的其他参数来进行此调用。我修改了脚本,并且成功完成了vagrant up命令的操作。以下是我采取的步骤的详细信息。如果有更简单的方法可以使用Hyper-V使Vagrant Homestead运行,那么我将不胜感激。
问题1:无法启动
描述:问题似乎是试图使用IDE控制器作为第一代引导。对于Windows 10 Pro安装,这似乎不起作用。
解决方案:
1. Created a new VM using Generation 2 and attached the existing
"ubuntu-18.04-amd64.vhdx" to it using SCSI.
2. Boot this VM and then shutdown.
3. Turn off secure boot
4. Replace the Virtual machine files in [VagrantInstallFolder]\boxes\laravel-VAGRANTSLASH-homestead\6.4.0\hyperv with the new ones created above.
5. Delete newly created box from HyperV
问题2:将不会挂载默认的Vagrant共享
错误消息: ==> homestead-7:机器已启动并准备就绪! 没有为NFS同步文件夹实现提供有效ID 修剪。这是Vagrant的内部错误,应该解决一个问题 提起。
说明:在尝试挂载默认vagrant共享时,vagrant up命令失败。我发现没有方法可以覆盖此调用的参数,因此它始终尝试使用Windows不支持的nfs进行调用。如果可以覆盖此呼叫设置,那么这将是首选方法。但是,我想出的让配置脚本继续执行的唯一方法是禁用此共享。
解决方案:
1. Modify the scripts\homestead.rb file and add the code below to the
Hyper V config settings section "Configure A Few Hyper-V Settings". This
will disable the default file share but you can still add your own from
the homestead.yaml file after completion of issue 3.
#Disable the default Vagrant file share
config.vm.synced_folder ".", "/vagrant", disabled: true
问题3:homestead.yaml文件中的用户定义共享仍然错误。
错误消息:
无法在Linux guest虚拟机中安装文件夹。这通常是因为 “ vboxsf”文件系统不可用。请确认 来宾添加项已正确安装在来宾中,并且 可以正常工作。尝试的命令是:
mount -t cifs -o vers = 3,credentials = / etc / smb_creds_vgt-96269f65d23acb279735d26264428995-66f0bd5cbca4d218f5f0b8a5f1712727,uid = 1000,gid = 1000,nolock,udp,noatime / 192.168.bf6f4a7a6a0f7a7b0f6a7e0b7a0b0f0b7e0b7e0b7e0b7e0b7a0e0f7a7b0b0e0f0b7c0法国国立大学学报/ 2015年1月29日-192.168.1269a6a6a0f7b7a0b0b0f0f7b0b0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7d全球交易交易平台/ vagrant / code
最后一条命令的错误输出是:
安装错误(22):无效的参数 请参阅mount.cifs(8)手册页(例如man mount.cifs)
说明:尝试将用户定义的共享装入homestead.yaml文件时,vagrant up命令失败。挂载似乎正在将不需要的参数传递给mount命令。我们需要覆盖scripts \ homestead.rb文件中的mount调用,以不使用任何参数。
解决方案:
1. In the "Register All Of The Configured Shared Folders" section replace the line below.
Replace
config.vm.synced_folder folder['map'], folder['to'], type: folder['type'] ||= nil, **options
With
config.vm.synced_folder folder['map'], folder['to'], type: "smb"
2. Then run "vagrant up --provider hyperv"