Linux下使用VirtualBox

文章目录
  1. 1. 前言
  2. 2. virtualbox安装
  3. 3. virtualbox使用
    1. 3.1. 常用命令
    2. 3.2. 创建虚拟机
  4. 4. 图形界面
  5. 5. 错误解决
  6. 6. 书签

前言

一直以来,都是在windows系统上使用虚拟机。今天和树添聊天时发现,在linux系统上,没有图形界面,同样可以使用虚拟机,只不过操作方式变成了命令行。

本文,就研究一下在ubuntu16系统下使用virtualbox的方法。主要参考How to Install Oracle VirtualBox 5.2 on Ubuntu 17.10/16.04, Debian 9/8VirtualBox官网下载页面

virtualbox安装

1、添加安装源

1
sudo add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian `lsb_release -cs` contrib"

2、安装包签名密钥

1
2
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

3、执行安装

1
2
sudo apt-get update
sudo apt-get install virtualbox-5.2

报错:

1
2
3
4
5
6
7
8
9
10
11
12
13
virtualbox-5.2 is already the newest version (5.2.12-122591~Ubuntu~xenial).
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
virtualbox-5.2 : Depends: libcurl3 (>= 7.16.2) but it is not going to be installed
Depends: libgl1-mesa-glx but it is not going to be installed or
libgl1
Depends: libx11-xcb1 but it is not going to be installed
Depends: libxcursor1 (> 1.1.2) but it is not going to be installed
Depends: libxinerama1 but it is not going to be installed
Recommends: libsdl-ttf2.0-0 but it is not going to be installed
Recommends: pdf-viewer
Recommends: libgl1
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

执行sudo apt-get -f install,修复包依赖问题。

virtualbox使用

常用命令

参考virtualbox命令行

  • vboxmanage -v,查看版本。
  • vboxmanage showvminfo "Windows XP",查看某一虚拟机的信息。
  • vboxmanage startvm "Windows XP",开启虚拟机(指定name)。
  • vboxmanage startvm 670e746d-abea-4ba6-ad02-2a3b043810a5,开启虚拟机(指定UUID)。
  • vboxmanage startvm ubuntu gui,图形化界面启动(这是默认值)。
  • vboxmanage startvm ubuntu headless,命令行界面启动。
  • vboxmanage list vms,列出所有的虚拟机。
  • vboxmanage list runningvms,列出现在正在运行的虚拟机。
  • vboxmanage list hostinfo,列出宿主机的详细信息(CPU 内存 操作系统版本等)。
  • vboxmanage list hostonlyifs,列出系统的hostonly网络的信息。
  • vboxmanage list dhcpservers,DBCP服务器的信息。

创建虚拟机

很麻烦,就不实践了。具体用法参考VirtualBox命令行VBoxManage创建与管理虚拟机教程

图形界面

我们发现,使用命令行操作virtualbox有很多不方便的地方,比如创建虚拟机就很麻烦。能不能在远程linux使用VirtualBox的时候,通过图形界面使用呢?答案是可以。

要远程使用桌面,首先需要安装vncserver,参考Ubuntu如何安装vncserver

1、切换到root
sudo -i

2、安装xfce4
apt-get install xfce4   
xfce4不会安装太多软件,最终看到的界面只有一个灰色背景加上一个shell窗口。

3、安装xrdp
apt-get -y install xrdp

4、安装vnc4server
apt-get -y install vnc4server

5、配置默认使用xface作为登录界面

1
2
echo "xfce4-session" >~/.xsession
service xrdp restart

5、启动vncserver
vncserver,根据提示设置远程密码,默认放在/root/.vnc/passwd中,同时生成/root/.vnc/xstartup。

6、xstartup内容为:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &

7、启动vncserver
vncserver

8、本地打开vncviewer client,输入ip:5901进行连接。

9、启动virtualbox
右键,open in terminal,输入virtualbox

至此,就能愉快地使用virtualbox图形界面了。

10、关闭vncserver

1
2
vncserver --list
vncserver -kill :1

错误解决

在某次远程桌面连接时,提示too many security failures,解决办法参考vncserver too many security failures

1、重置黑名单
vncconfig -display :1 -set BlacklistTimeout=0 -set BlacklistThreshold=1000000

2、连接成功后还原黑名单
vncconfig -display :1 -set BlacklistTimeout=600000000000 -set BlacklistThreshold=10

书签

Manage Virtualbox virtual machines under command line

How to run VirtualBox virtual machines from the command line

XShell+Xmanager实现在XShell中显示远程服务器的图形界面

Ubuntu14.04服务器:远程桌面连接