メモ帳

メモとか備忘録とか

vagrant up でUIDについて怒られたとき

vagrant up しようとしたら、以下のエラーが

The VirtualBox VM was created with a user that doesn't match the
current user running Vagrant. VirtualBox requires that the same user
be used to manage the VM that was created. Please re-run Vagrant with
that user. This is not a Vagrant issue.

The UID used to create the VM was: 0
Your UID is: 100

このときはvagrant upだけじゃなくて,vagrantに関するの他のコマンド全てがこのようなエラーが出て実行できないはずです。

見てみると、VMの作成者のIDが0にも関わらず、お前は100じゃないかと。 作成者IDを持つユーザで実行しよう。的なことが言われてます。

そんなときは .vagrant/machines/default/creator_uid に書いているIDを自分のユーザのものに書き換えると良いらしいです。

0

100

参考→Vagrantの起動時に発生するUID競合を修正してみた

これで先のようなエラー文は出てきません。

このcreator_uidというのは,最初にvagrant upしたユーザのidが書き込まれてます。

(ちなみにuidは dscl . -list /Users uid でユーザ名と合わせて確認できる)

今回は0になってたので、最初にrootでvagrant up(sudo)しちゃったのが原因だと何となく分かります。

注意点としては、この状態でvagrant upかますと、初めてupしますよ〜的なノリで立ち上がり始めます。 つまり、色々と環境を整えてから、書き換えてupするとそれがパーになります。

かなり初期の状態なら、迷わず書き換えても良いと思うけど、がっつり手を加えてしまったらば、

BOX作って追加して…とやったほうが良さそう。

一応、以下手順

vagrant package

vagrant box add *** package.box 

vagrant init ***

vagrant up

もちろん最初にvagrant upするときは、今後利用するであろうユーザなのを確認してからにしましょう。