当前位置: 首页 > Linux

mac下,vagrantbridge,选择“en0-Ethernet”无法启动虚拟机解决方法

时间:2023-04-06 06:53:15 Linux

1.开发环境系统:OSX10.10.5Vagrant版本:vagrant1.7.4虚拟机盒子:vagrant-centos-6-7。box我使用vagrant搭建了一个centOS6.7虚拟机开发环境,用于web开发。Mac电脑使用公司网线上网,即使用网卡“en0:Ethernet”。但是最近我遇到了一个棘手的问题。注:vagrant设置请参考github:https://github.com/astaxie/Go...2.Descriptionpublic_network”,将其他网络设置注释掉。vagrantup启动虚拟机后,我看到以下输出:Bringingmachine'default'with'virtualbox'provider...==>default:Clearinganypreviouslysetnetworkinterfaces...==>default:Availablebridgednetwork接口:1)en0:以太网2)en1:wi-fi(机场)3)en2:thunderbolt14)en3:thunderbolt25)p2p06)awdl07)awdl07)bridge0==>默认值:选择界面时,通常是一个是==>默认值:用于连接到互联网。default:网络应该桥接到哪个接口?因为我是用网线上网,所以选择了1)en0:Ethernet。选择1后,看到如下输出(后面省略了很多报错):==>default:Preparingnetworkinterfacesbasedonconfiguration...default:Adapter1:natdefault:Adapter2:bridged/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/subprocess.rb:28:in`encode':"\xE4"从ASCII-8BIT到UTF-8(Encoding::UndefinedConversionError)from/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/subprocess.rb:28:in‘blockininitialize’from/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/subprocess.rb:28:in`map'3.解决问题仔细查看报错信息:/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/subprocess.rb:28:in`encode':"\xE4"fromASCII-8BITtoUTF-8(Encoding::UndefinedConversionError)-1.当我看到上面的错误报告,我崩溃了,我在谷歌和百度上搜索了半天,都没有找到答案。经过多次测试,发现只有选择1)en0:Ethernet,才会报类似的错误。当我选择其他选项时,虽然没有联网,但也不会报错。这样的错误。我怀疑这可能是编码问题!2.检查第一行错误“subprocess.rb:28:in`encode':"xE4"fromASCII-8BITtoUTF-8(Encoding::UndefinedConversionError)"。可见是代码转换问题。3、根据报错信息,找到文件/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/subprocess.rb4,vim文件,找到第28行可以看到@命令=@command.map{|s|s.encode(Encoding.default_external)}以上是Ruby语法,我不懂ruby,一开始是一头雾水,google了一下ruby编码转换的问题,把上面那行改一下试试,change是如下内容:@command=@command.map{|s|s.force_encoding('UTF-8')}注:不知道ruby对空格有没有严格要求。修改代码两边的大括号保留空格!5.退出保存,重启vagrantup启动虚拟机,再次选择“1)en0:Ethernet发现虚拟机启动正常!问题解决。这应该是vagrant的bug!!