Ubuntu
1. 写在前面
千万不要抱有一朝一兮就可以搞定的想法。最好的话身边有一个群体,大家都使用Ubuntu这个东西。这样如果有什么问题的话,大家就比较容易找到解决办法,直到自己完全适应为止。推荐安装下面这些软件:
UPDATE(2017-10-04): 这几天又重新安装ubuntu,觉得这个东西很多组件都没有带上。转了一圈之后觉得deepin可能还不错,所以就试试这个东西。用下来感觉还不错,几个比较方便的东西:
- 自带了搜狗输入法
- vpn支持l2tp, 这点非常重要
- AppStore里面带了很多使用了Wine包装过的程序,比如微信和QQ等
感觉deepin非常适合中国人民使用。相比Ubuntu来说,本地化工作做的好太多了。
Desktop Applications:
- sudo apt-get install emacs24
- sudo apt-get install vlc # 视频
- sudo apt-get install okular # pdf阅读
- sudo apt-get install kchmviewer # chm阅读
- #sudo apt-get install kdenlive # 视频编辑
- #sudo apt-get install recordmydesktop # 录制桌面
- sudo apt-get install zsh
- sudo apt-get install vim
- sudo apt-get install fcitx
- sudo apt-get install fcitx-googlepinyin
- sudo apt-get install im-config
- sudo apt-get install alarm-clock-applet # 定时闹钟
- sudo apt-get install virtualbox
- sudo apt-get install virtualbox-guest-additions-iso
- sudo apt-get install nautilus-dropbox
- sudo apt-get install shadowsocks-qt5
Development Applications:
- sudo apt-get install linux-tools-common
- sudo apt-get install linux-base
- sudo apt-get install software-properties-common
- sudo apt-get install openjdk-7-jdk
- sudo apt-get install openjdk-7-doc
- sudo apt-get install git
- sudo apt-get install ntp
- sudo apt-get install rar
- sudo apt-get install curl
- sudo apt-get install rsync
- sudo apt-get install screen
- sudo apt-get install maven
- sudo apt-get install scons
- sudo apt-get install cmake
- sudo apt-get install ccache
- sudo apt-get install samba
- sudo apt-get install nginx
- sudo apt-get install docker.io
- sudo apt-get install graphviz
- sudo apt-get install gdebi-core
- sudo apt-get install openvpn
- sudo apt-get install openssh-server
- sudo apt-get install mysql-server
- sudo apt-get install redis-server
- sudo apt-get install markdown
- sudo apt-get install p7zip-full
Performance Tuning:
- sudo apt-get install htop
- sudo apt-get install sysstat
- sudo apt-get install iotop
- sudo apt-get install iftop
- sudo apt-get install google-perftools
Python Libraries:
- sudo apt-get install python-dev
- sudo apt-get install python-doc
- sudo apt-get install ipython
- sudo apt-get install ipython-doc
- sudo apt-get install ipython-notebook
- sudo apt-get install python-setuptools
- sudo apt-get install python-pip
- sudo apt-get install python-redis
- sudo apt-get install python-mysqldb
- sudo apt-get install python-gevent
- sudo apt-get install python-m2crypto
- sudo apt-get install gunicorn
C++ Libraries:
- sudo apt-get install libboost-all-dev
- sudo apt-get install libevent-dev
- sudo apt-get install libssl-dev
- sudo apt-get install libaio-dev
- sudo apt-get install libgoogle-perftools-dev
2. 系统配置
2.1. 察看ubuntu内部版本
lsb_release -a
➜ note git:(master) ✗ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04 LTS Release: 12.04 Codename: precise
#note@2014-11-17: upgrade to 'trusty'
➜ ~ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.1 LTS Release: 14.04 Codename: trusty
2.2. 重启机器
似乎Ubuntu下面限制用户进行重启,可以使用sudo reboot重启机器。
2.3. 关闭机器
关闭机器同样需要超级权限,可以使用sudo shutdown 0立即关闭机器。
2.4. 重启unity
unity restart &
#note: 这种方式可以work但是似乎问题比较多,如果unity出现问题还是重启系统比较方便
2.5. 设置字符界面启动
- 编辑文件/etc/default/grub
- GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"修改成GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"
- 运行sudo update-grub
2.6. 绑定静态IP
修改/etc/network/interfaces
auto eth0 iface eth0 inet static address 10.18.102.200 netmask 255.255.255.0 gateway 10.18.102.254
修改/etc/nsswitch.conf
hosts: files dns networks: files
然后重启网络
sudo /etc/init.d/networking restart
2.7. 修改主机名称
- sudo hostname <name>
- vim /etc/hostname
2.8. root密码
初次启动的时候需要使用sudo passwd root来修改root密码
使用passwd -d <user>可以用来删除密码
2.9. deb使用
安装deb使用命令 sudo dpkg -i test.deb. (使用dpkg并不会自动下载.deb所需要的依赖. 这个工作可以通过gdebi来完成)
通常我们不太清楚一个deb安装了哪些文件,尤其是doc的话可能不知道放置在什么位置上面。我们可以通过搜索引擎查找这个包,然后在 http://packages.ubuntu.com 下面找到这个包以及对应的文件列表信息。
doc存放位置通常在/usr/share/doc/<package>/下面。
使用alien在deb和rpm之间转换
- 安装alien
- rpm转deb sudo alien -d test.rpm
- deb转rpm sudo alien -r test.deb
看了一下alien的help还可和下面几个包格式互转
- slp
- lsb
- tgz
- pkg
甚至可以直接调用alien -i test.rpm直接安装而不需要转换。
使用dpkg –listfiles可以查看安装了哪些文件
使用apt-cache depends <package>可以查看<package>的依赖,rdepends则可是查看反向依赖
➜ debs git:(devel-yan) ✗ apt-cache rdepends tcpdump tcpdump Reverse Depends: tcpdump:i386 kubuntu-active tcpdump:i386 ulogd2-pcap tcptrace tcpstat tcpflow ssldump python-scapy python-ns3-dbg python-ns3 pcapfix nstreams kubuntu-active iptotal dhcpdump core-network-gui core-network chaosreader |bittwist ubuntu-standard ➜ debs git:(devel-yan) ✗ apt-cache depends tcpdump tcpdump Depends: libc6 Depends: libpcap0.8 Depends: libssl1.0.0 Suggests: apparmor Conflicts: tcpdump:i386
关于制作deb包,下面两个链接比较有帮助
- Debian Binary Package Building HOWTO : http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/ (制作最简单的deb包)
- Debian Policy Manual - Package maintainer scripts and installation procedure : https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html (deb hook脚本运行机制)
2.10. apt-get: Waiting for headers
http://askubuntu.com/questions/156650/apt-get-update-very-slow-stuck-at-waiting-for-headers
可能是因为网络链接不太好,也可能是因为源服务器不太稳定。如果确定是自己源服务器不太稳定的话,那么可以更换源服务器。
Update Manager -> Settings -> Ubuntu Software -> Download from Other -> Select Best Server
2.11. /sbin/insserv: No such file or directory
这个命令会在chkconfig(用于配置是否自动启动)里面用到.
➜ nginx sudo chkconfig lighttpd off /sbin/insserv: No such file or directory
解决办法是做个软链接 "sudo ln -s /usr/lib/insserv/insserv /sbin/insserv"
2.12. 允许/禁止服务自动启动
chkconfig可以用来配置服务是否自动启动 sudo chkconfig <service> on/off
另外使用chkconfig还可以用来查看当前服务自动启动情况
➜ nginx chkconfig distcc on docker off lighttpd off mysql off nginx on ntp on ondemand on openvpn on redis-server off resolvconf off rsync on rsyslog off samba off samba-ad-dc off saned on screen-cleanup off screen-cleanup.dpkg-new off sendsigs 0 smbd off speech-dispatcher on ssh off sudo on sysstat on virtualbox on virtualbox-guest-utils on virtualbox-guest-x11 on
#note@2014-11-30: ubuntu后期版本移除了这个组件,使用sysv-rc-conf来代替. 使用–list可以列出所有当前服务
➜ .private sudo sysv-rc-conf --list collectl 0:off1:off2:on3:on4:on5:on6:off distcc 0:off1:off2:on3:on4:on5:on6:off docker mysql 2:off3:off4:off5:off ntp 1:off2:on3:on4:on5:on rc.local 2:on3:on4:on5:on reboot 6:on redis-server 0:off1:off2:off3:off4:off5:off6:off resolvconf rsync 2:on3:on4:on5:on rsyslog samba sudo 2:on3:on4:on5:on sysstat 2:on3:on4:on5:on urandom 0:on6:onS:on virtualbox 0:off1:off2:on3:on4:on5:on6:off virtualbox-g 0:off1:off2:on3:on4:on5:on6:off
然后使用sudo sysv-rc-conf <service> on/off 来配置是否自动启动
2.13. 修改分区
可以使用Ubuntu Disk工具来修改分区。
修改分区之后可能会在启动时候出现错误,显示这些分区不存在无法挂载。可能的原因是这些分区的UUID发生变化,但是在/etc/fstab里面却没有更新过来。
我们可以手工编辑/etc/fstab来更正,可以使用blkid查看各个设备的UUID
➜ ~ blkid /dev/sda1: UUID="26971214-3b4d-455c-ab3d-cefae2d8cfd8" TYPE="ext4" /dev/sda5: LABEL="swap" UUID="cd6de3d9-6a98-46c2-9875-de12251fe82e" TYPE="swap" /dev/sda6: LABEL="extra" UUID="6ac0d95d-b2fc-426f-bf7b-4a3669442ea6" TYPE="ext4" /dev/sdb2: UUID="4ed192d5-884b-43a4-904b-fb9cb5f193b2" TYPE="ext4"
2.14. 设置apt源
好的apt源可以加快软件安装,节省不少时间。默认源mirrors.ubuntu.com离中国比较远所以下载会很慢。
Ubuntu Software Center -> Edit -> Software Sources -> Ubuntu Sofware(Download from)
点击Select Best Server来让自动选择最好的服务器。如果是中国的话可能163.com或者是aliyun.com会比较好点。修改完成后记得要apt-get update.
3. 桌面应用
3.1. amarok循环播放
在amarok的右下角有task progression的图标,选择repeat track即可。
3.2. 设置输入法切换
在Preferences里面:
- Input Method 里面添加 SunPinyin
- 然后在General里面的Keyboard Shortcuts里面设置Enable or disable设置切换按键
- Release+Shift_L 左边的Shift键
- Constrol+space control和空格键
- 这些都和windows输入法的默认配置很像。
#note: 在Emacs里面需要安装ibus.el以及ibus-agent。但是现在不知道为什么左边的Shift键在Emacs里面一直不能使用。
#note: ibus.el只能支持到了ubuntu12.04, 升级到14.04之后就不能再使用了。所以现在只能使用emacs -nw在终端下工作:(
3.3. 自动启动输入法
另外系统默认是不会自动启动ibus的,可以在System Settings里面的Language Support里面设置Input method为ibus, 这样ibus就可以自动启动了。如果emacs需要使用ibus的话,那么ibus-daemon必须先于emacs启动。可能这样agent才能够工作。
3.4. google docs不能输入中文
似乎sunpinyin在google docs下面工作不是很好。使用原来的pinyin就没有问题。what a shame!
3.5. 设置默认浏览器
System Settings => Details 里面可以设置默认浏览器。至于emacs里面的话可以使用如下配置。
(setq browse-url-generic-program (executable-find "chromium-browser") browse-url-browser-function 'browse-url-generic)
3.6. thunderbird配置gmail
- pop3 pop.gmail.com SSL/TLS 995 normal password
- smtp smtp.gmail.com SSL/TLS 465 normal password
- #note: 需要确认gmail允许pop3来访问
- 不过似乎现在thunderbird已经非常智能了,只要输入username以及email的话就可以自动进行配置了。nice!!!(现在看起来选择iamp模式也没有什么问题)
- server settings =>
- 1) leave mesages on server until I delete them. (对于imap模式来说的话,就使用默认移动到Trash下面即可)
- 2) empty trash on exit.
- 3) check for new messages at startup.
- 4) check for new messages every 10 minutes.
- copies and folders => 1) cc these email addresses: dirtysalt1987@gmail.com(如果使用imap模式可以不使用)
- composition and addressing => 1) start my reply above the quote and place my signature below the quote.
- 设置签名
3.7. thunderbird的Inbox文件过大
在安装新的操作系统时候,可能需要将原来的邮件全部迁移过去。thunderbird迁移邮件非常方便。在C:\Documents and Settings\\Application Data\Thunderbird\Profiles\wkq5wydz.default\Mail\ 下面会有你这个pop-server对应的文件,比如Inbox(对应thunderbird的收件箱),Drafts(对应thunderbird的草稿箱)等。将这些文件直接copy过去就OK了。不得不说这点非常方便:)
但是我们会遇到一个问题就是Inbox文件太大了。而且如果我们在thunderbird下面删除收件箱里面内容的话,会发现这个Inbox文件其实没有发生变化。原因是因为thunderbird采用标记删除,所以原来的邮件内容依然是保存的(也就是说如果我们通过修改Inbox里面的标记位是可以恢复的,而且这个工作不难,因为阅读Inbox的内容就会发现里面保存的文本格式。不过谨慎选用编辑器,不要将Inbox内容全部载入不然内存会爆掉的)。 解决这个问题非常简单,就是在thunderbird下面针对这个文件夹右键点击压缩。对于草稿箱和其他的文件夹是一样的操作。而且在thunderbird下面有工具->选项->高级->网络&磁盘空间里面,可以选择如果超过过大的话就会进行压缩。
作为后端开发者,觉得thunderbird这样做是很正常的。有几种方式:
- 一种是用小碎片文件来解决,每个小碎片文件对应一个邮件,但是这样邮件太多的话性能和碎片会成为问题,但是增加和删除都非常方便
- 另外就是使用大文件来追加写,然后针对每封邮件进行索引。索引可以保存在内存里面并且定期dump出去,启动时候检查索引是否和文件对应,不对应的话那么可能需要增量做一部分索引。但是这样删除会成为问题,标记删除可能就是最好的办法了。所以需要用户手动或者是通过程序判断磁盘文件大小来触发压缩。
- 使用数据库本质上和2是一样的,只不过可以在一定程度上简化代码。在删除方便可能还是使用压缩删除。如果是我自己做的话那么可能考虑使用sqlite来做。单机可以embed,并且通过SQL来进行检索或者是其他操作。
#note: 其实thunderbird超过一定大小就会自动提醒是否需要压缩
3.8. 窗口常用快捷键
- Ctrl+Alt+T // 打开一个terminal。
- Ctrl+Alt+上下左右 // 在不同的workspace之间切换。
3.9. 调整字体大小
System Settings => Universal Access里面的Seeing部分可以用来调整字体大小。但是只有等级没有具体的数字可以进行调整。 可以通过安装gnome-tweak-tool并且运行之来进行微调。
3.10. 调整边栏大小
System Settings => Appearance => Launcher icon size.
3.11. 调整skype字体大小
http://www.mintos.org/network/modify-skype-font.html
- 安装qt4-config "sudo apt-get install qt4-qtconfig"
- 修改字体(font size=12)和外观(Clearlooks)
- 点击qt4-config的菜单栏保存
- 重启skype即可观察到字体修改效果
3.12. vlc字幕乱码
Tools -> Preferences -> Subtitles & OSD
使用默认的编码(encoding)就行,然后选择font为"WenQuanYi Micro Hei"(默认的字体应该是不能够显示中文)
3.13. 使用搜狗输入法
搜狗输入法依赖于fcitx框架,所以必须先安装好fcitx. 然后从搜狗输入法主页上下载deb进行安装。http://pinyin.sogou.com/linux/?r=pinyin
通常系统会安装多种输入法框架比如ibus/fcitx,所以我们必须配置使用什么输入法框架,这个工作可以通过im-switch/im-config来完成。
因为搜狗输入法是基于云的输入法,所以输入效果相比单机输入法比如sunpinyin会好很多。安装完成之后需要重启X.
#note: fcitx-googlepinyin也不错
4. 编程环境
4.1. bash的tab自动补全
"sudo apt-get install bash-completion"
但是我觉得这个自动补全有点不太好的就是,比如我cd ~/.ssh/想自动补全的话,我不仅仅是希望能够补全目录(虽然cd参数只能够是目录),我还希望可以显示文件(比如我想知道这个目录下面是否有Makefile或者是pom.xml),这样就可以快速判断某个文件是否在目录下面。不然我只能调回命令行开头,切换成为cat,然后跳回去使用两次tab进行自动补全(cat能够显示文件).
这个自动补全配置文件在/etc/bash_completion下面。阅读代码发现可能是和file_dir这个函数相关。调用时候使用file_dir -d的话只会显示目录,而file_dir的话就会显示所有。所以最简单的做法就是将file_dir -d全部替换成为file_dir. done!!!
4.2. 加快ssh登陆
对于服务器的话可以修改/etc/ssh/sshd_config
UseDNS no
对于客户端的话可以修改/etc/ssh/ssh_config
GSSAPIAuthentication no GSSAPIDelegateCredentials no
4.3. 建立ssh信任关系
关于sshd机器之间的信任关系,很多文章都有介绍。大致方法就是:
- 在自己机器上面ssh-keygen生成~/.ssh/id_rsa{.pub}.其中.pub文件是公钥
- 然后将id_rsa.pub内容copy到另外机器下面的~/.ssh/authorized_keys里面(注意chmod 600)
- 接着本地的.pub文件就可以删除
这个密钥是可以在不同机器上面使用的,也就是说你只需要生成一次即可
我猜想大致工作过程应该是这样的:
- 在ssh建立连接的时候,本地ssh-client会读取~/.ssh/id_rsa内容
- 建立好连接之后会将rsa内容发给对端机器,对端机器针对authorized_keys进行验证
- 如果验证OK的话那么就认为是信任对方的。
具体这些文件放置位置都是可以配置的,关于如何配置可以看man ssh_config(client) / man sshd_config(server). 之前遇到问题就是,在/etc/sshd_config里面修改了认证文件的位置,不是放在authorized_keys里面而是放在cloud_keys里面!!!
对于这种东西我觉得还是使用默认的比较好,convention over configuration!!!
如果登陆过程中出现 "Agent admitted failure to sign using the key" 的话,可以尝试下面的命令
ssh-add ~/.ssh/id_rsa
4.4. 简化ssh登陆
简化ssh登陆第一个方式就是去除密码输出,这个可以通过配置信任关系完成。
简化ssh登陆第二个方式就是可以针对hostname,user以及port做别名,这个可以在~/.ssh/config里面配置
dirlt@dirlt-virtual-machine:~/.ssh$ cat config Host git Port 16024 HostName git.fm User dirtysalt
这样之后通过ssh git的话就相当于ssh -l dirtysalt -p 16021 git.fm.非常方便。
4.5. 修改默认shell
sudo chsh -s /bin/zsh dirlt
似乎需要重启才能够生效
4.6. 关闭ssh host key检查
How to disable SSH host key checking http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html
- UserKnownHostsFile /dev/null
- StrictHostKeyCheckin no
4.7. ssh identity file
如果你的ssh identity file配置很多的话,有时候登录会出现"Too many authentication failures"的错误。这是因为ssh会使用你所有添加的identity files来尝试验证(比如4个),但是服务器配置最多3次验证的话那么最后一个identity file就不会被验证了,即使这个identity file是正确的。更常见的情况是历史上你可能无意添加了许多identity file,可是这些file到现在基本上都过时了,所以你需要清理一下。
查看所配置的identity files很简单'ssh-add -l'. 使用选项-d可以删除某个file(-D可以删除所有)
➜ repo ssh-add -l 2048 37:0d:f1:91:c8:96:97:9a:54:8b:da:66:41:19:9f:a3 /home/dirlt/.ssh/id_rsa (RSA) 2048 b9:56:e7:7d:83:d4:04:70:c4:bb:0b:9e:3d:05:63:a6 /home/dirlt/.ssh/github (RSA) 1024 c5:a4:a2:c0:8b:12:68:81:9e:dc:c0:30:79:f7:a8:f6 /home/dirlt/.ssh/lz5-devel (DSA) ➜ repo ssh-add -d /home/dirlt/.ssh/id_rsa Identity removed: /home/dirlt/.ssh/id_rsa ( dirlt@ubuntu) ➜ repo ssh-add -l 2048 b9:56:e7:7d:83:d4:04:70:c4:bb:0b:9e:3d:05:63:a6 /home/dirlt/.ssh/github (RSA) 1024 c5:a4:a2:c0:8b:12:68:81:9e:dc:c0:30:79:f7:a8:f6 /home/dirlt/.ssh/lz5-devel (DSA)
还有一些entry不是直接对应file的, 所以没有办法使用ssh-add -d来删除。可以在"Passwords and Keys"这个应用程序里面删除掉。
4.8. cannot change locale
通常是因为对应的locale没有找到
bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8) bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8) bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)
可以通过生成对应locale文件来解决这个问题
➜ bin sudo locale-gen zh_CN.UTF-8 [sudo] password for dirlt: /bin/bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8) Generating locales... zh_CN.UTF-8... /usr/sbin/locale-gen: line 177: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8) done Generation complete.
5. 虚拟机
5.1. vmware虚拟机增加磁盘空间
今天感觉自己的磁盘空间好像有点不够了,大部分数据都是在$HOME下面的,需要增加磁盘空间。
使用vmware disk expand似乎不太好用,虽然磁盘空间增大了,但是df -h发现识别的硬盘大小还是一样(可能需要重新格式化才行):(。
另外一个办法,就是在vmware下面再增加一个disk. 128G,识别为/dev/sdb。然后在linux下面
- fdisk为/dev/sdb创建分区,partition number=1.
- partprobe /dev/sdb1 (?具体什么用途我也不太清楚,inform OS partition table changed)
- mkfs.ext4 /dev/sdb1 格式化文件系统
产生这个硬盘之后,可以首先将自己的$HOME重命名,然后mount /dev/sdb1 $HOME.
接着将原来数据copy过去,最好使用cp -r .*这样可以copy隐藏文件。然后需要chown owner:owner .* -R来修改权限(因为这个步骤通常是root操作的)。然后将原来的数据删除即可。
之后为了自动挂载,修改/etc/fstab
/dev/sdb1 $HOME ext4 defaults 0 0
5.2. virtualbox安装windows虚拟机
安装windows虚拟机主要是为了方便一些需要在windows下面完成的操作,比如U盾。 另外windows下面也有一些第三方的软件在Linux下面比较匮乏比如EverBox, 虽然DropBox也非常不错但是相对来说还是国内服务器会比较好一些。
使用virtualbox,通过加载windows xp的镜像安装,这个非常简单。 或者是直接使用别人生成好的.vdi文件。vdi全称应该是virtual disk image。
#note: 升级内核或者是重装系统的话,可能会造成内核版本与默认源的virtualbox不匹配,可以从官网下载最新版本。参考链接 https://www.virtualbox.org/wiki/Linux_Downloads
5.3. virtualbox设置共享文件夹
设置共享文件夹主要是为了数据可以进行同步。通过windows虚拟机,安装同步软件比如GDrive。 然后通过共享文件夹,将GDrive的同步目录隐射到Linux文件系统上面,完成数据同步。
- 首先挂载VBoxAdditions.iso,这个文件在/usr/share/virtualbox下面
- 之后就会在虚拟机里面提示安装相关的驱动程序。
- 完成之后在设置virtualbox的settings/share folder,创建本地share folder
- 然后进入虚拟机“我的电脑”右键选择映射网络驱动器,通过浏览可以找到对应的网络驱动器。
我是参考这篇图文并茂的文章的 http://hi.baidu.com/hifinan/item/79f22545a8400ed3c1a592f3
5.4. virtualbox下使用U盾
首先需要在 https://www.virtualbox.org/wiki/Downloads VirtualBox Extension Pack,双击执行。 在Settings => USB选项里面勾选 Enable USB Controller 和 Enable USB2.0(EHCI) Controller。
然后我们需要添加vboxusers这个群组,同时将自己加入到这个群组内:
- sudo groupadd vboxusers
- sudo gpasswd -a dirlt vboxusers
接着重新启动ubuntu。
接着Settings => USB里面添加那些已经识别的设备,接着启动windows虚拟机就可以使用U盾了。