無法啟動homestead,出現報錯Your VM has become "inaccessible." 該怎麼辦?

TonyYang發表於2020-11-30

今天早上,進入到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

直接重新安裝

到了這一步,我按照自己的習慣,喜歡推倒一切,重新再來,速度更快。所以開始銷燬這個虛擬機器,重新搭建一套。

  1. 首先解除安裝vagrant,解除安裝virtualbox
  2. 刪除C:\Users\admin下面的vagrant和virtualbox的配置檔案
    到此為止,已經完成“推倒”
    下面來重建,
  3. 安裝virtualbox和vagrant
  4. 新增虛擬機器
    進入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'!
  5. 重新恢復Homestead
    git checkout .
    ./init.bat
  6. 最後把之前備份的Homestead.yml放到裡面,執行`vagrant up’

亂七八糟的程式,想搞清楚裡面的東西真的很花時間,不如推倒重來

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章