Chạy VirtualBox trong nền, không có cửa sổ?


106

Tôi đã tự hỏi nếu nó có thể chạy một máy ảo Ubuntu bằng VirtualBox trong nền, ý tôi là, không có bất kỳ cửa sổ nào mở.

Ý tưởng là kết nối thông qua SSH với máy chủ Linux, sẽ chạy trong nền.

Có ai đã từng làm một cái gì đó như thế này? Có thể không?


Bạn có nghĩa là kết nối thông qua SSH với khách linux ? Bạn có thể làm điều này rất dễ dàng với QEMU, thứ sẽ thực sự chạy khách trong thiết bị đầu cuối của bạn.
Felix

Vì vậy, bạn cũng có thể quan tâm đến cấu hình SSH: superuser.com/questions/424083/virtualbox-host-ssh-to-guest
Fabricio PH


1
Bỏ ngỏ vì câu hỏi này được đối xử tốt hơn như bản gốc; đã bỏ phiếu để đóng như là bản sao cho câu hỏi khác.
bwDraco

Hoàn toàn đồng ý với @DragonLord - bấm vào đây để chuyển sang câu hỏi khác và đóng nó dưới dạng một bản sao cho câu hỏi này.
Raystafarian

Câu trả lời:


92

VBoxManage startvm $VM --type headless sẽ khởi động máy ảo được chỉ định trong nền.

Để tắt nó, yêu cầu tắt từ khách.


Bạn sẽ chỉ có thể SSH vào máy nếu bạn thiết lập kết nối mạng đúng cách. Tôi nghĩ bạn cần sử dụng cầu nối để VM và máy của bạn nằm trên cùng một mạng. Ngoài ra, VirtualBox vẫn sẽ chạy gui của HĐH đích và bạn có thể kết nối với nó thông qua máy tính để bàn từ xa, "rdesktop" (lấy từ apt kể từ khi bạn ở trong ubfox)
basszero

1
Thật. Tôi giả sử rằng VM thường được chạy thông qua GUI VirtualBox trước để cài đặt và định cấu hình. Chỉ sử dụng VBoxManage khi mọi thứ (bao gồm cả mạng) hoạt động.
phát triển

Với phần mềm VM khác, tôi có thể đóng cửa sổ để nó không luôn mở và để nó tiếp tục chạy trong nền, nhưng mở cửa sổ khi tôi muốn giao tiếp với nó. Đây có phải là những gì nó làm?
JFA

Đảm bảo ssh vào máy mà không có -X hoặc -Y vì các lệnh này dường như thực hiện lệnh trên gắn quy trình vào vỏ, vì vậy nếu bạn thoát, VM sẽ hủy bỏ.
moritz

63

Điều này được tích hợp vào VirtualBox 4.2.

Chỉ cần giữ phím Shift khi khởi chạy VM từ Trình quản lý.

https://bloss.oracle.com/fatbloke/entry/what_s_new_in_oracle


1
Cập nhật: trong VirtualBox 5.1, bạn thậm chí có một menu bắt đầu thả xuống ngay bên phải nút bắt đầu trong trình quản lý. Menu này chỉ khả dụng nếu VM bị dừng.
Titou

23

Chắc chắn rồi! Bạn đang tìm kiếm một cài đặt không đầu (Virtualbox). Cách để khởi động máy từ dòng lệnh là:

VBoxHeadless --startvm Debian --vrdp=off

Tuy nhiên, bạn sẽ cần một số cách để kết nối. Những gì tôi làm là ánh xạ cổng giữa khách và máy chủ. Với cấu hình này, cổng 2222 máy chủ của bạn sẽ được ánh xạ tới cổng 22 của máy khách của bạn.

VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222  

Sau đó, bạn có thể đăng nhập bằng:

ssh localhost -p2222

vm phải nghe kết nối ssh, phải không? Nó có thể xứng đáng để làm điều này rõ ràng.
Matheus Santana

3

một thay thế cho VBoxManage startvm "{VMName}" --type headless
VBoxHeadless -startvm "{VMName}"

Thật thú vị, tôi vừa hoàn thành việc tìm ra cách chạy VM không đầu, qua RDP.

Lưu ý - Ít nhất là trên các cửa sổ, nó sẽ chặn cửa sổ lệnh của bạn. Nếu bạn cần tiếp tục sử dụng cửa sổ giao diện điều khiển của mình, hãy mở một cửa sổ khác để khởi động VM.

Để tắt VM, bạn yêu cầu Hệ điều hành khách tắt máy. VBoxHeadlessphát hành bảng điều khiển khi Guest bị tắt hoàn toàn (Bạn có thể Ctrl+C, nhưng tôi nghĩ nó có thể tương tự như thiết lập lại cứng trên máy thật).


Thực tế là vboxheadless chặn giao diện điều khiển rất nhiều đánh bại mục đích của chế độ không đầu. Trên Mac OS X (và có lẽ trên Linux và Solaris), chế độ không đầu hoạt động khi bạn gửi vboxheadless vào nền bằng &.
Andrew J. Brehm

Tôi tưởng tượng có một cách để làm điều đó trên các cửa sổ, tôi chỉ không tìm thấy nó. Trong mọi trường hợp, một vm không đầu chắc chắn sử dụng ít tài nguyên trên máy tính của máy chủ hơn là chạy GUI đầy đủ.
Tên giả

2

Tôi đang sử dụng VBoxTool từ http://vboxtool.sourceforge.net/ và nó hoạt động hoàn hảo với tôi. Nó có thể tự khởi động máy ảo khi khởi động và dừng / lưu máy ảo khi tắt máy và cung cấp giao diện dòng lệnh đơn giản.


2

Tôi không nghĩ chế độ liền mạch hoàn toàn là những gì anh ấy đang tìm kiếm ở đây, tôi nghĩ rằng điều thích hợp sẽ là VBoxHeadless mà bạn có thể tìm thấy chi tiết trong hướng dẫn. Nó chạy bằng giao diện lin-lin và sẽ được sử dụng, ví dụ, nếu một máy ảo đang chạy trên máy chủ nhưng màn hình không muốn từ máy chủ. Bạn sẽ có thể điều khiển máy tính từ xa vào máy (cung cấp cho bạn biết cách đặt tùy chọn thông qua dòng lệnh).

Tôi sẽ khuyên bạn nên hỏi điều này trong các diễn đàn hộp ảo. Trên thực tế, thực hiện tìm kiếm đầu tiên như tôi mong đợi điều này đã được yêu cầu.


VBoxManage là điều đúng đắn, xin lỗi. Liên kết thông tin trong hướng dẫn http://www.virtualbox.org/manual/ch08.html


2

Để bắt đầu ở chế độ không đầu bằng GUI:

Giữ phím Shift khi khởi động VM.

Sau đó, bạn cũng sẽ có thể kết nối và ngắt kết nối khỏi GUI (Sử dụng Hiển thịMáy -> Tách tùy chọn GUI ).


1

Tôi thấy rằng chế độ không đầu dường như hoạt động tốt khi chạy nền trong Linux (CentOS 5.6), nhưng bạn mất quyền truy cập vào chức năng RDP miễn là quá trình được chạy nền. Thực hiện 'fg' để đưa quy trình trở lại nền trước và chức năng RDP được khôi phục. Có vẻ như bắt đầu vm không đầu được hoàn thành tốt nhất thông qua một tập lệnh init, trong đó không cần phải tương tác với bàn điều khiển.


1

Bạn có thể sử dụng VBoxHeadless hoặc (và tôi tự hỏi tại sao không ai đề cập đến điều này trước tôi), bạn chỉ cần chọn một trong các tùy chọn khởi động, sẽ chạy VM mà không cần bất kỳ GUI nào.

Giữ phím shift và khởi động máy, hoặc nhấp chuột phải vào máy và tìm kiếm thứ gì đó như "Chạy mà không xuất" trong mục "Chạy"


0

Tôi đã thêm những dòng này vào .bashrc:

VM='anakim'
alias vm='VBoxManage startvm $VM --type headless'
alias sshvm='ssh -p2222 localhost'

Để truy cập ssh, bạn không cần thay đổi cấu hình, chỉ cần giữ NAT và bạn có thể thiết lập bảng chuyển tiếp cổng như sau:

Name      | Protocol | Host Port | Guest Port
guestssh  | TCP      | 2222      | 22
localhost | TCP      | 8080      | 80

Khi bạn chèn localhost: 8080 vào trình duyệt máy của bạn, trang từ VM (trên cổng 80) sẽ được mở.


0

Nếu VM đang chạy và màn hình hiển thị, bạn có thể ẩn nó bằng cách thực hiện các bước sau.

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

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

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.