K-ledges / ナレジズ

by ケープロジェクト

GuestAdditions versions on your host (x.x.x) and guest (z.z.z) do not match.

Pocket
LINEで送る

はじめまして!今日も元気におなかいたいです!
まだまだこれからな4年目!
これまで色んなことにつまづいてきて泣きそうになりつつ試行錯誤して解決できたことを記事にして、皆さんの一助になればと思って書いていこうと思います!

さっそくですが、過去の案件の保守なんかで古い環境を立ち上げようとvagrant upすると以下のようなエラーに出会うことがあります。ありません?

ざっくり訳すと「ホストとゲストでゲストアディションズのバージョンがあってないよ」っていうご指摘。。。
一体何のことやらですが、こいつの解消方法を綴っていきたいと思います。

そもそもGuestAdditionsとは?

VirtualBoxの拡張ツールの1つで、色んな機能を拡充してVirtualBoxの使い勝手を向上させよー。ってものらしい。
例えばこんな機能

  • マウスカーソルのシームレスな移動
  • シームレスなウィンドウサイズの変更
  • デスクトップ画面の解像度変更
  • ホストマシンとの時刻の同期
  • 共有フォルダ
  • クリップボードの共有 etc…

っね!何言ってんのか分かんないね!
とにもかくにも、なんだかよく分からんがいると便利なんだからいてもらおうの精神でいればいいと思う。適当なこと言ってて怒られそう!
実際のとこ、そういうものがあるんだ程度に覚えておけば、意味なんて後追いでいいと個人的には思ってます。これらの恩恵に与れない内は、意味を追ったところで無用の長物かなって。
お世話になる時に「あ、これかぁ」で腑に落ちれば、より記憶に定着しやすい気がする!

解決策1:vagrantのプラグインにお任せ☆

vagrantにはなんと便利なプラグインがあります!
その名も「vagrant-vbguest」!
ホストとゲストでバージョンに差異があった場合、この子が自動でバージョンを合わせてくれる(GuestAdditionsをインストールしなおしてくれる)っていう優れもの!
使い方も簡単☆
以下のコマンドを実行・インストールしてvagrant upするだけ☆

vagrant plugin install vagrant-vbguest

結果。。。

上手くいかないよね☆

最初はいい感じに「おぉ、新しいバージョンインストールしてくれてる!」「古いバージョンremoveしてくれてる!ひゃっほい!」ってぬか喜びさせてからの「An error occurred …」
どゆことー

マイナーバージョンが違うだけだとちゃんと動いてくれてる気もするんだけどなぁ(気がしてるだけかも)

ググってもググっても解決しなかった原因はこいつですね。
今はどうかわかりませんが、僕がこいつに泣かされた当時は検索上位はだいたいこれで解決するって言ってました。よくもだましてくれたな。

解決策2:自動がダメなら手動で

という訳で、本題。
プラグインで自動的に更新できなかったから、自分で更新するしかないじゃんっていう単純なお話です。
以下その時まとめた手順です。

1.SSH接続するため起動(Powershell)
 vagrant up
2.SSHの起動(Powershell)
 vagrant teraterm (or vagrant ssh)
3.ISOファイルのダウンロード(VirtualBoxのバージョンに対応するGuestAdditionsのイメージを取得) ※http://download.virtualbox.org/virtualbox/ から対応するバージョンを探してurlをメモ
 curl -OL http://download.virtualbox.org/virtualbox/6.1.18/VBoxGuestAdditions_6.1.18.iso
4.ISOファイルのマウント先ディレクトリを作成
 sudo mkdir /VBoxGuestAdditions
5.ISOファイルをマウント
 sudo mount -o loop,ro VBoxGuestAdditions_6.1.18.iso /VBoxGuestAdditions
6.インストールを実行
 sudo sh /VBoxGuestAdditions/VBoxLinuxAdditions.run
7.アンマウント
 sudo umount /VBoxGuestAdditions
8.マウント先ディレクトリを削除
 sudo rmdir /VBoxGuestAdditions
9.ISOファイルを削除
 rm VBoxGuestAdditions_6.1.18.iso
10.再起動(Powershell)
 vagrant reload

以上で完了です。

環境構築は何回やっても慣れないもんです。。。地道にコツコツほどほどに頑張りましょう!

Pocket
LINEで送る

システム開発・IT支援のご相談お受けいたします

社内ネットワーク環境の構築から、DX導入まで、中小企業のIT化を支援いたします。

ケープロジェクトに問い合わせる