วิธีปิดระบบปฏิบัติการ Guest อย่างปลอดภัยใน VirtualBox โดยใช้บรรทัดคำสั่ง


70

ฉันมี Ubuntu 10.10 และใช้ VirtualBox 3.2 ในฐานะแขกของฉันฉันมี Ubuntu อื่นใน VirtualBox

ฉันเริ่มต้น Guest Ubuntu โดยอัตโนมัติโดยใช้คำสั่งต่อไปนี้เมื่อบูท Host Ubuntu ของฉัน:

VBoxHeadless -startvm Ubuntu --vrdp on

จากนั้นฉันสามารถเข้าถึงด้วย ssh หรือ tsclient

ตอนนี้ฉันต้องปิดเครื่องโดยอัตโนมัติ Guest Ubuntu เมื่อฉันปิด Host Ubuntu ใครบ้างรู้วิธีที่ปลอดภัยเพื่อปิด Guest Ubuntu โดยอัตโนมัติด้วยบรรทัดคำสั่ง? ฉันพบสองวิธีหนึ่งที่สามารถปิด Guest OS ได้ แต่ฉันไม่แน่ใจว่าปลอดภัยหรือไม่ นี่คือพวกเขา:

VBoxManage controlvm Ubuntu acpipowerbutton

หรือ

VBoxManage controlvm Ubuntu poweroff

คำตอบ:


57

หากคุณเปิดการตั้งค่าการจัดการพลังงานของ Gnome คุณสามารถตั้งค่าการกระทำที่จะทำเมื่อปุ่มเปิดปิด หากคุณตั้งค่าให้ปิดเครื่องมันจะปิดลงอย่างสวยงามเมื่อคุณกดปุ่มเปิด / ปิดเสมือนพร้อมVBoxManage controlvm Ubuntu acpipowerbutton คำสั่ง


16

หากต้องการปิดใช้ vm อย่างปลอดภัยให้ใช้คำสั่งนี้:

vboxmanage controlvm Ubuntu poweroff soft

9
คุณสามารถให้แหล่งที่มาของคุณ? ฉันดูเหมือนจะไม่พบสิ่งใดในตัวเลือก "อ่อน" นี้ในบทที่ 8 ของเอกสารประกอบ VBox
rbaleksandar

5
ฆ่า vms ที่ไม่สงสัยตั้งแต่ปี 2013 อาจลบคำตอบนี้ไหม ใคร?
ถอนตัว

11

หากคุณกำลังปิด vm เมื่อเซิร์ฟเวอร์ทำคุณจะต้องรอ vm

(ใน shellscript 'root' นี้เป็นผู้เรียกใช้และ 'theuser' เป็นเจ้าของ 'thevm')

ฉันรู้ว่า vms เสร็จสิ้นเมื่อผลลัพธ์ของคำสั่งVBoxManage list runningvmsส่งคืนสตริงว่าง

ฉันใช้สิ่งนี้ในเชลล์สคริปต์

...
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

อย่าทำสิ่งนี้:

VBoxManage controlvm Ubuntu poweroff

มันเทียบเท่ากับการดึงปลั๊กไฟบนคอมพิวเตอร์จริง คุณไม่ต้องการทำสิ่งนี้!

ใช้วิธีการปิด ACPI (ตรวจสอบการตั้งค่าการจัดการพลังงานเช่น Egil แนะนำ) หรืออาจจะsavestateลองวิธีบันทึกสถานะ ( )


1
อาจจะใส่ไม่ทำ! ส่วนหนึ่งก่อนที่คำสั่ง ฉันอ่านสองบรรทัดแรกแล้วรันคำสั่ง!
nsane

1
@ nisargshah95 ฉันขอให้คุณดูตัวอย่างที่ได้รับจากกระทู้นี้ อ่านคำแนะนำทั้งหมดก่อนเสมอและพยายามทำความเข้าใจคำสั่งใด ๆ ก่อนเรียกใช้ โดยเฉพาะอย่างยิ่งความจริงใน Linux
ซามูเอลฮาร์เมอร์

2
ฉันเข้าใจ แต่ในกรณีที่พบมากที่สุดหลังจากที่ได้อ่านคำสั่งให้บุคคลที่จะสรุปว่ามันเป็นวิธีการ (โดยไม่ต้องอ่านเพิ่มเติมใด ๆ )
nsane

ฉันเห็นด้วย @nsane - ฉันได้แนะนำการแก้ไขเพื่อไม่ให้เกิดปัญหากับผู้อื่น
Adam K Dean

6

คุณควรปิดเพาเวอร์อูบุนตูเสมือนของคุณเช่นเดียวกับที่คุณทำเพื่อปิดฮาร์ดแวร์จริงของคุณ จาก commanline ในเซสชัน ssh ปัญหาจากระยะไกล:

sudo poweroff

หากคุณต้องการที่จะบันทึกสถานะเครื่อง (คล้ายกับระงับ / จำศีล) ใช้จุดที่สองในคำตอบ @ htorque ของ


-4

ฉันมักจะปิด VM (Linux) โดย $ sudo shutdown -h now ฉันคิดว่ามันเป็นวิธีที่ดีที่สุดในการยกเลิก VM เพราะมันปิด (ไม่ใช่ poweroff) และให้เวลาผ่อนผันและ (เป็นไปได้) ข้อความถึงผู้ใช้ที่เข้าสู่ระบบ


1
คำถามเกี่ยวข้องกับการปิด guest OS จากโฮสต์ นี่จะไม่มีเอฟเฟ็กต์ ... เอ่อ ... ถ้าคุณวิ่งจากเครื่องโฮสต์
เดฟ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.