今天早上,進入到Homestead目錄,執行vagrant up
,結果報錯:
Bringing machine 'homestead-7' up with 'virtualbox' provider...
==> homestead-7: Checking if box 'lc/homestead' version '8.2.1' is up to date...
Your VM has become "inaccessible." Unfortunately, this is a critical error
with VirtualBox that Vagrant can not cleanly recover from. Please open VirtualBox
and clear out your inaccessible virtual machines or find a way to fix
them.
好吧,再一次出現了這個問題,我決定好好記錄一下這個過程。
縷清思路
我們使用Homestead開發的目的是,使用最高效的方式得到一個快速開發的、可更替的環境。所以解決這個報錯的前提條件是,不能浪費太多時間,也不需要保留這個虛擬機器的資料。
開始解決
借鑑百度上面的方法
按照剛才的思路,我們百度一下,看看網上其他人怎麼做的。
刪除
.vagrant
,重新執行vagrant up
按照這個方法,會報錯如下
Bringing machine 'homestead-7' up with 'virtualbox' provider...
==> homestead-7: Importing base box 'lc/homestead'...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["import", "\\\\?\\C:\\Users\\admin\\.vagrant.d\\boxes\\lc-VAGRANTSLASH-homestead\\8.2.1\\virtualbox\\box.ovf", "--vsys", "0", "--vmname", "lt-settler_default_1574502090510_42501_1606697104250_24158", "--vsys", "0", "--unit", "11", "--disk", "C:/Users/admin/VirtualBox VMs/lt-settler_default_1574502090510_42501_1606697104250_24158/box-disk001.vmdk"]
Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting \\?\C:\Users\admin\.vagrant.d\boxes\lc-VAGRANTSLASH-homestead\8.2.1\virtualbox\box.ovf...
OK.
0%...
Progress state: E_INVALIDARG
VBoxManage.exe: error: Appliance import failed
VBoxManage.exe: error: Code E_INVALIDARG (0x80070057) - One or more arguments are invalid (extended info not available)
VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleImportAppliance(struct HandlerArg *)" at line 957 of file VBoxManageAppliance.cpp
直接重新安裝
到了這一步,我按照自己的習慣,喜歡推倒一切,重新再來,速度更快。所以開始銷燬這個虛擬機器,重新搭建一套。
- 首先解除安裝vagrant,解除安裝virtualbox
- 刪除
C:\Users\admin
下面的vagrant和virtualbox的配置檔案
到此為止,已經完成“推倒”
下面來重建, - 安裝virtualbox和vagrant
- 新增虛擬機器
進入lc-homestead-8.2.1-2019112300
目錄
成功新增,返回如下vagrant box add metadata.json
==> box: Loading metadata for box 'metadata.json' box: URL: file://E:/lc-homestead-8.2.1-2019112300/metadata.json ==> box: Adding box 'lc/homestead' (v8.2.1) for provider: virtualbox box: Downloading: virtualbox.box box: ==> box: Successfully added box 'lc/homestead' (v8.2.1) for 'virtualbox'!
- 重新恢復
Homestead
git checkout . ./init.bat
- 最後把之前備份的Homestead.yml放到裡面,執行`vagrant up’
亂七八糟的程式,想搞清楚裡面的東西真的很花時間,不如推倒重來
本作品採用《CC 協議》,轉載必須註明作者和本文連結