Mount VirtualBox SharedFolder trong Ubuntu VM khi khởi động


15

Tôi có một máy ảo Ubuntu chạy trong VirtualBox.
Tôi có một Thư mục dùng chung được thiết lập vì myshare tôi có một thư mục được tạo trong thư mục chính của tôi ( ~/jamesw) là host. sử dụng dòng sudo mount -t vboxsf myshare hosttừ thư mục chính của tôi trong Terminal gắn ổ đĩa một cách chính xác, nhưng nếu tôi khởi động lại thì nó không được gắn lại.

Đây là một VM tôi sử dụng để chạy một máy chủ web đơn giản và tôi muốn Chia sẻ này được gắn kết mỗi khi tôi khởi động. Có cách nào để làm điều này? Đặc biệt là cho rằng nó đòi hỏi sudo?

Câu trả lời:


22

Tự động gắn các thư mục được chia sẻ bằng Trình quản lý hộp ảo

Từ Virtual Box> 4.0, chúng tôi có thể tự động gắn các thư mục được chia sẻ trong một máy ảo. Để làm như vậy cho Ubuntu, chúng tôi

  • cần cài đặt Bổ sung khách trong hệ điều hành khách
  • đảm bảo người dùng trong nhóm vboxsf
  • xác định các thư mục được chia sẻ từ Trình quản lý hộp ảo

Nhấp chuột phải vào máy ảo của bạn và chọn Cài đặt-> Thư mục được chia sẻ . Điều này sẽ liệt kê các chia sẻ hiện có hoặc cho phép bạn xác định một nếp gấp được chia sẻ mới bằng cách nhấp vào biểu tượng thư mục màu xanh với dấu màu xanh lá cây +ở phía trên bên phải:

nhập mô tả hình ảnh ở đây

Chọn thư mục của bạn từ menu thả xuống Đường dẫn thư mục hoặc chọn Xác định khác cho bộ chọn tệp liệt kê hệ thống tệp máy chủ. Chọn tên cho chia sẻ (ví dụ: myshares ). Bằng cách đánh dấu Auto-mount , thư mục này sẽ luôn được gắn vào thư mục khách Ubuntu /media/sf_myshares(tiền tố sf_sẽ tự động được thêm vào).


Ngoài ra, để xác định các thư mục được chia sẻ trong HĐH khách đang chạy, chúng tôi có thể chọn Thiết bị -> Thư mục được chia sẻ từ menu cửa sổ của Trình quản lý hộp ảo:

nhập mô tả hình ảnh ở đây

Bằng cách đánh dấu Make Permanent, các thư mục được chia sẻ này cũng sẽ có sẵn trong lần khởi động tiếp theo và sẽ được gắn kết khi gắn Auto-mount .


Điều đó sẽ khiến HĐH khách tự động chia sẻ một chia sẻ máy chủ và tôi tin rằng OP muốn điều ngược lại: gắn kết một chia sẻ khách trong HĐH máy chủ của mình . Nếu tôi sai, tôi hoàn toàn hiểu sai câu hỏi và câu trả lời của tôi nên bị bỏ qua
MestreLion

1
@MestreLion: Bạn sai rồi, xin lỗi! Tôi nghĩ vấn đề của tôi là tôi không bao giờ có thể tìm thấy Ổ đĩa được chia sẻ trên Ubuntu VM vì tôi không biết nó đang được gắn vào / media. Tôi đã nhận ra rằng câu hỏi này thậm chí sẽ không cần thiết.
James P. Wright

@James: Ồ, tôi xin lỗi rồi. Gắn kết một máy chủ lưu trữ trong một hệ điều hành khách là dễ dàng và bạn có một số tùy chọn. Bên cạnh câu trả lời (xuất sắc, btw) được đưa ra ở đây, bạn có biết rằng một hệ điều hành khách có thể được nhìn thấy trong mạng LAN giống như một máy thông thường không? Chỉ cần thay đổi mạng từ mặc định NATthành Bridged. Bây giờ bạn có thể "trao đổi" cổ phần từ khách sang máy chủ (và ngược lại) bằng Nautilus, Samba, v.v ...
MestreLion

@MestreLion: thành thật mà nói - Tôi chủ yếu chia sẻ các tệp máy chủ (và khách) của mình bằng cách sử dụng Samba qua mạng;)
Takkat

@Takkat: Tôi cũng vậy! (và điều đó làm cho cả hai câu trả lời của chúng tôi trở nên lỗi thời !: P)
MestreLion

7

Tôi không nghĩ việc sử dụng / etc / fstab sẽ hoạt động (nó không hiệu quả với tôi) vì tệp đó được xử lý trước khi mô-đun SF được tải và sẽ không thể chia sẻ chia sẻ, xem HOWTO: Sử dụng thư mục được chia sẻ 1 .


1
Xem forum.virtualbox.org/viewtopic.php?f=3&t=15868 để biết cách khắc phục. Về cơ bản, thêm lệnh mount trong /etc/rc.local hoặc tương đương.
Bài viết của Rebier

2

Đây chưa phải là một câu trả lời hoàn chỉnh, nhưng giống như hướng dẫn về 2 cách tiếp cận bạn có:

1 - Bạn có thể chỉnh sửa /etc/fstabvà thêm gắn kết này ở đó. Bạn sẽ cần dịch tham số mount của bạn sang cú pháp fstab. Một dự đoán hoang dã sẽ là một cái gì đó như /home/jamesw/host vboxsf myshare,umask=002,uid=<youruser>,gid=plugdev 0 0. Bạn sẽ cần sudochỉnh sửa fstab của mình, nhưng sau khi hoàn thành, nó sẽ được tự động gắn vào khi khởi động. Vì việc này được thực hiện trước khi bạn đăng nhập, bạn cần một đường dẫn tuyệt đối đến điểm gắn kết (do đó / home / jamesw / host), bạn không thể sử dụng $HOMEhoặc ~. Gợi ý: thư mục "máy chủ" không cần tồn tại. Nếu nó ở trong fstab, mount sẽ tạo nó cho bạn.

2 - Bạn có thể sử dụng fusermountthay vì gắn kết. Cú pháp tương tự (nhưng không giống nhau, vì vậy bạn vẫn cần dịch các tham số mount). Fusermount yêu cầu điểm gắn kết của bạn phải ở đâu đó trong $ HOME của bạn, nhưng lợi thế lớn nhất là bạn sẽ không cần sudo. Và giá treo sẽ có sẵn trong Nautilus (như thể đó là khóa CD hoặc USB). Sau khi bạn có được các tham số phù hợp và kiểm tra nó, bạn có thể thêm nó vào ~/.profile, tham số này chạy mỗi khi bạn đăng nhập.

EDIT: Tôi giả sử rằng Virtualbox không cần máy thực sự chạy để nó chia sẻ các thư mục, HOẶC rằng nó đã hoạt động và chạy trước khi bạn đăng nhập


Sử dụng / etc / fstab không hoạt động, xem câu trả lời của Kenneth Gulbrandsøy.
Bài viết của Rebier

0

Người dùng bình thường và thư mục chia sẻ Ubuntu 16.04 có thể truy cập tự động

Để tự động đếm và truy cập các thư mục đó như người dùng bình thường, cần có các bước cụ thể.

  1. Đừng sử dụng bổ sung chính thức của khách. Thay vào đó cài đặt virtualbox-guest-dkms.

    sudo apt-get install -y virtualbox-guest-dkms
    sudo usermod -aG vboxsf $(whoami)
    sudo VBoxControl guestproperty set /VirtualBox/GuestAdd/SharedFolders/MountDir ~/vbshare
  2. Thêm một số thư mục chia sẻ với Auto-mountPermanentkiểm tra.

  3. Khởi động lại vm.
  4. Kiểm tra xem bạn có bất kỳ thư mục vb nào được gắn kết không:

    mount | grep vboxsf

  5. Nếu vậy, thay đổi quyền sở hữu của ~/vbsharechính bạn.

    sudo chown $(whoami):$(whoami) ~/vbshare

Thêm thư mục chia sẻ mới mà không cần khởi động lại VM

  1. Thêm thư mục chia sẻ.
  2. Kiểm tra nếu bạn có thể tìm thấy nó được liệt kê bởi lệnh này:

    sudo VBoxControl sharedfolder list

  3. Nếu vậy, tạo thư mục và gắn kết

    mkdir ~/vbshare/newfolder
    sudo mount -t vboxsf newfolder ~/vbshare/newfolder
    
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.