歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> VirtualBox使用心得

VirtualBox使用心得

日期:2017/2/28 15:59:44   编辑:Linux教程
常用命令:

以下所有命令在輸入vboxmanager後都能看到,這裡只是列幾個用的多的。

顯示所有虛擬機:vboxmanage list vms

顯示所有正在運行的虛擬機:vboxmanage list runningvms

顯示虛擬機詳細信息:vboxmanage showvminfo winxp

修改虛擬機名稱:vboxmanage modifyvm winxp --name winxp_clone

修改虛擬機所占用的cpu內核數:vboxmanage modifyvm winxp --cpus 2

啟動虛擬機:vboxmanage startvm winxp --type headless

關閉虛擬機:vboxmanage controlvm winxp poweroff

注冊虛擬機(絕對路徑):vboxmanage registervm <filename>

修改端口映射規則:vboxmanage modifyvm winxp --natpf1 rule_ssh, tcp, , 8888, 10.0.2.15, 8888

將網絡連接修改成橋接:vboxmanage modifyvm winxp --nic1 bridged --bridgeadapter1 eth0

設置虛擬機vrde的ip地址:vboxmanage modifyvm winxp --vrdeport 3388

心得一:虛擬機無法啟動

由於服務器需要斷電,有同事就把服務器關掉了,但是服務器上的虛擬機並沒有正常關閉,結果再開機的時候就顯示下面的錯誤:

  1. [root@localhost ~]# vboxmanage startvm winxp
  2. Waiting for VM "winxp" to power on...
  3. VBoxManage: error: The virtual machine 'winxp' has terminated unexpectedly during startup with exit code 0
  4. VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component Machine, interface IMachine, callee

用help命令查了一下,啟動的時候還有3個參數可以選用。

  1. VBoxManage startvm <uuid>|<name>...
  2. [--type gui|sdl|headless]

突然想起來,剛才用VNC連接就沒成功,可能和界面有關系。干脆用無界面的方式啟動,問題解決。

  1. [root@localhost ~]# vboxmanage startvm winxp --type headless
  2. Waiting for VM "winxp" to power on...
  3. VM "winxp" has been successfully started.

心得二:虛擬機無法注冊

vboxmanage registervm [path]無法注冊,出現如下報錯:

  1. [root@localhost VirtualBox VMs]# vboxmanage registervm CentOS5.6_64\ Clone/
  2. VBoxManage: error: Runtime error opening '/root/.VirtualBox/centos5.6_64 Clone' for reading: -102 (File not found.).
  3. VBoxManage: error: /home/vbox/vbox-4.1.2/src/VBox/Main/src-server/MachineImpl.cpp[436] (nsresult Machine::init(VirtualBox*, const com::Utf8Str&, const com::Guid*))
  4. VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component VirtualBox, interface IVirtualBox, callee nsISupports
  5. Context: "OpenMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at line 90 of file VBoxManageMisc.cpp

在官方找到了答案,這裡path必須是絕對路徑!這個地方做的確認太不人性化了,具體見https://www.virtualbox.org/ticket/8468。

如果是在備份虛擬機時直接注冊,可以使用:
  1. vboxmanage clonevm winxp --name winxp_loadrunner --register

心得三:利用VRDE通過實體機遠程連接虛擬機桌面

服務器上沒有安裝vnc,把clone的鏡像文件放到虛擬機中重啟以後突然發現無法連接上,因為和原來的虛擬機是使用同樣的ip。如果用的nat方式,還比較方便,開啟了dhcp肯定是可以的,利用port forward把另外一個主機的遠程連接端口映射出來也沒問題。但是如果是用bridge,那沒修改ip怎麼連接上呢?!

這裡就需要用到VRDE,它是在實體機上開的一個遠程桌面端口。這個和操作系統的遠程桌面不一樣,它是通過實體機來看虛擬機桌面,相當於直接在實體機上操作虛擬機,所以你能看到操作系統的開機畫面。理論上,這樣也可以在不用vnc連接實體機的情況下,安裝虛擬機操作系統。我現在都是用裝好的系統文件clone的,這個還沒試過,有試過的兄弟告訴我一下。

通過vboxmanage modifyvm winxp --vrdeport 3388命令就可以修改虛擬機的端口,連接的時候是使用RDP協議,在windows下直接用mstsc,linux下用rdesktop就可以。這個和你虛擬機安裝的操作系統無關。

Copyright © Linux教程網 All Rights Reserved