Làm cách nào để gắn thư mục chia sẻ VirtualBox? [đóng cửa]


58

Quy trình gắn thư mục chia sẻ VirtualBox trong Linux là gì?

Tôi đã thử các biến thể của lệnh mount sau nhưng tôi vẫn nhận được protocol errorhoặc các lỗi mount khác.

sudo mount -t vboxsf share /home/toto

Đây có phải là một câu hỏi? Vui lòng viết lại câu hỏi để nó trở thành một câu hỏi, đăng câu trả lời của riêng bạn cho câu hỏi đó và tôi sẽ rất vui mừng khi xóa downvote.
icedwater

1
Chỉnh sửa để phù hợp với tiêu chuẩn Q & A.

vui lòng cập nhật câu hỏi những gì bạn đã cố gắng và những gì bạn nhận được lỗi

Chỉnh sửa để hiển thị lệnh không làm việc. Một lỗi phổ biến là protocol errornhư đã nêu trong câu hỏi.

Tôi nhận được lỗi này bất kỳ giải pháp nào cho "mount: loại hệ thống tập tin không xác định 'vboxsf'"
sandip divekar

Câu trả lời:


111

Ok điều này hơi khó hiểu với tôi nhưng cuối cùng tôi cũng nhận ra chuyện gì đang xảy ra. Vì vậy, tôi quyết định đưa 2 xu của mình với hy vọng nó sẽ rõ ràng hơn cho những người khác và nếu tôi quên một lúc nào đó trong tương lai :).

Tôi đã không sử dụng tên của chia sẻ mà tôi đã tạo trong VM, thay vào đó tôi đã sử dụng share hoặc vb_share khi tên chia sẻ của tôi là wd nên điều này khiến tôi bối rối trong một phút.

Đầu tiên thêm thư mục chia sẻ của bạn trong VM Box: nhập mô tả hình ảnh ở đây

Bất cứ điều gì bạn đặt tên, chia sẻ của bạn ở đây sẽ là tên bạn sẽ cần sử dụng khi cài đặt trong hệ điều hành khách vm. tức là tôi đặt tên của tôi là "wd" cho ổ đĩa hộ chiếu kỹ thuật số phương tây.

Tiếp theo trên hệ điều hành guset, hãy tạo một thư mục để sử dụng cho mount của bạn tốt nhất là trong thư mục chính của bạn.

mkdir share

Tiếp theo mở thiết bị đầu cuối và sao chép và dán phần sau hoặc nhập vào. Bạn có thể bật bảng tạm được chia sẻ trong Thiết bị-> Bảng chia sẻ-> Hai chiều

sudo mount -t vboxsf wd ~/share/

Bây giờ bạn có thể sao chép các tệp giữa các hệ điều hành bằng thư mục "chia sẻ" trong thư mục chính của bạn.

Hi vọng điêu nay co ich!


1
Tôi đã dành một vài giờ để hiểu, làm thế nào tôi có thể nhận được các tập tin từ Khách. Hóa ra "sharename" (từ tài liệu VBox chính thức) trong lệnh "mount" - chỉ là một TÊN được chỉ định trong hộp ảo Shared Folders ở cột đầu tiên. Tuyệt vời, bạn là người hùng của tôi.
zen11625

2
câu trả lời tuyệt vời, +1 cho ảnh chụp màn hình ... Điều này gắn kết chia sẻ dưới dạng root tuy nhiên tôi tin. Xem [các tài liệu] ( forum.virtualbox.org/viewtopic.php?t=15868 ) về cách gắn kết nó với tư cách là người dùng hiện tại của bạn, ví dụ:sudo mount -t vboxsf -o rw,uid=1000,gid=1000 share ~/host
timbrown

@user Làm thế nào để tôi tự động gắn kết này khi khởi động?

Nếu bạn không biết id người dùng của mình, bạn có thể sử dụng các biến. trong trường hợp này, lệnh gò trở thànhsudo mount -t vboxsf -o uid=$UID,gid=$(id -g) wd ~/share

28

Đối với VirtualBox có khách Linux, đây là các bước để gắn thư mục dùng chung:

  1. Sử dụng ứng dụng của máy chủ VirtualBox, VirtualBox Manager, để chỉ định các thư mục máy chủ để chia sẻ.

  2. Đảm bảo bổ sung VirtualBox Guest được cài đặt trong máy khách VirtualBox.

  3. Trong máy khách Linux, lệnh mount sẽ hiển thị một dòng mà chia sẻ đã được gắn kết. Điều này được chỉ định bởi type vboxsf. Vấn đề trở thành điểm gắn kết có thể không ở nơi mong muốn và các quyền chỉ là root. Vị trí gắn kết mặc định là trong /media/sf_.

  4. Bạn có thể truy cập vào chia sẻ bằng cách đặt người dùng hoặc id nhóm của 1000một thành viên của nhóm vboxsf. Điều này được thực hiện bằng cách thay đổi vboxsfdòng trong /etc/grouptệp. Có thể yêu cầu khởi động lại.

  5. Bạn có thể thay đổi nơi thư mục được gắn kết bằng cách sử dụng lệnh VBoxControl. Lệnh được cài đặt khi Guest Additions được cài đặt. Có thể yêu cầu khởi động lại. Ví dụ, để thay đổi mount point từ /media/sf_...để /home/toto/sf_...sử dụng lệnh sau để thiết lập thư mục guestproperty VirtualBox chia sẻ:

sudo VBoxControl setproperty set / VirtualBox / GuestAdd / SharedFolders / MountDir / home / toto /

Để xác nhận thay đổi, sử dụng get:

sudo VBoxControl guestproperty get /VirtualBox/GuestAdd/SharedFolders/MountDir

Người giới thiệu:

Thông tin thư mục chia sẻ của VirtualBox

Thông tin khách mời của VirtualBox


4
Sự cố mới, với Vbox 4.3.10, liên kết bị hỏng, hãy kiểm tra để xác minh (ls -l) /sbin/mount.vboxsf Nếu mục tiêu đó không tồn tại, thư mục phải được ánh xạ lại: sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
ppostma1

4
Để thêm người dùng myuser vào nhóm vboxsf, bạn có thể sử dụng: sudo adduser myuser vboxsf

VirtualBox 4.3.14 khắc phục sự cố cài đặt Khách bổ sung cho RHEL 7 và CentOS 7. Cài đặt Bổ sung khách bằng cách sử dụng: if-not-true-then-false.com/2010/ phỏng

Tôi đang dùng VirtualBox 4.3.20 trên Windows 8.1. Tôi đã cài đặt Ubuntu trong VM. Tôi không thể nhìn thấy type vboxsfkhi chạy mountlệnh mặc dù tôi đã cài đặt công cụ khách! vui lòng giúp đỡ
J86

20

Khi gặp phải:

mount: Protocol error

sau khi cố gắng chia sẻ các thư mục trong VirtualBox, vd:

$ sudo mount -o uid=1000,gid=1000 -t vboxsf D_DRIVE ~/host

Điều này cuối cùng đã làm việc cho tôi:

$ sudo apt-get install virtualbox-guest-dkms

(Thiết lập của tôi: máy chủ Windows 7, khách: Ubuntu 12.04,13.10,14.04; hiện đang chạy VBox 4.3.10 r93012)


5

Cài đặt bổ sung hộp ảo trên os khách. Sau đó tắt hệ điều hành khách. Mở cài đặt của khách trong hộp ảo. Sau đó thêm một thư mục chia sẻ và lưu các cài đặt. Sau đó bắt đầu os khách và cho ubfox ban hành lệnh dưới đây. Nó thêm người dùng hiện tại vào nhóm vboxsf.

người dùng sudo $ USER vboxsf

khởi động lại hệ điều hành khách và điều hướng đến / media / để truy cập thư mục dùng chung.


sudo adduser không hoạt động đối với tôi Tôi thêm vào để sử dụng "sudo usermod -a -G vboxsf myUser" và nó hoạt động. Cảm ơn bạn
Alex

1
Đúng, đó là những gì còn thiếu: sudo adduser $ USER vboxsf Bây giờ nó hoạt động :-)

3

Bên trong máy khách VirtualBox của Linux hoặc Mac OS X, khi bạn đã cài đặt Bổ sung khách VirtualBox, bạn có thể khám phá các thư mục chia sẻ VirtualBox có sẵn bằng lệnh sau:

sudo  VBoxControl  sharedfolder  list

Nếu thư mục nhà của bạn bên trong khách của bạn chứa các thư mục có cùng tên với các thư mục được chia sẻ VirtualBox, bạn có thể tự động gắn chúng với tập lệnh shell sau:

#!/bin/sh
#-----------------------------------------------------------------------------
# Discover VirtualBox shared folders and mount them if it makes sense
#-----------------------------------------------------------------------------

if  !  type  VBoxControl  > /dev/null;  then
  echo  'VirtualBox Guest Additions NOT found'  > /dev/stderr
  exit 1
fi

MY_UID="$(id -u)"
MY_GID="$(id -g)"

( set -x;  sudo  VBoxControl  sharedfolder  list; )  |  \
grep      '^ *[0-9][0-9]* *- *'                      |  \
sed  -e 's/^ *[0-9][0-9]* *- *//'                    |  \
while  read  SHARED_FOLDER
do
  MOUNT_POINT="$HOME/$SHARED_FOLDER"
  if  [ -d "$MOUNT_POINT" ];  then
    MOUNTED="$(mount  |  grep  "$MOUNT_POINT")"
    if  [ "$MOUNTED" ];  then
      echo  "Already mounted :  $MOUNTED"
    else
      (
        set -x
        sudo  mount  -t vboxsf  -o "nosuid,uid=$MY_UID,gid=$MY_GID"  "$SHARED_FOLDER"  "$MOUNT_POINT"
      )
    fi
  fi
done

1

Khi bạn gặp lỗi sau: /sbin/mount.vboxsf: lỗi không thành công với lỗi: Lỗi giao thức

Thật không may, điều này có nghĩa là bạn sử dụng tên chia sẻ mặc định hoặc tên thư mục chia sẻ của máy chủ giống như tên chia sẻ khách được gắn kết. Trong trường hợp này là "chia sẻ". Chỉ cần tạo một thư mục chia sẻ khác, tức là "vb_share" và sau đó chỉ cần thực thi:

gắn kết -t vboxsf vb_share / home / <user> / host


1
  • Cài đặt Bổ sung Vbox (tệp ISO hoặc tải xuống sau đó)
  • Tạo một thư mục với bất kỳ tên nào trong hai hệ thống ( mkdir shareví dụ)
  • kết nối với "thư mục chia sẻ VBox" thư mục chia sẻ trong các hệ thống gốc
  • sử dụng lệnh để kết nối thư mục của bạn:
    sudo mount -t vboxsf name_of_folder_linked ~/name_of_folder_guest/

0

Thiết lập: VirtualBox 4.3.26, máy chủ Win 7 SP1, máy khách Debian jessie 8.0 (ổn định).

Trong Trình quản lý VirtualBox, chọn Cài đặt thư mục dùng chung ... trong menu thả xuống Thiết bị .

Trong cửa sổ bật lên kết quả, chọn Thư mục máy trong Danh sách thư mục và sau đó nhấp vào nút "Thêm định nghĩa thư mục chia sẻ mới" (thư mục màu xanh có biểu tượng dấu "+" màu xanh lá cây ở bên phải Danh sách thư mục ).

Trong biểu mẫu Thêm chia sẻ bật lên, bấm vào nút mũi tên xuống trong trường Đường dẫn thư mục , sau đó chọn Khác . Một Browse For Folder cửa sổ pop-up sẽ xuất hiện.

(Trong trường hợp của tôi, tôi vừa thêm một ổ cứng khác vào máy trạm của mình để sử dụng cho chia sẻ chuyên dụng, đã được định dạng cho NTFS, với tên âm lượng là "chia sẻ" và được gắn là "G:". Vì vậy, tôi đã nhấp vào mũi tên bên cạnh Máy tính , ổ đĩa được chọn G: và sau đó nhấp vào nút OK .)

(Trong trường hợp của bạn, bạn nên chọn bất kỳ thư mục hoặc ổ đĩa nào bạn định chia sẻ, sau đó nhấp vào nút OK .)

Khi bạn đã lựa chọn và nhấp vào nút OK , Trình quản lý VirtualBox sẽ điền vào các trường Đường dẫn thư mụcTên thư mục của biểu mẫu Thêm chia sẻ . Để riêng trường Đường dẫn thư mục , nhưng bạn có thể thay đổi Tên thư mục nếu muốn - chỉ cần chắc chắn ghi nhớ nó sau này.

Hoàn thành biểu mẫu Thêm chia sẻ bằng cách chọn hộp kiểm Tạo vĩnh viễn , nhưng hãy chắc chắn để hộp kiểm Tự động gắn kết bị xóa - chúng tôi sẽ tiến hành gắn kết sau. (Và tất nhiên, nếu bạn muốn tạo thư mục hoặc ổ đĩa chỉ đọc, hãy tiếp tục và chọn hộp Chỉ đọc .) Sau đó nhấp vào nút OK .

Chia sẻ được cấu hình mới bây giờ sẽ xuất hiện dưới dạng một mục trong Thư mục máy trong Danh sách thư mục . Nhấp vào nút OK .

Để gắn kết chia sẻ này trong khi khởi động (khởi động), chúng ta cần thêm một dòng định nghĩa gắn kết vào / etc / fstab trong cài đặt máy khách jessie Debian của chúng tôi. Chỉnh sửa này cần phải được thực hiện dưới dạng root hoặc thông qua sudo, ví dụ:

sudo nano /etc/fstab

(Cá nhân tôi đã sử dụng vi, nhưng vì nano là trình chỉnh sửa mặc định trên Debian jessie nên tôi đã chỉ định nó trong ví dụ trên.)

Để gắn kết chia sẻ này trong thư mục nhà của tôi, với quyền sở hữu và nhóm được đặt thành UID và GID cá nhân của tôi, tôi đã thêm định nghĩa sau vào / etc / fstab:

share /home/conib/share vboxsf comment=systemd.automount,uid=conib,gid=conib,noauto 0 0

(Lưu ý rằng không có khoảng trắng xung quanh các ký tự "=", "." Hoặc ",".)

Một định nghĩa / etc / fstab có dạng

<Device> <Mount Point> <Type> <Options> <Dump> <Pass>

(Lưu ý rằng phải có khoảng trắng - khoảng trắng và / hoặc tab (giữa) giữa các trường của định nghĩa, nhưng không có khoảng trắng trong trường.)

Trường "Thiết bị" phải được đặt thành Tên thư mục mà chúng tôi đã chỉ định qua VirtualBox Manager Add Share . Tôi đã thay đổi "G_DRIVE" mặc định thành "chia sẻ".

"Mount Point" là một đặc tả đường dẫn thư mục phải tồn tại nhưng phải trống. (Nghĩa là, mọi thứ đã có trong thư mục đó sẽ bị ẩn bởi những gì bạn đang gắn trên nó.) Tôi đã tạo một thư mục con mới, trống có tên "share" trong thư mục nhà của tôi.

"Loại" là "vboxsf".

"Tùy chọn" (bình luận = systemd.automount, uid = conib, gid = conib, noauto) là một mẹo nhỏ và gặp một chút rắc rối khi làm việc cho thiết lập này.

Đặt "Kết xuất" thành 0 trừ khi bạn biết bạn muốn nó được đặt thành thứ khác.

Và vì chúng tôi không muốn fsck kiểm tra chia sẻ này, hãy đặt "Đạt" thành 0.

Khi bạn đã thêm dòng định nghĩa vào / etc / fstab, hãy khởi động lại máy khách Debian của bạn và xác nhận rằng bạn có thể xem các tệp và thư mục con của Chia sẻ.

HTH.

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.