目录
出发点
安装VirtualBox6.1.36及其扩展包后,在virtualbox中安装Ubuntu18.04.6和VirtualBox6.1.36增强包后,始终无法实现主机Win10和虚拟机Ubuntu18.04.6之间的双向文件拖放。幸运的是,在寻找这个问题答案的时候,偶然间发现,主机为Win10,Virtualbox虚拟机(v5.2.6 )安装Ubuntu 16.04 LTS操作系统后,也始终无法实现双向拖放,问题非常类似。同时指出,这是Virtualbox5.2.6版本的BUG,后续5.2.20版本进行了修复。
详细分析请查阅,我之前的两篇文章:
安装Ubuntu16.04LTS
第一步,新建虚拟电脑。设置相关参数,点击创建。
第二步,创建虚拟硬盘。设置相关参数,点击创建。
第三步,从下面映像文件下载网站下载合适的映像文件,比如,我选择下载了ubuntu-16.04.7-desktop-amd64.iso ,对应位置在H:\虚拟机。
第四步,在virtualbox直接点击启动,会有一个选择启动盘的弹窗提示。点击下拉框右侧的图标,进入,然后点击【注册】,选择刚刚下载镜像文件,比如这里是H:\虚拟机\ubuntu-16.04.7-desktop-amd64.iso。最后,选中要加载的启动盘,点击【选择】。这时,会返回到选择启动盘的弹窗提示界面,点击【启动】。
第五步,进行安装虚拟操作系统的相关设置。下面是我的设置情况,供参考。
在欢迎页面,选择语言为【中文简体】,点击安装Ubuntu;
不需要选择地点,直接点击【继续】;
键盘布局设置如下,可以不用进行键盘布局探测;
上述设置完成后,开始安装Ubuntu系统。安装完成,如下图,重启。
按下ENTER键。安装完毕!
安装VirtualBox6.1.36增强包
自动调整虚拟机的用户界面的窗口大小
第一步,运行“VirtualBox6.1.36”包。
点击【设备】-->【安装增强功能】;
弹出窗口中,点击【运行】;
输入密码,点击【授权】,通过验证;
按照提示, 按下ENTER,并且,重启虚拟系统。经过验证,发现已经实现自动调整虚拟机的用户界面的窗口大小。
实现主机与虚拟机之间共享粘贴板功能
方法1:点击【设备】-->【共享粘贴板】-->【双向】。
方法2:虚拟机的设置-->常规-->高级-->共享粘贴板-->双向。
经过验证,发现已经实现主机与虚拟机之间共享粘贴板功能。
实现主机与虚拟机之间双向文件拖放功能
方法1:点击【设备】-->【共享粘贴板】-->【双向】。
方法2:虚拟机的设置-->常规-->高级-->拖放-->双向。
经验证,发现已经实现主机与虚拟机之间双向文件拖放功能。
我们发现VirtualBox6.1.36+ubuntu-16.04.7的组合,非常完美的实现了我们期望的三种功能,分别是自动调整虚拟机的用户界面的窗口大小、双向共享粘贴板和双向文件拖放!完美!
此外,我们还欣喜地发现,ubuntu-16.04.7版本有下面一些功能
(1)与Ubuntu18.04相比,鼠标右键,可以直接新建空白文档;
(2)与Ubuntu14.04相比,任意目录下,鼠标右键打开当前目录下的终端;
但是,CTRL+ALT+T快捷键并不能打开任意目录下的终端。如果需要实现任意目录下快捷键方式打开当前目录下的终端,仅需下面五个步骤即可实现。
第一步,安装xdotool和xclip。
在终端输入
sudo apt-get install xdotool xclip
当出现“您希望继续执行吗? [Y/n] ”,输入Y。继续等待,直到全部完成。
第二步,检查是否安装vim,如果没有,请完成安装。
在终端输入vi,然后按Tab键,下图所示的情况为没有安装vim。
在终端输入
sudo apt-get install vim-gtk
当出现“您希望继续执行吗? [Y/n] ”,输入Y。继续等待,直到全部完成。
第三步,通过vim来配置一个脚本。
在终端输入
sudo vim /usr/bin/openterminal.sh
输入字符 i 进入插入模式,之后复制下列内容到.sh文件中;
#!/bin/bash
#record the current ClipBoard
#clipboard_current=$(xclip -o)
pid_list=`xdotool search --class "nautilus"`
#loop for the right window
for i in $pid_list
do
name=`xdotool getwindowname "$i"`
name_lower=$(echo $name | tr [a-z] [A-Z])
if echo "$name_lower" | grep -qwi ".*desktop*";then
echo "desktop window"
elif echo "$name_lower" | grep -qwi ".*nautilus*";then
echo "nautilus window"
else
id=$i
fi
done
#get the current working directory
wait=`xdotool windowfocus $id`
sleep 0.2
wait=`xdotool key Ctrl+l`
sleep 0.2
wait=`xdotool key Ctrl+c`
sleep 0.1
path=$(xclip -o)
wait=`xdotool key Escape`
sleep 0.1
gnome-terminal --working-directory ${path}
完成后(见上图),按ESC键,跳到命令模式;然后,输入:wq ,按下ENTER,保存文件并退出。
第四步,添加执行权限。
在终端输入
sudo chmod +x /usr/bin/openterminal.sh
第五步,在键盘上自定义快捷键。
这里选择设置“Ctrl+T”为启动任意目录下打开当前目录下的终端的快捷键方式。
点击【系统设置】-->【键盘】-->【快捷键】-->【自定义快捷键】-->【+】;设置名称(任意设定)和命令(与上述新建的.sh文件名称对应,openterminal.sh),点击【应用】。
点击【禁用】,按下Ctrl+T(想用什么快捷键,这里按下什么键,如果与其他预设的快捷键重复,会有提示),设置完成。