Cara aman mematikan Guest OS di VirtualBox menggunakan baris perintah

70

Saya memiliki Ubuntu 10.10 dan menggunakan VirtualBox 3.2. Sebagai OS Tamu saya memiliki Ubuntu lain di VirtualBox.

Saya memulai Guest Ubuntu secara otomatis menggunakan perintah berikut setelah Host Ubuntu saya boot:

VBoxHeadless -startvm Ubuntu --vrdp on

Maka saya dapat mengaksesnya dengan ssh atau tsclient.

Sekarang saya harus mematikan Ubuntu Guest secara otomatis begitu saya mematikan Ubuntu Host saya. Adakah yang tahu metode aman apa pun untuk secara otomatis mematikan Guest Ubuntu dengan baris perintah? Saya telah menemukan dua cara seseorang dapat mematikan OS Tamu tetapi saya tidak yakin apakah mereka aman atau tidak. Inilah mereka:

VBoxManage controlvm Ubuntu acpipowerbutton

atau

VBoxManage controlvm Ubuntu poweroff
Bakhtiyor
sumber

Jawaban:

57

Jika Anda membuka preferensi manajemen Gnome Power, Anda dapat mengatur tindakan apa yang harus diambil ketika tombol power. Jika Anda mengaturnya untuk dimatikan, itu akan dimatikan dengan anggun ketika Anda menekan tombol daya virtual dengan VBoxManage controlvm Ubuntu acpipowerbutton perintah.

Egil
sumber
16

Untuk mematikan aman vm gunakan perintah ini:

vboxmanage controlvm Ubuntu poweroff soft
menzer
sumber
9
Bisakah Anda memberikan sumber Anda? Sepertinya saya tidak dapat menemukan apa pun pada opsi "lunak" ini di Bab 8 dokumentasi VBox.
rbaleksandar
5
Membunuh vms yang tidak curiga sejak 2013. Mungkin menghapus jawaban ini? Siapa saja?
Dicabut
11

Jika Anda mematikan vm ketika server melakukannya, Anda harus menunggu untuk vm (s)

(Dalam shellscript ini 'root' adalah penyerang, dan 'theuser' adalah pemilik 'thevm')

Saya tahu vms telah selesai ketika output dari perintah VBoxManage list runningvmsmengembalikan sebuah string kosong.

Saya menggunakan ini dalam skrip shell saya

...
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
}
...
Jorge Sanchez
sumber
9

Jangan lakukan ini:

VBoxManage controlvm Ubuntu poweroff

Ini sama dengan mencabut steker listrik di komputer sungguhan. Anda tidak ingin melakukan ini!

Gunakan metode shutdown ACPI (periksa pengaturan manajemen daya seperti yang disarankan Egil) atau savestatecoba metode save state ( ).

htorque
sumber
1
mungkin harus meletakkan jangan lakukan ini! bagian sebelum perintah. Saya membaca dua baris pertama dan menjalankan perintah!
nsane
1
@ nisargshah95 Perkenankan saya merujuk Anda ke contoh yang diberikan oleh utas ini . Selalu baca semua instruksi terlebih dahulu dan selalu berusaha memahami perintah apa pun sebelum menjalankannya. Terutama berlaku di Linux.
Samuel Harmer
2
Saya mengerti, tetapi dalam kasus yang paling umum, setelah membaca perintah, seseorang akan menyimpulkan bahwa itu adalah solusinya (tanpa membaca lebih lanjut)
nsane
Saya setuju @nsane - Saya telah menyarankan edit agar ini tidak terjadi pada orang lain.
Adam K Dean
6

Anda harus mematikan Ubuntu virtual seperti halnya mematikan perangkat nyata Anda. Dari commanline pada sesi ssh masalah jarak jauh:

sudo poweroff

Jika Anda ingin menyimpan status mesin (mirip dengan menangguhkan / hibernasi) gunakan titik kedua dalam jawaban @ htorque .

Takkat
sumber
-4

Saya biasanya mematikan VM (Linux) oleh $ sudo shutdown -h now saya kira itu adalah cara yang paling anggun untuk mengakhiri VM karena itu shutdown (bukan poweroff) dan memberikan waktu tambahan dan (mungkin) pesan kepada pengguna login.

Woogon Chung
sumber
1
Pertanyaannya berkaitan dengan mematikan OS tamu dari tuan rumah. Ini tidak akan memiliki ... er ... efek yang diinginkan, jika Anda menjalankannya dari mesin host.
Dave