Virtualbox chia sẻ thư mục gắn kết từ fstab không thành công; hoạt động khi bootup hoàn tất


41

Tôi đã cài đặt Ubuntu 13.10 trong Virtualbox 4.3. Máy chủ lưu trữ là Windows.

Tôi có một vài thư mục chia sẻ Virtualbox được gắn kết bởi / etc / fstab. Cho đến gần đây, thiết lập này vẫn hoạt động tốt, nhưng sau khi nâng cấp từ Ubuntu 13.04 và Virtualbox 4.2 (về cơ bản cùng lúc), quá trình gắn fstab đã ngừng hoạt động. Tôi gặp lỗi sau khi khởi động:

An error occurred while mounting /home/benme/Documents.
keys:Press S to skip mounting or M for manual recovery

Nhấn M để khôi phục thủ công và sau đó thử gắn thủ công cũng không thành công:

root@benme-vb:~# cd /home/benme
root@benme-vb:/home/benme# mount Documents
/sbin/mount.vboxsf: mounting failed with the error: No such device

Nhưng nếu tôi bỏ qua việc gắn kết trong khi khởi động, hãy đợi Unity bắt đầu và sau đó gắn thủ công vào một vỏ, mọi thứ đều hoạt động tốt:

benme-vb ~ % ls Documents
benme-vb ~ % sudo mount Documents
[sudo] password for benme: 
benme-vb ~ % ls Documents
    # actual file list omitted

Lưu ý rằng khi tôi gắn kết thủ công, tôi sẽ cho phép mount lấy tất cả các tùy chọn từ / etc / fstab và nó hoạt động. Điều này gợi ý cho tôi rằng đó là một số vấn đề về thời gian, trong đó Virtualbox không "sẵn sàng" để cung cấp các gắn kết tệp được chia sẻ tại các điểm gắn kết / etc / fstab được chạy trong khi khởi động.

Đây là dòng fstab, chỉ để hoàn thiện:

Documents       /home/benme/Documents   vboxsf  uid=benme,gid=benme,dmode=774,fmode=664     0   0

Có điều gì tôi có thể làm về điều này từ phía Ubuntu không? Hoặc có ai tình cờ biết thêm về điều này từ góc độ Virtualbox không?

Tôi đã tìm thấy một báo cáo cũ về trình theo dõi lỗi Virtualbox với các triệu chứng giống hệt nhau, nhưng trong trường hợp đó, người dùng đã cập nhật Virtualbox mà không cập nhật các bổ sung khách của họ và giải quyết vấn đề đó; Điều này không xảy ra ở đây, tôi chắc chắn đã cài đặt thêm 4.3 khách.

Câu trả lời:


46

Tôi cũng chạy afoul về vấn đề này. Tôi gắn kết /var/wwwbằng chức năng thư mục chia sẻ VBox, vì vậy điều này khá khó chịu.

Giải pháp tôi tìm thấy là buộc vboxsfmô-đun được tải sớm, trước khi lắp hệ thống tập tin. Chỉ cần thêm vboxsfvào một dòng của riêng mình trong /etc/modules.

Một giải pháp khác là đặt noauto vào /etc/fstabvà gắn ổ đĩa theo cách thủ công /etc/rc.local, nhưng đây không phải là giải pháp tốt cho tôi vì lúc đó Apache đã bắt đầu và không thể tìm thấy bất cứ thứ gì trong đó /var/www.


1
tuyệt vời! thêm vào / etc / mô-đun hoạt động hoàn hảo. cảm ơn Richard
ThePosey

@ThePosey Vui mừng vì đã giúp đỡ!
Richard Turner

Đây là vấn đề đối với tôi trên Ubuntu Server 14.04 khách. Và câu trả lời này (giải pháp / etc / mô-đun) đã giải quyết nó cho tôi. Cảm ơn! PS Btw, nếu bạn tình cờ, cố gắng tìm ra / sửa chữa mọi thứ, đã bật Tự động gắn kết trong cài đặt Virtualbox, vô hiệu hóa lại;)
Reinis

2
@qodeninja Như tôi đã nói trong đoạn thứ hai của mình: "Chỉ cần thêm vboxsfvào một dòng của riêng nó /etc/modules.
Richard Turner

1
Tôi đã phải thêm vboxguest và vboxsf vào / etc / mô-đun trên hệ thống khách Ubuntu 14.04 để nó hoạt động.
mattanja

21

Ngoài đề xuất của Richard Turner về việc thêm vboxsfvào một dòng của riêng mình /etc/modules, tôi khuyên bạn nên thêm _netdevtùy chọn gắn kết vào /etc/fstab. Tôi đã thử nghiệm trên Ubuntu 12.04 LTS và điều này dường như chỉ thêm độ trễ phù hợp để việc gắn kết thành công.

/etc/fstabMục nhập của tôi :

dev /media/dev vboxsf defaults,_netdev 0 0


4
Điều này làm việc cho tôi, ngay cả khi không sử dụng giải pháp của Turner. Cũng có nhiều ý nghĩa, vì trang Trợ giúp Cộng đồng Ubuntu cho các tùy chọn fstab nói, " _netdev- đây là một thiết bị mạng, gắn kết nó sau khi đưa lên mạng." Tôi không phải tải vboxsfvào /etc/modules, chỉ cần thêm _netdevlàm việc!
Đánh dấu Mikofski

1
Điều này cũng hiệu quả với tôi trên Ubuntu 16.04, ngay cả khi không có giải pháp Turner.
Zhenya

5

Bản sửa lỗi của Richard đã ngừng hoạt động đối với tôi sau bản cập nhật cuối cùng (VirtualBox 4.3.18, Ubuntu 14.04). May mắn thay, tôi đã có thể sửa nó, bằng cách tải vboxsfđúng với kernel:

# echo "vboxsf" >> /etc/initramfs-tools/modules
# update-initramfs -u

Lệnh đầu tiên thêm một tham số để tải mô-đun vào kernel và lệnh thứ hai cập nhật hệ thống tệp init. Sau khi khởi động lại, tôi đã có thể sử dụng lại fstab-mount của mình :)

Cảnh báo: Quá trình khởi động có thể bị đóng băng, nếu không thể gắn thư mục dùng chung. Vì vậy, hãy kiểm tra cấu hình của bạn, trước khi bạn thêm mô-đun vào initramfs. Nếu hệ thống của bạn bị treo bằng mọi cách, bạn có thể khởi động ở chế độ phục hồi để khắc phục sự cố.


Tôi đã thử giải pháp này để tải vboxsfmô-đun trước đó ... Nó chỉ đóng băng trình tự khởi động của tôi nên tôi phải gỡ bỏ nó.
Rerito

Vâng, bao gồm các mô-đun sớm có thể đóng băng quá trình khởi động, nếu cấu hình thư mục chia sẻ của bạn bị hỏng. Tuy nhiên, tôi chưa bao giờ gặp phải bất kỳ đóng băng khởi động nào với cấu hình chính xác ...
Torben

Tôi đã thêm một cảnh báo cho câu trả lời để làm cho mọi thứ rõ ràng hơn.
Torben

4

Tôi chỉ muốn nói rằng việc buộc vboxsfmô-đun tải sớm đã giúp tôi (như trong câu trả lời của Richard Turner), nhưng dòng fstab vẫn không hoạt động với tôi.

Điều cuối cùng tôi làm là đưa lệnh mount (đã hoạt động) vào /etc/rc.local. Một chút hack nhưng nó đã làm việc.


1
Tôi không hiểu đề xuất của Richard Turner "đã giúp bạn" như thế nào, nhưng đồng thời, dòng fstab "vẫn không hiệu quả với bạn" ...?
j_random_hacker

4

Với thư mục chia sẻ được liệt kê trong fstab, tôi thấy rằng boot sẽ bị treo khi nó cố gắn nó bằng VirtualBox 5 và Ubuntu 14.04. Giải pháp dường như là trì hoãn việc gắn kết cho đến khi dịch vụ GuestAddition khả dụng ( /etc/modulesgiải pháp của Richard Turner dường như không đủ cho tôi).

Để làm điều này, đảm bảo bạn có noautocác tùy chọn cho thư mục dùng chung /etc/fstab. Ví dụ cho một thư mục chia sẻ được gọi là vmshare:

vmshare    /home/user/share    vboxsf    defaults,noauto    0    0

Sau đó thêm một dòng /etc/rc.localđể gắn kết chia sẻ sau khi khởi động:

mount vmshare

Đây là giải pháp duy nhất hiệu quả với tôi, sử dụng VBox 5.0.16 và Ubuntu 14.04
TJ Compton

3

Có vẻ như vboxsfthiếu fs-vboxsfbí danh (đó là cách các mô-đun hạt nhân được tự động tải khi gắn loại hệ thống tệp đó lần đầu tiên), vì vậy, việc thêm bí danh vào /etc/modprobe.dsẽ thực hiện thủ thuật:

$ echo "alias fs-vboxsf vboxsf" | sudo tee /etc/modprobe.d/vboxsf.conf

Không thử bản thân mình, nhưng nó có vẻ đầy hứa hẹn.
j_random_hacker

2

Tôi đã có cùng một vấn đề, và đã làm việc thông qua các giải pháp được đề xuất, nhưng không thành công. Giải pháp của Torben đóng băng khởi động, vì vậy phải hoàn tác nó. Sau đó, tôi nghĩ rằng tôi nên khắc phục sự cố /etc/fstabbằng cách sử dụng sudo mount -a. Cú pháp của mục nhập của tôi trông hoàn hảo, nhưng nó vẫn thất bại. Tôi cũng có thể tự gắn kết các tập tin bằng cách sử dụng lệnh mount trong cửa sổ terminal.

Những gì tôi tìm thấy là tôi có khoảng cách giữa hai tham số đầu tiên (thiết bị và điểm gắn kết). Tôi đã thay thế chúng bằng một tab và nó hoạt động. Có thật không?!!!!


Bạn có chắc chắn đó là hai ký tự không gian (mã ASCII 32)? Bởi vì một hoặc nhiều trong số đó sẽ tốt như một ký tự tab. Đôi khi, tôi vô tình gõ các ký tự không gian không phá vỡ khi tôi nhấn phím shift để sớm hoặc giải phóng nó quá muộn trong khi nhấn phím cách. Chúng trông giống nhau nhưng nhầm lẫn nhiều ứng dụng.
David Foerster

Tất cả những gì tôi biết là tôi đặt khoảng trống trên tất cả các khoảng trắng và chèn một tab duy nhất và sau đó nó hoạt động.
svenyonson

Chuyển đổi không gian của tôi cho các tab làm việc cho tôi. Hiện tại / etc / fstab của tôi có khoảng trống trong đó (theo như tôi có thể nói) và tôi đã sao chép chúng chính xác. Các dòng hiện có một không gian duy nhất. Nhưng viết lại của tôi với các tab đã làm mọi thứ hoạt động.
jcaruso

Điều này không hiệu quả với tôi, nhưng theo khuyến nghị của Kevin Sadler về việc sử dụng noautođể trì hoãn việc gắn kết, sau đó thêm vào mount <sharename>để rc.localthực hiện thủ thuật. Tôi đã không thử giải pháp của Turner.
Đánh dấu Mikofski

1

Tôi tin rằng tôi đã tìm đúng cách để giải quyết vấn đề này trong Arch Wiki . Sử dụng comment=systemd.automounttùy chọn.

Tùy chọn trên đi trong /etc/fstabtệp với các tùy chọn khác. Ví dụ:

Fedora /var/ftp/pub/Fedora vboxsf uid=1001,gid=1001,comment=systemd.automount 0 0

Điều này không làm việc cho tôi, nhưng câu trả lời của Keven Sadlier đã làm.
Đánh dấu Mikofski
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.