Linux下使用VirtualBox

前言

一直以来,都是在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进行连接。连接成功后发现,桌面是灰色背景,桌面上只有一个shell。这就是传说中的twm界面。

9、启动virtualbox
在shell中,输入virtualbox

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

10、关闭vncserver

1
2
vncserver --list
vncserver -kill :1

图形界面2

以上twm桌面,可以满足我们使用virtualbox的需求,在切换窗口时可以使用Alt+Tab快捷键。但是,这款桌面实在是简单的令人发指。右键鼠标啥也没有,快捷键只能切换窗口,哪怕有个可以打开terminal的快捷键,我也就接受了,然而并没有。所以,还得折腾下,搞个更好用的桌面,参考Ubuntu如何安装vncserver

1、备份xstartup
cp /root/.vnc/xstartup{,.bak}

2、vim /root/.vnc/xstartup,修改如下:

1
2
3
4
5
6
7
8
9
10
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

3、安装gnome
apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

4、启动vncserver
vncserver

5、连接vncserver

这个桌面,已经比刚才好了很多,但是,看起来还是比较low。

6、安装ubuntu-desktop

1
2
3
vncserver -kill :1
apt-get install ubuntu-desktop
vncserver


再次连接后,看到的就是正常的桌面了,nice。

7、修改窗口大小
vncserver默认的窗口大小为1024x768,使用时如果感觉窗口比较小,可以进行修改。
vim /usr/bin/vncserver,如下修改:

1
2
# line 44, change
$geometry = "1280x1024";

然后kill掉已经启动的vncserver,启动新的即可。

错误解决

在某次远程桌面连接时,提示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服务器:远程桌面连接

Linux下VNC配置使用总结:开启+桌面配置+安全访问

0%