Vagrant non si avvia. L'utente che ha creato la VM non corrisponde all'utente corrente


124

Stavo cercando di avviare la mia macchina vagabonda, quindi sono andato alla cartella in cui si trova il mio vagrantfile e ho usato:

vagabondo up && vagrant ssh

ma ho ricevuto il seguente messaggio di errore:

La VM VirtualBox è stata creata con un utente che non corrisponde all'utente corrente che esegue Vagrant. VirtualBox richiede che lo stesso utente venga utilizzato per gestire la VM che è stata creata. Per favore, riesegui Vagrant con quell'utente. Questo non è un problema di Vagrant.

L'UID utilizzato per creare la VM era: 0 Il tuo UID è: 501

Ho anche provato con sudo, ma neanche quello ha funzionato.

Devo cambiare l'UID? E come lo farei?

Risposte:


253

Oggi ho riscontrato lo stesso problema.
Ho modificato il mio UID aprendo il file .vagrant/machines/default/virtualbox/creator_uide cambiando il 501 in uno 0 .

Dopo aver salvato il file, il comando vagrant up ha funzionato come un campione.

NB: la .vagrantcartella si trova nella stessa directory del tuo Vagrantfile, dove hai eseguitovagrant up


64
Mi sono trovato nella stessa situazione, avevo tarato un tarball da una macchina Ubuntu. Quindi anche la semplice rimozione della rm -rf .vagrantdirectory creata in Ubuntu ha risolto il problema.
Jeff Sheffield

1
//, Wow, grazie, @Fred! Stackoverflow ci offre il meglio con questo tipo di soluzione precisa e difficile da trovare da qualcuno che ha dovuto affrontarlo in precedenza. Dove trovo di solito la .vagrantcartella sulle macchine basate su Unix?
Nathan Basanese

1
Non sono sicuro, @Nathan. Puoi eseguire un comando di localizzazione per il file creator_uid? Prova a "individuare creator_uid" nella riga di comando per trovare il percorso del file da modificare.
Fred

4
Nel mio caso, creator_uid conteneva "90210", ma il mio UID è 502. Piuttosto che cambiare l'UID nel file a 0 come suggerito da questa soluzione, l'ho cambiato in 502. Ha funzionato bene.
LS

5
La .vagrantcartella @NathanBasanese si trova nella stessa posizione in cui hai eseguitovagrant up
Harish Reddy

34

Mi sono imbattuto in questo problema in una situazione leggermente diversa. Il problema era che ".vagrant" era archiviato nel repository git e il committer era in esecuzione con un UID diverso da me.

Soluzione: aggiungi .vagrant a .gitignore.


15
Questo è stato il problema che ho dovuto affrontare; Tuttavia, la semplice aggiunta .vagrantdi .gitignoresi , non risolverà il problema - YMMV, ma git rm -rf .vagrantdeve essere eseguito anche.
Marco Massenzio

@marco: hai perfettamente ragione. se ".vagrant" è stato aggiunto al repo, aggiungerlo a .gitignore in seguito è troppo tardi :)
Chris Cogdon

8

Mi sono imbattuto nello stesso problema, ma nel mio caso era perché ero finito vagrant upsotto sudoe quando ci sono tornato più tardi me ne ero dimenticato.

Errore stupido, ma sono sicuro che non è la prima volta che succede a qualcuno :)


1
Lo stesso problema qui, ho dimenticato di correre sotto sudo. Ma il messaggio di errore non è molto indicativo di ciò sfortunatamente.
Zac Blazic

5

Ho provato a cambiare l'ID in .vagrant \ machines \ default \ virtualbox \ creator_uid e non ha funzionato per me, ma cancellando il file, creator_uid ha fatto il trucco.


3

basta cambiare l'ID utente qui .vagrant / machines / default / virtualbox / creator_uid


1

Secondo il manuale utente di VirtualBox :

Come misura di sicurezza, l'implementazione Linux della rete interna consente solo alle VM in esecuzione con lo stesso ID utente di stabilire una rete interna.

In altre parole, devi passare a root ( UID 0) per eseguirlo.


10
Non dovrebbe essere eseguito come sudo, elimina la tua directory .vagrant ed esegui come utente
Jeremy,

1

È possibile che tu abbia eseguito il comando: sudo vagrant up

Ciò significherebbe che come utente normale non sei in grado di vedere o addirittura eliminare la /.vagrantcartella ei file.

In tal caso, eseguire semplicemente: sudo vagrant destroy -f

Quindi dovresti essere in grado di eseguire (come il tuo normale account utente): vagrant up


0

Esegui i seguenti comandi:

bash
sudo vagrant up

0

Ho avuto lo stesso problema dopo aver acquistato un nuovo computer. Invece di copiare tutti i file dal mio vecchio computer, ho dovuto controllare di nuovo i progetti vagabondi dal repository git. Dopo di che, ha vagrant upfunzionato bene.


0

Solo per aggiungere alla risposta https://stackoverflow.com/a/32256848/2065804 di Fred .

Assicurati di aver cambiato la macchina della VM corretta. Ad esempio, il nome della mia VM NON è predefinito ma piuttosto chiamato homestead-7.

Quindi il percorso per quello corretto è:

.vagrant/machines/homestead-7/virtualbox/creator_uid

e non:

.vagrant/machines/default/virtualbox/creator_uid

Questo errore mi è accaduto quando ho cambiato il mio Mac con un altro Mac.


0

Rimuovere il contenuto di .vagrant hidden dir nella directory di lavoro corrente e rieseguire il comando vagrant up. Errore, a causa della copia / backup di Vagranfile da un sistema a un altro. errore di id utente per il Vagrant per far apparire l'ambiente .. spero che aiuti applausi .. !! :)) se non si desidera eliminare quella cartella, è possibile aggiornare l'UID dell'utente corrente nel file nella directory nascosta della directory di lavoro corrente, ad esempio .vagrant / machines / jenkins / virtualbox $ vim creator_uid


0

Ho affrontato la stessa situazione, ma ho un file Vagrant multi-macchina .

Per sostituire il vecchio uid (1001) con quello nuovo (1000) ho usato il seguente comando:

for i in $(find . -type f -iname "creator_uid" ) ; do echo 1000 > $i ; done

0

Ho avuto lo stesso problema che avevo dimenticato di posizionare sudoprima vagrant up, devi solo eseguire sudo vagrant upnella cartella del tuo file vagabondo.


0

Ho un file vagabondo Multi-Machine. Ho controllato creator_uided è 0ma non riesco ancora a caricarlo. Quindi ho cancellato il creator_uidfile per tutta la Multi-Machine e ha funzionato. Il percorso dovrebbe essere.vagrant\machines\<machine_name>\virtualbox

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.