2013-08-01 62 views
14

我有一個無業遊民VM設置了一個項目的結構我的主機上,像這樣:流浪SSH無法訪問共享目錄

PlayApps --> App1 -----------> all application/project files 
      App2 -----------> "" 
      App3 -----------> "" 
      (etc..) 
      .VagrantFiles --> VagrantFile 
           bootstrap.sh 
           (etc...) 

cd到我.VagrantFiles目錄,然後啓動VM。

config.vm.synced_folder "../", "/Shared" 

與在PlayApps目錄(多個項目)與虛擬機共享一切的目標是:在我VagrantFile該VM我這個目錄共享。當我啓動虛擬機,並在ssh我看到目錄/共享和我可以cd到它,但是當我嘗試列出與ls -al我發現了以下錯誤的內容:

ls: cannot open directory .: Operation not permitted. 

當我做ls -al在包含目錄/共享,這是我所看到的(在其他目錄):

d????????? ? ? ?  ?   ? Shared/ and 
d????????? ? ? ?  ?   ? vagrant/ 

我試圖sudo chmod 666的/共享目錄,並認爲這是一個權限錯誤,但得到了以下錯誤:

chmod: cannot access '/Shared': Protocol error 

一般來說,流浪,ssh和「操作」對我來說是相當新的,所以任何指針,建議,答案都會非常感謝。

回答

36

你是否在被暫停時移動/重命名了你的流浪盒子的任何父目錄?

如果是這樣,運行vagrant halt,撤消任何重命名,然後vagrant up和你項目目錄應該回來!

在我的Vagrantfile +項目文件所在的位置重命名父目錄後,我遇到了完全相同的問題。

確定在VM掛起時重命名vagrant項目的父目錄導致此權限問題;但是,如果您完全關閉虛擬機,請撥打vagrant halt,您可以自由重命名爲

昨天在Ubuntu的精確框32上有一個功能完善的RoR env。退出shell,運行vagrant suspend並關閉了我的工作站。

今天一天,我啓動了我的工作站(主機),並更名爲我的流浪者項目的父目錄,如下所示:

└── ORIGINAL_DIR_NAME 
    ├── Vagrantfile 
    └── PROJECT 

└── NEW_DIR_NAME 
    ├── Vagrantfile 
    └── PROJECT 

後,我跑vagrant upvagrant ssh。一旦進入VM shell,我無法進入/流浪。

ls -alh /從來賓外殼返回:

ls: cannot access /vagrant: Protocol error 
[...] 
drwxrwxrwt 2 root root 4.0K Aug 4 21:17 tmp 
drwxr-xr-x 10 root root 4.0K Sep 14 2012 usr 
d????????? ? ? ?  ?   ? vagrant 
drwxr-xr-x 11 root root 4.0K Aug 4 19:23 var 
[...] 

也試過/vagrant chmod和得到這個:

chmod: cannot access `/vagrant': Protocol error 

首先試圖修復程序運行vagrant suspend,重命名父目錄回到其原始值,然後運行vagrant up。不幸的是,整個流浪虛擬機都被摧毀了,它被困在流浪漢中 - 不會完全啓動或關閉。

因此,正確的修復是退出所有的無業遊民SSH Shell,運行vagrant halt(不中止),以確保它的OFF(沒有睡着),並還原最近重命名爲父目錄。然後vagrant up,看看你是否可以進入/vagrant!之後,如果你想重命名文件夾vagrant halt,重命名和vagrant up

+0

Whe,救命恩人,謝謝! –

+0

幫了我很多。謝謝 – Victor

3

以下是@ musophob的詳細答案,我意識到如果您只是想將您的VagrantFile移動到不同的項目文件夾,您總是必須重新加載虛擬機,以修復/vagrant訪問。

由於我最終經常這樣做,所以我使用快捷鍵vagrant reload command - 這只是vagrant halt,然後是vagrant up,並且VM已準備就緒。

1

我現在所經歷的同樣的問題幾次 - 雖然不是同時重命名父目錄或移動Vagrantfile但只是創造或主機重命名文件時。由於這種情況很少發生,原因不明,所以我無法有意識地再現這種情況。

儘管如此,一個簡單的vagrant reload修復程序的問題。