2013-08-01 42 views
14

Tôi đã có một lang thang vm thiết lập với một cấu trúc dự án trên máy chủ của tôi như vậy:Vagrant SSH không thể truy cập thư mục chia sẻ

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

tôi cd vào thư mục .VagrantFiles tôi và sau đó khởi động VM. Trong VagrantFile của tôi cho máy ảo đó, tôi đang chia sẻ thư mục này:

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

với mục tiêu chia sẻ mọi thứ trong thư mục PlayApps (nhiều dự án) với máy ảo. Khi tôi khởi động máy ảo và ssh trong tôi nhìn thấy thư mục/Shared và tôi có thể cd vào nó, nhưng khi tôi cố gắng liệt kê các nội dung với ls -al Tôi nhận được lỗi sau:

ls: cannot open directory .: Operation not permitted. 

Khi tôi làm ls -al trên thư mục chứa/Shared đây là những gì tôi nhìn thấy (trong thư mục khác):

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

tôi cố gắng để sudo chmod 666 thư mục/chia sẻ, suy nghĩ rằng đó là một lỗi cho phép, nhưng đã nhận lỗi sau:

chmod: cannot access '/Shared': Protocol error 

Vagrant, ssh và "ops" nói chung là khá mới đối với tôi vì vậy bất kỳ gợi ý, đề xuất, câu trả lời nào sẽ được đánh giá cao.

Trả lời

36

Bạn đã chuyển/đổi tên bất kỳ thư mục mẹ nào của hộp lang thang của bạn trong khi nó bị treo?

Nếu có, hãy chạy vagrant halt, hoàn tác bất kỳ tên nào, sau đó vagrant up và bạn dự án sẽ trở lại!

Tôi đã gặp phải sự cố tương tự chính xác sau khi đổi tên thư mục gốc nơi tệp dự án Vagrantfile + của tôi cư trú.

Chạy các tình huống bổ sung xác nhận rằng đổi tên thư mục mẹ của dự án trong khi máy ảo bị tạm dừng gây ra sự cố quyền này; tuy nhiên, nếu bạn tắt hoàn toàn VM với vagrant halt, bạn có thể đổi tên miễn phí.

Hôm qua có chức năng RoR env hoàn hảo trên hộp chính xác Ubuntu 32. Đã thoát khỏi vỏ, chạy vagrant suspend và tắt máy trạm của tôi.

Hôm nay ngày nào đó tôi khởi động máy trạm của tôi (máy chủ) và đổi tên thư mục cha của dự án lang thang của tôi, như vậy:

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

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

Sau đó, tôi chạy vagrant up, vagrant ssh. Một khi trong VM vỏ tôi không thể cd vào/lang thang.

ls -alh / từ vỏ khách trả về:

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 
[...] 

cũng đã cố gắng chmod trên /vagrant và nhận điều này:

chmod: cannot access `/vagrant': Protocol error 

Đầu tiên sửa chữa cố gắng chạy vagrant suspend, đổi tên thư mục cha trở về giá trị ban đầu của nó , sau đó chạy vagrant up. Thật không may là đã vứt bỏ toàn bộ VM lang thang và nó bị mắc kẹt trong sự hoài nghi lang thang - sẽ không khởi động hoặc tắt máy hoàn toàn.

Vì vậy, đúng sửa chữa là để thoát khỏi tất cả các vỏ ssh lang thang, chạy vagrant halt (không đình chỉ) để chắc chắn rằng nó OFF (không ngủ), và phục hồi bất kỳ đặt lại tên mới vào thư mục mẹ. Sau đó, vagrant up và xem bạn có thể truy cập vào /vagrant không! Sau đó, nếu bạn muốn đổi tên các thư mục của mình chỉ vagrant halt, đổi tên và vagrant up.

+0

Whew, lifesaver, thanks! –

+0

Đã giúp tôi rất nhiều. Cám ơn – Victor

3

Sau câu trả lời chi tiết tuyệt vời của @ musophob, tôi nhận ra rằng nếu bạn chỉ muốn di chuyển VagrantFile của mình vào thư mục dự án khác, bạn luôn phải tải lại máy ảo để sửa quyền truy cập /vagrant.

Vì tôi thường xuyên thực hiện việc này thường xuyên, tôi sử dụng phím tắt vagrant reload command - điều này chỉ đơn giản là vagrant halt theo sau là vagrant up và máy ảo đã sẵn sàng.

1

Tôi đã trải qua những cùng vấn đề nhiều lần bây giờ - mặc dù không phải khi đổi tên thư mục cha hoặc di chuyển Vagrantfile nhưng khi chỉ tạo hoặc đổi tên tập tin cùng chủ. Vì điều này xảy ra rất ít khi không biết lý do tôi không thể tái tạo điều này một cách có chủ ý.

Tuy nhiên, một đơn giản vagrant reloadsửa lỗi sự cố.

Các vấn đề liên quan