Câu hỏi Chia sẻ tệp giữa máy ảo Ubuntu và Windows 7


Tôi đã có Ubuntu 12.04 đang chạy với tư cách khách trong phiên VMware Workstation 9 ảo hóa trên máy chủ Windows 7. Máy Windows chia sẻ một thư mục với máy Ubuntu thông qua CIFS và máy Ubuntu gắn kết thư mục được chia sẻ tự động khi khởi động nhờ dòng này trong /etc/fstab tập tin:

//<remotehost>/<sharename> <localsharepath> cifs soft,uid=1000,username=<remoteusername>,password=<remotepassword> 0 0

Chia sẻ tệp thông qua gắn kết hoạt động tốt cho đến khi có nhu cầu tiếp tục máy ảo Ubuntu sau khi nó bị tạm dừng hoặc khôi phục nó từ ảnh chụp nhanh. Điều này thường xảy ra sau khi máy chủ Windows được khởi động lại hoặc bắt đầu sau khi tắt hàng đêm.

Sau khi Ubuntu được nối lại, thư mục chứa thư mục được chia sẻ không liệt kê bất kỳ mục nào. Cửa sổ Nautilus chỉ treo trong một thời gian dài hoàn toàn trống rỗng với "Đang tải ..." ở góc dưới cùng bên phải của nó, mặc dù thực tế là có rất nhiều thư mục và tệp khác trong thư mục đó hiển thị.

Khởi động lại máy Ubuntu không giúp ích gì nhưng nó không thực tế: Ubuntu mất mãi mãi để tắt, nó treo trên một trong những màn hình dòng lệnh cuối cùng đang chờ đợi một thứ gì đó (khi có thể truy cập được, không có vấn đề gì). Bây giờ, tùy chọn duy nhất là tắt nguồn Ubuntu một cách tàn bạo và sau đó bật lại nó để có thể truy cập vào gắn kết, mà, tất nhiên, cũng không thực tế.

Tôi đoán là khi một số thông số truyền thông CIFS / Samba bị thay đổi (sau khi Windows khởi động lại), hình ảnh khôi phục của máy ảo Ubuntu bằng cách nào đó không thể bắt kịp.

Ngay cả với VMware Tools được cài đặt trên máy Ubuntu, tính năng thư mục chia sẻ của VMware, có thể phục vụ như là một thay thế, không hoạt động đối với Ubuntu 12 (và nhiều bản phân phối Linux khác). Nhưng ngay cả khi nó đã làm, CIFS / Samba chia sẻ vẫn sẽ được yêu cầu để chia sẻ tập tin với các máy ảo khác.


4


gốc


Tôi tin rằng đây là một vấn đề liên quan đến phần mềm ảo mà bạn đang sử dụng và trên máy chủ lưu trữ bạn đang sử dụng nó. Bạn có thể thêm phần mềm ảo hóa bạn đang sử dụng không? - Luis Alvarado♦
Bạn đã cố gắng remounting chia sẻ? Như: umount <localsharepath>; mount -a. - Pavel A
@PavelA Có. Nó tiếp tục nói rằng "thiết bị đang bận". - Desmond Hume
(1) Có một số phần mềm daemon (dababase, vv) sử dụng các tập tin trong phần không? (2) Có thông báo lỗi nào từ syslog không? - John Siu
@JohnSiu (1) Không có phần mềm daemon nào, không có gì khóa bất kỳ tập tin nào trong phần chia sẻ. (2) Loại duy nhất của mục nhập nhật ký hệ thống mà tôi tìm thấy là CIFS VFS: Server <remotehost> has not responded in 300 seconds. Reconnecting.... Bất cứ ai có quyền truy cập vào PC và với phiên bản dùng thử của VMware Workstation có thể dễ dàng sao chép vấn đề. Thậm chí không cần phải khởi động lại Windows để đưa nó vào một ngữ cảnh thực tế. Chỉ cần khởi động lại dịch vụ Windows được gọi là "Máy chủ", chịu trách nhiệm chia sẻ tệp ra khỏi Windows, trong khi Ubuntu bị tạm dừng sẽ thực hiện thủ thuật. - Desmond Hume


Các câu trả lời:


Tôi khuyên bạn nên sử dụng autofs thay vì tĩnh fstab mục nhập. Xem: https://help.ubuntu.com/community/Autofs


2



Sau nhiều lần kiểm tra, tôi phải nói rằng vấn đề không biến mất autofs. Có, nó sẽ tự động ngắt kết nối chia sẻ sau một thời gian cụ thể và nếu máy Ubuntu bị tạm dừng hoặc chụp nhanh sau khi chia sẻ tự động tháo gắn kết thì tất cả đều ổn khi gắn kết sau khi máy Ubuntu được nối lại. Nhưng nếu Ubuntu bị tạm dừng trước khi chia sẻ được tự động unmounted, nó đi vào bộ sưu tập rất giống nhau của các vấn đề khi tiếp tục. Và nếu tôi đặt số tự động ngắt giây thành một số giá trị nhỏ, giả sử 10 giây, cửa sổ Nautilus sẽ tự động đóng khi duyệt các tệp được chia sẻ. - Desmond Hume


1. umount -f

Đây không phải là một giải pháp cũng không làm việc xung quanh, nhưng một thủ tục (một trong những gây phiền nhiễu).

Sau khi VM tiếp tục, không cố gắng xem ổ đĩa chia sẻ với Nautilus hoặc bất kỳ chương trình nào. Đừng làm ls cho nó. Bất kỳ loại truy cập nào sẽ kích hoạt thời gian chờ 5 phút và làm cho phần chia sẻ bận rộn. Chỉ cần làm umount -f trước mọi thứ.

    umount -f <localsharepath>

-f Buộc tháo gắn kết (trong trường hợp máy chủ không thể truy cập).

Miễn là chia sẻ không bận, điều này sẽ tháo gắn kết chia sẻ ngay lập tức mà không kích hoạt thời gian chờ 5 phút cifs.

Điều này chắc chắn không phải là lý tưởng, nhưng nó không yêu cầu khởi động lại và chia sẻ có thể được gắn kết một lần nữa ngay lập tức.

2. Thay đổi smbfs đến cifs với defaults

//<remotehost>/<sharename> <localsharepath> cifs defaults,uid=1000,username=<remoteusername>,password=<remotepassword> 0 0

Chính thức là smbfs không còn được duy trì nữa

smbfs đã không được duy trì trong vài năm qua. Thay vào đó, phát triển đã được tập trung vào việc thực hiện khác của giao thức CIFS trong hạt nhân. Xem CIFS VFS để biết thêm thông tin.

Dựa trên nhận xét của blog này (không thể tìm thấy tài liệu tham khảo có thẩm quyền hơn)

stintel Thứ sáu, ngày 9 tháng 5 năm 2008: Một điều thú vị nữa về CIFS là nó sẽ tồn tại một sự cố ngừng mạng hoặc thậm chí khởi động lại hệ thống mà bạn đang sử dụng để chia sẻ

3. Vô hiệu hóa cơ hội Locking và Lookup Caching (Không có hiệu lực trong việc giảm thời gian chờ kết nối 5 phút)

echo '0' > /proc/fs/cifs/OplockEnabled
echo '0' > /proc/fs/cifs/LookupCacheEnabled

4. Kiểm tra Open File (Không áp dụng trên cơ sở bình luận)

Sau khi Ubuntu VM tiếp tục, hãy kiểm tra xem có bất kỳ người dùng / quy trình nào không sử dụng bất kỳ tệp / thư mục nào trong thư mục chia sẻ

lsof | grep '<localsharepath>'

Nếu bất kỳ người dùng / quy trình nào đang sử dụng tệp / thư mục trong <localsharepath>, bạn sẽ nhận được device busy(Đây là bất kể nó được gắn kết như thế nào, cục bộ hoặc từ xa).


2



Đã thay đổi smbfs đến cifs và khởi động lại máy Ubuntu. Các vấn đề vẫn tồn tại. Đã thử lại nhiều lần, không cải thiện. - Desmond Hume
Bạn có thể tháo gắn kết chia sẻ với cifs không? - John Siu
Tương tự như với smbfs, nó nói "thiết bị đang bận". - Desmond Hume
Điểm gắn kết đó có được chia sẻ bởi samba không? Dừng samba trước khi tháo gắn. - John Siu
Không, điểm gắn kết đó chỉ được chia sẻ, không ra ngoài. Máy Ubuntu không bao giờ là một máy chủ chia sẻ tập tin, chỉ là một máy khách. - Desmond Hume


Nếu bạn thường xuyên chia sẻ tệp giữa máy chủ và khách, hãy sử dụng FTP hoặc SFTP hoặc thậm chí là phần mềm điều khiển sửa đổi như Git. Chúng ổn định và hữu ích hơn so với những thứ gắn kết.

Nếu không, hãy cài đặt VMTools trên máy khách Ubuntu. Sau đó, bạn có thể kéo và thả tệp giữa máy chủ và khách.


0