如何使用Hyper-V让Vagrant Homestead引导

时间:2019-01-06 18:35:50

标签: windows-10 vagrant homestead hyper-v

我无法使用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"

0 个答案:

没有答案