Linux下使用VirtualBox

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

前言

一直以来,都是在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配置使用总结:开启+桌面配置+安全访问