Monthly Archives: May 2013

guake的多屏幕问题

我一直使用guake这个下拉式的终端模拟器,好处是能够全屏(不留任何边框,看起来就像console一样),自定义快捷键呼之即来挥之即去,依赖gtk不依赖qt。

最近在使用双屏幕的时候发现了新问题,第一次呼出挂科的时候,当鼠标焦点在哪个屏幕上,以后也只能在这个屏幕上出现,而不会出现在鼠标所在的屏幕。原来使用fedora 17的时候时没有这个问题的。上网搜索了一下,大家对“guake multiple monitor”的抱怨还不少。

最后找到了这个ticket这个patch。这个patch的做法就是先判断主屏幕,然后在主屏幕上显示,但问题是一直在主屏幕上出现。自己对patch进行小修改,每次都找到“current monitor”,这样就好了,patch如下

--- /usr/bin/guake.bak  2013-05-27 14:29:48.589649485 +0800
+++ /usr/bin/guake      2013-05-27 15:00:05.067180502 +0800
@@ -844,7 +844,8 @@
         # get the rectangle just from the first/default monitor in the
         # future we might create a field to select which monitor you
         # wanna use
-        window_rect = screen.get_monitor_geometry(0)
+        current_monitor = screen.get_current_monitor()
+        window_rect = screen.get_monitor_geometry(current_monitor)
         total_width = window_rect.width
         window_rect.height = window_rect.height * height / 100
         window_rect.width = window_rect.width * width / 100

非常简单。这里guake的好处又体现出一个,python写的,改起来方便:)

迁移virtual box虚拟机到kvm

公司笔记本已经过保了,给换了一台T430s,本着dog-fooding的原则,安装了Fedora 19 Alhpa,开始了新的折腾之路。

安装系统本身很容易,不得不说,Fedora 19比18稳定很多,虽然是Alpha版。当时刚装完Fedora 18正式版的时候,会遇到各种问题,程序经常崩溃,随着后来一点点更新才算稳定下来。不过19装上就很稳定,果然是要为RHEL7做准备的版本。

比较麻烦的是数据迁移。还好我的数据不多,不到50G的数据,尤其公司内网是千兆的,scp就能到30M的速度。最麻烦的是虚拟机的迁移。原来在Fedora 18上装的是VirtualBox,但是19里内核版本比较高(3.9.2)还没有相应的vbox的kmod包,所以vbox就不能用了。本想自己编译安装一个OSE,也就是开源版的vbox,但这样以后每次升级内核都要重新编译一下,还是很麻烦。最后决定把虚拟机转到kvm上来,也是公司主推的。

首先安装一些包,并启动libvirtd,如果用户不在kvm和qemu组,把自己添加进去

sudo yum install virt-manager libvirt kvm kvm-qemu
sudo service libvirtd restart
sudo gpasswd -a username kvm
sudo gpasswd -a username qemu

然后启动virt-manager,创建新的虚拟机,不过在image选择上是选择Import existing disk image。设置一些cpu内存参数之后,最后一步选择“Customize configuration before install”然后点击Finish,开始设置设备。我这里声卡要选择ac97,default会在启动的时候报错。IDE Disk 1的设置里,Storage Format选择你正确的格式,否则会在启动时报“Not bootable disk”错误。我的是qcow格式的,但是下拉选项里没有,自己写进去就可以了,不用选择。

这时候就可以启动了,如果guest是windows系统的话可能需要安装一下声卡驱动。显卡驱动的倒是不错,各种分辨率都能都设置。

最后再抱怨一下T430s,ms没有了CAP Lock指示灯,键盘换成了巧克力键盘,没有原来的手感好。不过总体来说还是不错的,机器轻薄,关键是新机器。

补充一下用libguestfs在host和guest之间交换文件的简单方法。

sudo yum install libguestfs libguestfs-bash-completion libguestfs-tools
guestfish --ro -a /path/to/disk.img
> run
> list-filesystems
/dev/sda1: ntfs
/dev/sda2: ntfs
> mount /dev/sda2 /
> ls /Users/gery/Pictures/
other
> copy-out /Users/gery/Pictures/other/ ~