vagrant 啟動無法自動掛載解決方法
Contents
Vagrant 搭配 VirtualBox 時,很常把專案資料夾自動掛進虛擬機裡面。但如果 Guest Additions 狀態不對,vagrant up 雖然可能還能啟動 VM,掛載共享資料夾這一步卻會失敗,最後你會看到 /vagrant 沒有正常出現。
常見錯誤訊息
這類問題通常會看到類似:
|
|
這代表重點不是 Vagrant 不會開機,而是虛擬機內沒有可用的 vboxsf 模組,也就是 Guest Additions 沒有正確對上。
根因通常在哪
最常見的原因是:
- Guest Additions 沒裝好。
- VirtualBox 主機版本和客體版本不相容。
- VM 裡面 kernel 更新後,原本模組失效。
最省事的解法
我自己覺得最實用的方式,是直接裝 vagrant-vbguest:
|
|
這個 plugin 會在啟動時幫你檢查 Guest Additions 狀態,必要時自動更新或重編,省掉很多手動處理步驟。
為什麼它有用
因為這類問題的麻煩點不在於你不知道 Guest Additions 很重要,而是版本不一致這件事很常發生,而且每次都手動修很煩。讓 plugin 幫忙對版本,通常是最符合開發效率的做法。
還要注意什麼
1. 第一次修復可能會比較久
因為它可能要下載或重新編譯元件,所以第一次跑不一定快。
2. 如果核心又更新,問題可能會重來
特別是在你常升級 box 或 guest kernel 的情況下,還是有可能再遇到一次。
小結
Vagrant 自動掛載失敗,很多時候根因都在 VirtualBox Guest Additions。與其每次手修,不如直接裝 vagrant-vbguest 來幫你管理版本,對日常開發環境來說通常是最省時間的解法。