Cách cài đặt VirtualBox Guest Additions trong máy ảo Debian


46

Tôi đã gặp khó khăn khi cài đặt VirtualBox Guest Additions trong Debian Virtual Machine (Debian 7, Debian 8 và Debian 9).

Câu trả lời:


66

Phiên bản TL; DR cho Debian 9 là, như root:

echo deb http://ftp.debian.org/debian stretch-backports main contrib > /etc/apt/sources.list.d/stretch-backports.list
apt update
apt install virtualbox-guest-dkms virtualbox-guest-x11 linux-headers-$(uname -r)

Thế là xong, VirtualBox Guest Additions đã được cài đặt.

VirtualBox không có sẵn trong Debian 10 và sẽ không có sẵn trong buster-backportscả hai. Lucas Nussbaum có một bộ gói không chính thức; nếu bạn muốn sử dụng chúng, bạn nên làm theo hướng dẫn của anh ấy (chỉ liên kết - nếu liên kết dừng hợp lệ, các gói có lẽ không có sẵn, vì vậy sao chép hướng dẫn ở đây là vô nghĩa).

Chi tiết hơn, đây là giải pháp cho Debian 7, 8 và 9, sử dụng các gói Debian:

  • cho Debian 7 và 8, kích hoạt các contribkho lưu trữ; ví dụ: cho Debian 8, hãy đảm bảo rằng bạn /etc/apt/sources.listchứa thứ gì đó như

    deb http://ftp.debian.org/debian jessie main contrib
    
  • cho Debian 9, kích hoạt backport với contrib; để làm như vậy, thêm một dòng như

    deb http://ftp.debian.org/debian stretch-backports main contrib
    

    đến /etc/apt/sources.list(hoặc tốt hơn nữa, một stretch-backports.listtập tin trong /etc/apt/sources.list.d);

  • cài đặt virtualbox-guest-dkms, tiêu đề kernel và tùy chọn virtualbox-guest-x11(đối với các tiện ích khách đồ họa):

    sudo apt update
    sudo apt install virtualbox-guest-dkms virtualbox-guest-x11 linux-headers-$(uname -r)
    

    (với -t stretch-backportssau installtrong dòng thứ hai nếu bạn đang sử dụng Debian 9).

Đó là tất cả những gì cần thiết - bạn không cần phải bổ sung các bổ sung khách trong máy ảo của mình hoặc chạy trình cài đặt. Bạn có thể thêm ba dòng yêu cầu shell vào Vagrantfile(hoặc bất cứ thứ gì bạn sử dụng để cung cấp VM) và quên chúng đi.

Cài đặt virtualbox-guest-dkmsgói sẽ đảm bảo rằng các mô-đun hạt nhân thích hợp được tự động xây dựng (và được xây dựng lại khi nhân được nâng cấp) và cài đặt các bổ sung của khách.

(Lưu ý rằng điều này sẽ cài đặt phiên bản bổ sung dành cho khách có sẵn trong bất kỳ phiên bản Debian nào bạn đang sử dụng trong VM , có thể không khớp với phiên bản Virtual Box chạy VM - nhưng các bổ sung dành cho khách vẫn hoạt động tốt.)


1
Xác nhận làm việc cho Debian 8.3 - 3.16.0-4-amd64 - 3.16.51-3 (2017-12-13) Bạn có thể cài đặt bổ sung "chỉ máy chủ" mà không cần thêm X-11 với cài đặt apt-get --no-install -recommends virtualbox-guest-utils virtualbox-guest-dkms linux-headers - $ (uname -r)
Marco Rossi

Thông tin thực sự có giá trị về một cài đặt hiệu quả! Tôi đã chọn sử dụng vagrant-vbguest theo đề xuất của Richard tại superuser.com/a/1025183/187346 vì tôi liên tục gặp phải các lỗi mơ hồ với các thư mục dùng chung vì các bổ sung của khách không được cài đặt nhưng các thư mục đã được chỉ định.
Colin

54

Thực hiện theo các bước sau để cài đặt Bổ sung khách VirtualBox trên máy ảo Linux Debian của bạn:

  1. Mở terminal và trở thành root( su); nếu bạn đã sudokích hoạt, bạn cũng có thể làm ví dụ sudo -i; xem man sudocho tất cả các tùy chọn):

    su
    

nhập mật khẩu root và nhấn enter

Ngoài ra, bạn có thể sử dụng sudo -snếu bạn đã cài đặt và người dùng nơi bạn đăng nhập có các quyền cần thiết ...

  1. Cập nhật bộ đệm APT :

    apt-get update
    
  2. Cài đặt các bản cập nhật bảo mật mới nhất:

    Bước này sẽ nâng cấp tất cả các gói của bạn, vì vậy hãy khôn ngoan về nó. Hãy thử các bước sau trước và chúng có thể đủ để hoạt động nếu không, sau đó thực hiện nâng cấp và thử lại.

    apt-get upgrade
    
  3. Cài đặt các gói cần thiết này:

    Các gói build-essentialmodule-assistantcả hai đều được yêu cầu để có thể biên dịch các mô-đun hạt nhân và vì vậy khi cài đặt VirtualBox Linux Guest Additions, bạn phải có chúng. Vì vậy, lệnh này sẽ nhận được các tiêu đề và gói (trình biên dịch và thư viện) cần thiết để làm việc. Lưu ý rằng sau khi cài đặt VirtualBox Linux Guest Additions, bạn sẽ để lại một số gói cũng như các tiêu đề Linux mà bạn có thể xóa sau đó hoặc không. Trong trường hợp của tôi, họ không bị tổn thương, nhưng vì sự gọn gàng của hệ thống, bạn có thể muốn nhận sau khi chơi.

    apt-get install build-essential module-assistant
    
  4. Cấu hình hệ thống của bạn để xây dựng các mô-đun hạt nhân:

    m-a prepare
    
  5. Chèn khách bổ sung ISO:

    Mở rộng menu Thiết bị và nhấp vào Chèn hình ảnh CD Bổ sung của khách ...

  6. Nó sẽ tự động gắn kết, nhưng nếu vì bất kỳ lý do gì thì nó không:

    mount /media/cdrom
    
  7. Chạy đoạn script sau:

    sh /media/cdrom/VBoxLinuxAdditions.run
    
  8. Khởi động lại hệ thống:

    reboot
    

3
Điều này hoạt động cho Debian 9.
Ortomala Lokni

1
Trên Debian 9, thông báo lỗi này cho biết "không thể tìm thấy nguồn của nhân Linux hiện tại của bạn."
dùng2800708

2
Bạn đang thiếu Tiêu đề hạt nhân, vui lòng thửsudo apt-get update && sudo apt-get install linux-headers-`uname -r`
ximbal

đồng thời kiểm tra xem bạn có cài đặt hộp ảo cập nhật không
Hayden Thring

2
Lệnh m-a preparesẽ kéo linux-headersgói, tất cả các hướng dẫn hoạt động tốt trong cài đặt Debian 9.
alemani

5

Một cách khác để cài đặt các addons khách VirtualBox từ kho lưu trữ Debian là sử dụng các nguồn từ nhà cung cấp. Kho lưu trữ dự kiến ​​sẽ cung cấp mã cũ hơn và ổn định hơn trong khi các nguồn từ nhà cung cấp sẽ có các tính năng mới nhất và cập nhật bảo mật.

Tôi đã thử thành công các hướng dẫn tiếp theo trên máy khách Debian 9.4 chạy Linux kernel 4.9.0-4 bằng VirtualBox 5.0.30 và OS X 10.11.6. Đầu tiên, đính kèm hình ảnh ISO bổ trợ khách vào máy ảo và sau đó khởi động nó. Sau khi khởi động, nội dung của hình ảnh sẽ có sẵn /media/cdrom0/. Đầu tiên, có hai gói và phần phụ thuộc của chúng phải được cài đặt:

$ sudo apt-get install linux-headers-$(uname -r) build-essential

Sau đó, chạy tập lệnh do nhà cung cấp cung cấp để xây dựng và cài đặt các mô-đun hạt nhân cần thiết:

$ cd /media/cdrom0/
$ sudo sh VBoxLinuxAdditions.run

Khởi động lại máy ảo và tận hưởng!


4

Trong Debian 9, gói virtualbox-guest-dkms nằm trong kho (sid) không ổn định.

  • Thêm cái này vào /etc/apt/sources.list:

    deb http://http.us.debian.org/debian sid main non-free contrib
    
  • Cập nhật kho và cài đặt gói

    sudo apt-get update
    sudo apt-get install virtualbox-guest-dkms
    
  • Tùy chọn: vô hiệu hóa kho lưu trữ bên, bởi vì nó có các bản cập nhật cho các gói mà bạn có thể không muốn.


Điều này dường như hoạt động cho đến khi tôi khởi động lại máy ảo; sau khi được sao lưu, nó vẫn "rsync" d thay vì gắn thư mục máy chủ hiện tại vào /vagrantVM. Vì giá treo đó là toàn bộ lý do mà tôi muốn bổ sung cho khách, nên nó vẫn bị hỏng một cách hiệu quả.
off1

Không phải là duỗi dài thường thích sử dụng sid?
Karl Bartel
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.