Cách tắt an toàn hệ điều hành khách trong VirtualBox bằng dòng lệnh


70

Tôi có Ubuntu 10.10 và sử dụng VirtualBox 3.2. Là một hệ điều hành khách, tôi có một Ubuntu khác trong VirtualBox.

Tôi đang tự động khởi động Guest Ubuntu bằng cách sử dụng lệnh sau khi Ubuntu Ubuntu của tôi khởi động:

VBoxHeadless -startvm Ubuntu --vrdp on

Sau đó tôi có thể truy cập nó với ssh hoặc tsclient.

Bây giờ tôi cần tắt tự động Guest Ubuntu sau khi tắt Ubuntu Host của tôi. Có ai biết phương pháp an toàn nào để tự động tắt Guest Ubuntu bằng một dòng lệnh không? Tôi đã tìm ra hai cách người ta có thể tắt hệ điều hành khách nhưng tôi không chắc liệu chúng có an toàn hay không. Đây là:

VBoxManage controlvm Ubuntu acpipowerbutton

hoặc là

VBoxManage controlvm Ubuntu poweroff

Câu trả lời:


57

Nếu bạn mở tùy chọn quản lý Gnome Power, bạn có thể đặt hành động cần thực hiện khi nhấn nút nguồn. Nếu bạn đặt nó tắt, nó sẽ tắt một cách duyên dáng khi bạn nhấn nút nguồn ảo bằng VBoxManage controlvm Ubuntu acpipowerbutton lệnh.


16

Để tắt máy an toàn vm, hãy sử dụng lệnh này:

vboxmanage controlvm Ubuntu poweroff soft

9
Bạn có thể cung cấp nguồn của bạn? Tôi dường như không thể tìm thấy bất cứ điều gì trên tùy chọn "mềm" này trong Chương 8 của tài liệu VBox.
rbaleksandar

5
Giết chết vms không nghi ngờ kể từ năm 2013. Có thể loại bỏ câu trả lời này? Bất kỳ ai?
Đã bật lại

11

Nếu bạn đang tắt vm khi máy chủ thực hiện, bạn phải đợi vm (s)

(Trong shellscript này, 'root' là kẻ xâm lược và 'theuser' là chủ sở hữu của 'thevm')

Tôi biết vms đã kết thúc khi đầu ra của lệnh VBoxManage list runningvmstrả về một chuỗi rỗng.

Tôi sử dụng điều này trong kịch bản shell của tôi

...
stop(){
    su -c "VBoxManage controlvm thevm acpipowerbutton" -s /bin/bash theuser
    while [ "`su -c 'VBoxManage list runningvms' -s /bin/bash theuser`" != "" ]
    do
        echo waiting for VMs to shutdown
        sleep 3
    done
}
...

9

Đừng làm điều này:

VBoxManage controlvm Ubuntu poweroff

Nó tương đương với việc rút phích cắm điện trên máy tính thật. Bạn không muốn làm điều này!

Sử dụng phương pháp tắt ACPI (kiểm tra cài đặt quản lý nguồn như Egil gợi ý) hoặc có thể thử phương thức lưu trạng thái ( savestate).


1
Có lẽ không nên làm điều này! phần trước lệnh. Tôi đọc hai dòng đầu tiên và chạy lệnh!
nsane

1
@ nisargshah95 Tôi có thể giới thiệu cho bạn ví dụ được đưa ra bởi chủ đề này . Luôn đọc tất cả các hướng dẫn trước và luôn nỗ lực để hiểu bất kỳ lệnh nào trước khi chạy nó. Đặc biệt đúng trong Linux.
Samuel Harmer

2
Tôi hiểu, nhưng trong trường hợp phổ biến nhất, sau khi đọc lệnh, một người sẽ suy luận rằng đó là giải pháp (không cần đọc thêm)
nsane

Tôi đồng ý @nsane - Tôi đã đề xuất chỉnh sửa để điều này không xảy ra với người khác.
Adam K Dean

6

Bạn nên tắt nguồn Ubuntu ảo giống như bạn khởi động phần cứng thực sự của mình. Từ một commanline trên một phiên ssh vấn đề từ xa:

sudo poweroff

Nếu bạn muốn lưu trạng thái máy (tương tự như tạm dừng / ngủ đông), hãy sử dụng điểm thứ hai trong câu trả lời của @ htorque .


-4

Tôi thường tắt VM (Linux) bởi $ sudo shutdown -h now tôi đoán đó là cách chấm dứt VM một cách duyên dáng nhất vì nó tắt máy (không tắt nguồn) và cung cấp thời gian gia hạn và (có thể) thông báo cho người dùng đăng nhập.


1
Câu hỏi liên quan đến việc tắt hệ điều hành khách khỏi máy chủ. Điều này sẽ không có hiệu ứng ... er ... nếu bạn chạy nó từ máy chủ.
Dave
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.