<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3231148127301727870</id><updated>2012-02-03T08:52:14.888+08:00</updated><category term='ibus'/><category term='Python'/><category term='flash'/><category term='xinput'/><category term='Fedora'/><category term='Supertux'/><category term='DNS'/><category term='rsync'/><category term='PPTP'/><category term='free'/><category term='VirtualBox'/><category term='OpenSSL'/><category term='dnsmasq'/><category term='TTS'/><category term='l10n'/><category term='Gtalk'/><category term='LotusNotes'/><category term='GNOME'/><category term='Chromium'/><category term='VPN'/><category term='Picasa'/><category term='GRUB'/><category term='evince'/><category term='find'/><category term='yum'/><category term='runlevel'/><category term='lsof'/><category term='Xmarks'/><category term='CPU'/><category term='Compiz'/><category term='upstart'/><category term='grep'/><category term='anacron'/><category term='Networking'/><category term='openvpn'/><category term='top'/><category term='Inkscape'/><category term='Apache'/><category term='cron'/><category term='btrfs'/><category term='Android'/><category term='NetworkManager'/><category term='xen'/><category term='IBM'/><category term='man'/><category term='xsane'/><category term='aMule'/><category term='hibernate'/><category term='RFC'/><category term='SSH'/><category term='Debian'/><category term='Thunderbird'/><category term='Nginx'/><category term='Pidgin'/><category term='Gmail'/><category term='apt'/><category term='FreeBSD'/><category term='memory'/><category term='googlewave'/><category term='ntp'/><category term='googleapps'/><category term='X'/><category term='misclog'/><category term='Emerald'/><category term='AWS'/><category term='NAT'/><category term='regex'/><category term='Vim'/><category term='sudo'/><category term='Firefox'/><category term='Linux'/><category term='Wifi'/><category term='VPS'/><category term='ATI'/><category term='D-Bus'/><category term='Bash'/><category term='udev'/><category term='googlesites'/><category term='ubuntu'/><category term='iptables'/><category term='googleearth'/><category term='touchpad'/><category term='ls'/><category term='vmstat'/><category term='nautilus'/><title type='text'>胖鸭子的Linux笔记</title><subtitle type='html'>一个自由软件爱好者的经验记录</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://linux.fatduck.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default?start-index=101&amp;max-results=100'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>126</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6986734725902344417</id><published>2012-02-02T22:04:00.004+08:00</published><updated>2012-02-03T08:52:14.896+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><title type='text'>让APT不自动安装推荐包</title><content type='html'>Ubuntu里面&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;apt-get&lt;/span&gt;会自动安装推荐包。为了更好地了解系统，我的原则是用啥装啥，所以要禁用掉自动安装推荐包。&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;apt-get&lt;/span&gt;的&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;--no-install-recommends&lt;/span&gt;参数可以，永久禁用可以在&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc/apt/apt.conf&lt;/span&gt;里面加入&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;APT::Install-Recommends "false";&lt;/span&gt;&lt;/blockquote&gt;Aptitude可以在其设置里面禁用此功能，Synaptic也可在其设置中禁用该功能。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6986734725902344417?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6986734725902344417/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2012/02/apt.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6986734725902344417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6986734725902344417'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2012/02/apt.html' title='让APT不自动安装推荐包'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-8791758777032699492</id><published>2012-01-20T16:08:00.000+08:00</published><updated>2012-01-29T16:51:08.191+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><title type='text'>VPN故障排除</title><content type='html'>在Linux上配置了L2TP/IPSec，用 Android手机连上去，不能访问因特网。后来想到服务器内核的&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ip_forward&lt;/span&gt;没有打开，这样手机的请求在&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ppp0&lt;/span&gt;上可以看到，但是内核不会转发 给默认网关网卡。开了后，在服务器的默认网关网卡上可捕捉到手机对Internet的访问，但是收不到回复包。连DNS都不通，先搞定这个。&lt;br /&gt;&lt;br /&gt;直接在服务器上查询&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;dig @8.8.8.8 ebay.com&lt;/span&gt;是成功的：&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;11:11:26.994869 IP 10.146.18.213.50984 &amp;gt; 8.8.8.8.domain: 17471+ A? ebay.com. (26)&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;11:11:26.997250 IP 8.8.8.8.domain &amp;gt; 10.146.18.213.50984: 17471 4/0/0 A 66.135.205.13, A 66.135.205.14, A 66.211.160.87, A 66.211.160.88 (90)&lt;/div&gt;&lt;/blockquote&gt;该包的源地址&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;10.146.18.213&lt;/span&gt;是&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;eth0&lt;/span&gt;的inet地址。而手机上的DNS查询，在服务器&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;eth0&lt;/span&gt;抓的包如下：&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;11:16:11.133115 IP 192.168.1.128.58100 &amp;gt; 8.8.8.8.domain: 57041+ A? www.ebay.com. (30)&amp;nbsp;&lt;/div&gt;&lt;/blockquote&gt;在&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;eth0&lt;/span&gt;上出发的包，地址却是VPN上客户端的地址&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;192.168.1.128&lt;/span&gt;，这应该是失败的原因，这样的包到都到不了DNS服务器（内核会丢弃吗？）。&lt;br /&gt;&lt;br /&gt;后来才想到要做SNAT的，要让VPN用户访问外网这是必须的一步：&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.146.18.213&lt;/div&gt;&lt;/blockquote&gt;以后一定要记得了。虽然忘记了这一步，但是通过冷静分析，通过抓包搞清了问题的原因。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-8791758777032699492?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/8791758777032699492/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2012/01/vpn.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8791758777032699492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8791758777032699492'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2012/01/vpn.html' title='VPN故障排除'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6159281572762918469</id><published>2012-01-07T16:17:00.005+08:00</published><updated>2012-01-07T16:18:50.479+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWS'/><title type='text'>自挖陷阱</title><content type='html'>刚刚进去&lt;a href="http://aws.amazon.com/"&gt;AWS&lt;/a&gt; EC2，执行了个&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudo&lt;/span&gt;命令竟然没有要密码。&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;visudo&lt;/span&gt;一看&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudoers&lt;/span&gt;文件最后写着：&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ec2-user ALL = NOPASSWD: ALL&lt;/span&gt;&lt;/blockquote&gt;默认用户&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudo&lt;/span&gt;不用密码太危险了，立刻改成了&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ec2-user ALL = (ALL): ALL&lt;/div&gt;&lt;/blockquote&gt;这样&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudo&lt;/span&gt;需要密码。然后就傻了。默认用户&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ec2-user&lt;/span&gt;的密码我不知道，不能&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudo&lt;/span&gt;，也不能改密码，&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root&lt;/span&gt;密码更不知道了。&lt;br /&gt;&lt;br /&gt;这云端系统也不能像常规系统一样设置&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;init=/bin/bash&lt;/span&gt;的内核参数启动到单用户，也不能用LiveCD解决。网上搜了一下试图找到默认密码无果，最简单的办法就是停用这个EC2实例再新建一个。小小弄一下，没想到给自己挖了个大陷阱。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6159281572762918469?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6159281572762918469/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2012/01/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6159281572762918469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6159281572762918469'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2012/01/blog-post.html' title='自挖陷阱'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6194411385315013932</id><published>2011-11-28T15:34:00.001+08:00</published><updated>2011-11-29T17:22:27.266+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='l10n'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>怒斥Ubuntu</title><content type='html'>先讲个故事。你闻到家里很臭，但是不知道臭味从哪里来的。最后发现是家里的保姆偷偷在墙角拉屎了。原来这位保姆有随地大小便的习惯。甚至在小区里面也喜欢随地大小便，不过小区被物业和所有业主盯着，所以保姆很少在小区干，而且拉完后自己会立刻清理掉。恶心吧？&lt;br /&gt;&lt;br /&gt;其实这个保姆就是Ubuntu。 &lt;br /&gt;&lt;br /&gt;今天想在软件中心找个软件，考虑到英文界面下看到的评分和评论会比较多，就想把语言从中文切换回英文。可是在设置的语言支持里面改了之后，部分locale是en了，但有几个还是zh，设置语言的图标名称还是“语言支持”中文的，而不是Language Support。&lt;br /&gt;&lt;br /&gt;试着修改&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc/default/locale&lt;/span&gt;，把&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;~/.config&lt;/span&gt;移除，用了&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;locale-gen --purg&lt;/span&gt;e把其它locale都删除，还有&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;localepurge&lt;/span&gt;软件，都无效。只好又在&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc&lt;/span&gt;下用&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;grep -R zh_CN *&lt;/span&gt;来搜索了，发现&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc/environment&lt;/span&gt;文件里面赫然写着中文locale的环境变量：&lt;br /&gt;&lt;blockquote class="tr_bq" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"&lt;br /&gt;LANGUAGE="zh_CN:en"&lt;br /&gt;LANG="en_US.UTF-8"&lt;br /&gt;LC_MESSAGES="zh_CN.UTF-8"&lt;br /&gt;LC_CTYPE="zh_CN.UTF-8"&lt;br /&gt;LC_COLLATE="zh_CN.UTF-8"&lt;/blockquote&gt;我把里面几个locale的环境变量都删除，还重启了电脑，仍然无效，上面几个locale设置还是有效。真是气愤这破玩意！&lt;br /&gt;&lt;br /&gt;我又在家目录下用&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;grep -R zh_CN `ls -A | grep '^\.'`&lt;/span&gt;搜索，愤然发现&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;.profile&lt;/span&gt;的最后几行：&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/div&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;export LANG="en_US.UTF-8"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;export LANGUAGE="zh_CN:en"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;export LC_MESSAGES="zh_CN.UTF-8"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;export LC_CTYPE="zh_CN.UTF-8"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;export LC_COLLATE="zh_CN.UTF-8"&lt;/span&gt;&lt;/blockquote&gt;这几行删除掉后终于干净了。你妈的，都污染到&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;.profile&lt;/span&gt;文件了。好吧，拉就拉吧，谁让你住我家呢，可是你他妈的能不能拉完了清理一下啊，害老子浪费一上午时间！我已经默念无数遍Fuck Ubuntu了。&lt;br /&gt;&lt;br /&gt;对&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc&lt;/span&gt;下面的配置文件，系统在软件安装、删除、升级的时候一般都会考虑到配置。而家目录下的设置，软件往往只管写，软件删除了这些配置也保留，当然这是对的，这是用户数据要一直留着；软件升级了也不会对应升级，如果配置文件不兼容了那就会出问题。&lt;br /&gt;&lt;br /&gt;Ubuntu把设置直接写到&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;.profile&lt;/span&gt;这么关键的文件中，而且又是&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;locale&lt;/span&gt;这种重要的系统变量，如果只管写而不考虑后面的清理工作，那就太不负责了。不知道这是哪个白痴开发者干的。甚至&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc/environment&lt;/span&gt;都有疑问，我把中文的各种locale都删除了，这个文件里面却还留着中文的locale，需要自己去修改。&lt;br /&gt;&lt;br /&gt;2011-11-29更新：发现&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;~/.dmrc&lt;/span&gt;也被污染了，还保留着中文语言的信息。删掉还不行，要把中文的改成英文的才可以保留下来。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6194411385315013932?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6194411385315013932/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/11/ubuntu_28.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6194411385315013932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6194411385315013932'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/11/ubuntu_28.html' title='怒斥Ubuntu'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-7083944589295647633</id><published>2011-11-27T15:59:00.001+08:00</published><updated>2011-11-29T17:25:58.053+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Supertux'/><title type='text'>Supertux崩溃</title><content type='html'>在CRT显示器上开Supertux直接崩溃。看到屏幕记录里面有一条警告信息说&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;1440x900&lt;/span&gt;的分辨率有问题，崩溃前的最后一条是个C++头文件的错误。想到之间在液晶显示器上还是好好的呢，可能是画面分辨率导致的问题。把&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;~/.supertux2&lt;/span&gt;移走后就可以进去了。但是这样我的进度就都没有了。找到&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;~/.supertux2/config&lt;/span&gt;文件，里面有&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;fullscreen_width&lt;/span&gt;、&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;fullscreen_height&lt;/span&gt;、&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;window_width&lt;/span&gt;和&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;window_height&lt;/span&gt;等配置参数，把它们改成&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;800x600&lt;/span&gt;的（显示器是17寸，可以支持1024x768以下的几个分辨率）后游戏就能进去了。&lt;br /&gt;&lt;br /&gt;有不少&lt;a href="http://linux.fatduck.org/2011/04/blog-post_30.html"&gt;问题&lt;/a&gt;，原因可能都是配置文件过老、不兼容等问题造成的。遇到问题试试移除配置文件常常还是挺管用的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-7083944589295647633?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/7083944589295647633/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/11/supertux.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7083944589295647633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7083944589295647633'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/11/supertux.html' title='Supertux崩溃'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-368822414982180444</id><published>2011-11-27T15:46:00.001+08:00</published><updated>2011-11-27T15:56:45.196+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><category scheme='http://www.blogger.com/atom/ns#' term='X'/><title type='text'>又是显示器刷新率</title><content type='html'>&lt;a href="http://linux.fatduck.org/2010/10/blog-post.html"&gt;之前&lt;/a&gt;就折腾过刷新率。17寸CRT显示器的分辨率是对的：1024x768，可是刷新率是60不是85，GNOME 3的设置里面都不能直接刷新率呢，只能改分辨率。刚用Linux的时候，也有这样的问题，那时候用Modeline来指定刷新率，现在都懒得研究Modeline了，不想花时间在这个上面。&lt;br /&gt;&lt;br /&gt;开了Supertux后崩溃退出，显示器变成800x600@85的了。我想会不会好了呢。在GNOME 3里面把分辨率改成1024x768，刷新率竟然没有变！嗯，就这样用Supertux把显示器的刷新率设置好了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-368822414982180444?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/368822414982180444/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/11/blog-post_27.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/368822414982180444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/368822414982180444'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/11/blog-post_27.html' title='又是显示器刷新率'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1326333361415335776</id><published>2011-11-24T20:56:00.001+08:00</published><updated>2011-11-24T21:22:19.698+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thunderbird'/><category scheme='http://www.blogger.com/atom/ns#' term='Gmail'/><title type='text'>Thunderbird自动归档Gmail邮件？</title><content type='html'>通过Gmail的标签看邮件，发现只有最近一两个月的邮件在Inbox里面，别的都没有这个标签，等于是被归档了：&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-PHdbmvWXPnM/Ts5CPP8OK6I/AAAAAAAAR5k/4ng_Z3IYipQ/s1600/Screenshot-2011-11-24+21%253A09%253A36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-PHdbmvWXPnM/Ts5CPP8OK6I/AAAAAAAAR5k/4ng_Z3IYipQ/s1600/Screenshot-2011-11-24+21%253A09%253A36.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;好几个标签都有这样的问题。根据&lt;a href="https://mail.google.com/support/bin/answer.py?hl=en&amp;amp;answer=66346&amp;amp;ctx=cb&amp;amp;src=cb&amp;amp;cbid=q9xyaz0aq7my&amp;amp;cbrank=5"&gt;Google的帮助&lt;/a&gt;，检查了一下几个filter都没有设置自动归档。后来怀疑是不是Thunderbird干的，因为我同时也在Thunderbird里面用IMAP查收邮件。搜到一个碰到&lt;a href="http://getsatisfaction.com/mozilla_messaging/topics/whats_up_with_automatic_archiving"&gt;同样问题&lt;/a&gt;的哥们，但是Mozilla的人澄清了Thunderbird是不会&lt;a href="http://support.mozillamessaging.com/en-US/kb/archived-messages"&gt;自动归档&lt;/a&gt;的，帮助里面特意强调：Messages can only be archived manually, not automatically。&lt;br /&gt;&lt;br /&gt;不管怎么说，我把Thunderbird的归档功能禁用掉（&lt;a href="http://kb.mozillazine.org/Archiving_your_e-mail"&gt;方法在此&lt;/a&gt;），再观察几个月看看。用的软件越多，出问题的机会就越多，付出的维护时间就会越多。还是越简单越好！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1326333361415335776?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1326333361415335776/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/11/thunderbirdgmail.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1326333361415335776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1326333361415335776'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/11/thunderbirdgmail.html' title='Thunderbird自动归档Gmail邮件？'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-PHdbmvWXPnM/Ts5CPP8OK6I/AAAAAAAAR5k/4ng_Z3IYipQ/s72-c/Screenshot-2011-11-24+21%253A09%253A36.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4449722079833920600</id><published>2011-11-19T10:15:00.001+08:00</published><updated>2012-01-08T17:34:11.024+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='btrfs'/><category scheme='http://www.blogger.com/atom/ns#' term='GRUB'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>坑爹的Ubuntu</title><content type='html'>最近被Ubuntu的几个地方坑了，上来抱怨一下。 &lt;br /&gt;&lt;br /&gt;用interfaces文件配置网络接口的话，开机启动要等2分钟才能进去，显示"&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Waiting for network configuration...&lt;/span&gt;"，过1分钟再显示"&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Waiting up to 60 more seconds for network configuration...&lt;/span&gt;"。这是一个&lt;a href="https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/886414"&gt;影响很多人的bug&lt;/a&gt;，而开发者竟然说这是&lt;a href="http://askubuntu.com/questions/63456/waiting-for-network-configuration-adding-3-to-5-minutes-to-boot-time/66635#66635"&gt;他们设计的特性&lt;/a&gt;。最后我只能是用NetworkManager来启用我的无线和有线网卡。&lt;br /&gt;&lt;br /&gt;然后帮一个朋友恢复重装Windows之后损坏的GRUB。我很久不干这个了，因为早就不这样双系统安装了。要制作一个USB启动盘。可是&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;dd if=file.iso of=/dev/sdX&lt;/span&gt;做出的启动优盘不能启动，而usb-creator-gtk选了ISO文件和优盘后，创建的按钮还是灰色的。后来从&lt;a href="https://help.ubuntu.com/community/Installation/FromUSBStick"&gt;官方文档&lt;/a&gt;了解到，制作这个优盘启动盘需要：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;优盘要分区&lt;/li&gt;&lt;li&gt;第一个分区（启动分区）要格式化成FAT16或者FAT32文件系统&lt;/li&gt;&lt;li&gt;这个分区要加载上&lt;/li&gt;&lt;/ul&gt;真是坑爹啊，学到的标准的方法在Ubuntu这里是不适用的。&lt;br /&gt;&lt;br /&gt;做好优盘系统进去后，按照官方文档修复GRUB。推荐的&lt;a href="https://help.ubuntu.com/community/Boot-Repair"&gt;Boot-Repair&lt;/a&gt;根本找不到GRUB的安装。又用&lt;a href="https://help.ubuntu.com/community/Grub2#Copy_LiveCD_Files"&gt;命令行修复&lt;/a&gt;，可是重启后只能进入GRUB的rescue模式，而且不能加载&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;normal&lt;/span&gt;模块，说文件找不到。&lt;br /&gt;&lt;br /&gt;后来找到原因了。正常的Linux，root文件系统进去就是标准的目录，bin、usr什么的。这个朋友用了btrfs文件系统，root文件系统进去有个@目录，@目录下才是bin、usr什么的。GRUB在&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(hdX,Y)&lt;/span&gt;找不到root，在&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(hdX,Y)/@&lt;/span&gt;才能找到root，所以Boot-Repair找不到GRUB，rescue模式下也找不到模块文件。另外，官方文档说的是&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(hdX,Y)&lt;/span&gt;，而我在GRUB的rescue模式下，用&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ls&lt;/span&gt;分区发现根分区是&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(hdX,msdosY)&lt;/span&gt;这样的，所以要&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(hdX,msdosY)/@&lt;/span&gt;这样指定根分区才能找到root。&lt;br /&gt;&lt;br /&gt;修复了GRUB后搜索，发现这是11.04及其后对btrfs文件系统&lt;a href="https://help.ubuntu.com/community/btrfs#Ubuntu-specific_subvolume_layout_in_11.04_and_later"&gt;特有的设计&lt;/a&gt;。又是Ubuntu一大奇葩的特色，打破常规，让你学到的东西在Ubuntu里面再次失效。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4449722079833920600?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4449722079833920600/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/11/ubuntu.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4449722079833920600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4449722079833920600'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/11/ubuntu.html' title='坑爹的Ubuntu'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-3701586599987684951</id><published>2011-11-14T14:45:00.001+08:00</published><updated>2011-11-15T11:06:02.426+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><title type='text'>换行符引起的麻烦</title><content type='html'>用sed处理一个hosts文件，内容都是类似下面的行：&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;div&gt;&lt;div&gt;&lt;div class="sites-codeblock sites-codesnippet-block"&gt;&lt;div&gt;&lt;code&gt;203.208.46.180&lt;/code&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;code&gt;www.google.com&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;203.208.46.180&lt;/code&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;code&gt;music.google.com&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;203.208.46.180&lt;/code&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;code&gt;music.googleusercontent.com&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;203.208.46.180&lt;/code&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;code&gt;music-streaming.l.google.com&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;203.208.46.180&lt;/code&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;code&gt;large-uploads.l.google.com&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;IP地址和域名之间是用tab分割的。想用sed把这个文件处理成dnsmasq的DNS记录配置内容，用如下的命令：&lt;/div&gt;&lt;blockquote class="tr_bq"&gt;&lt;div&gt;&lt;div class="sites-codeblock sites-codesnippet-block"&gt;&lt;code&gt;sed -e 's|^\(.*\)&lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/code&gt;&lt;code&gt;\(.*\)$|address=/\2/\1|g'&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;两个引用的中间是一个TAB。期望的结果如下：&lt;/div&gt;&lt;blockquote class="tr_bq"&gt;&lt;div&gt;&lt;div class="sites-codeblock sites-codesnippet-block"&gt;&lt;div&gt;&lt;code&gt;address=/www.google.com/203.208.46.180&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;address=/music.google.com/203.208.46.180&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;address=/music.googleusercontent.com/203.208.46.180&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;address=/music-streaming.l.google.com/203.208.46.180&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;address=/large-uploads.l.google.com/203.208.46.180&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;但实际结果出乎意料：&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;div class="sites-codeblock sites-codesnippet-block"&gt;&lt;code&gt;/203.208.46.180ogle.com&lt;/code&gt;&lt;br /&gt;&lt;code&gt;/203.208.46.180google.com&lt;/code&gt;&lt;br /&gt;&lt;code&gt;/203.208.46.180googleusercontent.com&lt;/code&gt;&lt;br /&gt;&lt;code&gt;/203.208.46.180streaming.l.google.com&lt;/code&gt;&lt;br /&gt;&lt;code&gt;/203.208.46.180uploads.l.google.com&lt;/code&gt;&lt;/div&gt;&lt;/blockquote&gt;不但IP和域名的顺序没有调换，域名前面的几个字符还被覆盖了。后来想是不是因为文件换行符的问题。用Vim打开发现果然是DOS格式的换行符。把脚本改一下就可以得到正确结果了：&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;div class="sites-codeblock sites-codesnippet-block"&gt;&lt;code&gt;sed -e 's/^M$//g' -e 's|^\(.*\) \(.*\)$|address=/\2/\1|g'&lt;/code&gt;&lt;/div&gt;&lt;/blockquote&gt;错误结果也比较好解释了。Windows下的&lt;a href="https://en.wikipedia.org/wiki/Newline"&gt;换行符&lt;/a&gt;是CR+LF，Linux下的换行符是LF。CR是Carriage Return，就是打字机的打印头要回到行首，LF是Line Feed，是指纸出来一行，这样打印头就处在下一行的同一个位置了。sed命令中的第二组引用不但包括了域名，还包括了紧随其后、位于LF前的CR，这样本来应该位于\2后面的/和\1，现在要从\2的开头开始打印了，于是就覆盖了域名的前面几个字符。例如对第一行：&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;div class="sites-codeblock sites-codesnippet-block"&gt;&lt;code&gt;&lt;strike&gt;address=/www.go&lt;/strike&gt;ogle.com/&lt;/code&gt;&lt;br /&gt;&lt;code&gt;/203.208.46.180&lt;/code&gt;&lt;/div&gt;&lt;/blockquote&gt;把开头的address=/www.go都覆盖了，所以结果就是&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;div class="sites-codeblock sites-codesnippet-block"&gt;&lt;code&gt;/203.208.46.180ogle.com&lt;/code&gt;&lt;/div&gt;&lt;/blockquote&gt;后面的也都要覆盖掉IP长度+1（/）的字符。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-3701586599987684951?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/3701586599987684951/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/11/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3701586599987684951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3701586599987684951'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/11/blog-post.html' title='换行符引起的麻烦'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6795769908618347768</id><published>2011-07-11T22:11:00.000+08:00</published><updated>2011-11-14T11:57:46.331+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nginx'/><title type='text'>No input file specified错误解决方法</title><content type='html'>用的Nginx和php-fastcgi，如果URI是不存在的PHP文件，那么浏览器显示"No input file specified." 这个错误（应该）是php-fastcgi找不到对应文件出现的。解决办法是让nginx知道这个错误。参见&lt;a href="http://stackoverflow.com/questions/1024199/nginx-customizing-404-page/5939111#5939111"&gt;Stackflow上的解决办法&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6795769908618347768?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6795769908618347768/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/07/no-input-file-specified.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6795769908618347768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6795769908618347768'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/07/no-input-file-specified.html' title='No input file specified错误解决方法'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2125359981389146352</id><published>2011-07-11T18:48:00.005+08:00</published><updated>2011-07-11T21:59:06.068+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nginx'/><title type='text'>Nginx的404问题</title><content type='html'>在本机（Ubuntu 11.04）上装了个nginx来预览主页内容，发现没有404页面，乱敲个URI都显示的是首页。我自然就去找404相关的设置了。加上如下配置：&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;error_page 404 /404.html;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;location = /404.html {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; root&amp;nbsp;&amp;nbsp; /usr/share/nginx/html;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;之后还是没有变化。然后发现了这样一段配置：&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;location / {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # First attempt to serve request as file, then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # as directory, then fall back to index.html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try_files $uri $uri/ /index.html;&lt;br /&gt;}&lt;/blockquote&gt;把这段注释掉就好了，404也正常了。 Ubuntu为啥要默认这样的坑爹配置呢？CentOS 5.5没有这个问题。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2125359981389146352?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2125359981389146352/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/07/nginx404.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2125359981389146352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2125359981389146352'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/07/nginx404.html' title='Nginx的404问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1674991755296635809</id><published>2011-05-31T14:44:00.000+08:00</published><updated>2011-05-31T14:44:54.987+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wifi'/><title type='text'>死机问题解决</title><content type='html'>笔记本电脑十几天没有关机了（只休眠），今天恢复后输入无线路由器密码（有&lt;a href="https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/773301"&gt;bug&lt;/a&gt;记不住密码），然后就死机了，内核挂了。重试多次都这样。用网线连接后检查升级，也没有可用的升级。无奈用台式机登录，把无线路由器的信道由自动换成一个固定的后重启路由器，结果笔记本发现不了无线路由器。又把信道换回自动再重启路由器，笔记本连接无线路由器后再没有死机。&lt;br /&gt;&lt;br /&gt;解决这个问题的核心，是找到问题出在wifi上。不能变动（升级）内核，那就变动无线路由器来尝试解决。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1674991755296635809?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1674991755296635809/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/05/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1674991755296635809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1674991755296635809'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/05/blog-post.html' title='死机问题解决'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-500174745464650069</id><published>2011-04-30T00:15:00.005+08:00</published><updated>2011-04-30T15:59:21.370+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>系统升级后对用户配置文件的处理</title><content type='html'>&lt;a href="http://linux.fatduck.org/2011/04/ubuntu-1104gnome3.html"&gt;升级到Ubuntu 11.04&lt;/a&gt;后，Ubuntu Classic的桌面特效出问题了。在Launchpad上找了一圈，也没有看到有人汇报切合我问题的Bug，所以估计是特例，自己提交上去也得不到共鸣和解决。再次研究，终于搞定了。&lt;br /&gt;&lt;br /&gt;我研究了家目录下的一些目录，比如.gnome2，删除掉compiz相关的目录。然后全面搜查一遍（要在家目录下）：&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;tux@dell:~$ find . -iregex "\./\..*compiz.*"&lt;/blockquote&gt;在.gconf/apps里面还有东西。把找到的文件都删除掉，注销再登入就好了。如果还不行，可以grep -R *试试吧。&lt;br /&gt;&lt;br /&gt;其实很多时候软件升级带来的Bug并不是软件本身的Bug，而是因为用户家目录下的配置文件造成的。也许是新的软件和老的配置文件不兼容，所以软件就会出毛病。如果配置文件不是特别重要，可以把所有在家目录下相关的配置都删除掉（做必要的备份），很可能就可以解决问题了。&lt;br /&gt;&lt;br /&gt;我们不能指望发行版在升级软件的时候，还考虑到用户配置文件的迁移和升级，发行版只能考虑到系统配置文件的升级。我之前一直特别自豪于Linux下的配置文件可以用好几年。即使要重装系统，因为家目录总是单独分区的，所以用户配置还可以在新系统下接着使用。现在看来，系统升级后如果出现Bug，用户有必要对家目录下以点 (.)开头的配置文件进行必要的核查，并采取必要的措施。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-500174745464650069?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/500174745464650069/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/04/blog-post_30.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/500174745464650069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/500174745464650069'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/04/blog-post_30.html' title='系统升级后对用户配置文件的处理'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6117092185913492806</id><published>2011-04-25T22:03:00.000+08:00</published><updated>2011-04-25T22:03:22.618+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu 11.04和GNOME3</title><content type='html'>一时无聊升级了到了Ubuntu 11.04（离正式发布还有几天），结果桌面特效不能用，而且不论是Unity还是Ubuntu Classic，对我双显示器的支持都有问题。好吧，那就试试GNOME3。又升级到了GNOME3，对双显示器的支持都很糟糕，而且界面很不习惯。我已经把GNOME 2调教得非常顺手和方便了，鼠标到桌面左下角显示桌面，桌面右下角显示窗口缩略图(Exposé)，窗口直接在两个工作空间(Workspace)之间拖动。没有桌面特效这两个功能都没有了。&lt;br /&gt;&lt;br /&gt;于是就把GNOME3降级到了GNOME2。把源改回10.10的，然后一个一个包地降级，竟然成功了。11.04的桌面特效也没有，就试着把11.04的桌面降级到10.10。折腾很久，无奈还是无法手动解决apt的dependency hell，就改回11.04的源，恢复到了11.04。没有桌面特效，很不爽！不折腾了，开始做事情。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6117092185913492806?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6117092185913492806/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/04/ubuntu-1104gnome3.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6117092185913492806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6117092185913492806'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/04/ubuntu-1104gnome3.html' title='Ubuntu 11.04和GNOME3'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-5234110357312605428</id><published>2011-04-12T13:09:00.003+08:00</published><updated>2011-04-25T21:44:57.072+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><title type='text'>内存大小</title><content type='html'>经常看到有人询问Linux下的内存大小小于实际安装的内存。这是因为内核有保留部分内存使用。&lt;br /&gt;&lt;br /&gt;台式机：&lt;br /&gt;&lt;blockquote&gt;$ dmesg |grep Memory&lt;br /&gt;[    0.000000] Memory: &lt;b&gt;3457776k&lt;/b&gt;/&lt;b&gt;4980736k&lt;/b&gt; available (5716k kernel code, &lt;b&gt;1313348k&lt;/b&gt; absent, &lt;b&gt;209612k&lt;/b&gt; reserved, 5375k data, 912k init)&lt;/blockquote&gt;3457776+1313348+209612=4980736&lt;br /&gt;&lt;br /&gt;笔记本：&lt;br /&gt;&lt;blockquote&gt;$ dmesg |grep Memory&lt;br /&gt;[    0.000000] Memory: &lt;b&gt;2002160k&lt;/b&gt;/&lt;b&gt;2056956k&lt;/b&gt; available (5716k kernel code, &lt;b&gt;452k&lt;/b&gt; absent, &lt;b&gt;54344k&lt;/b&gt; reserved, 5375k data, 912k init)&lt;/blockquote&gt;2002160+452+54344=2056956&lt;br /&gt;&lt;br /&gt;某VPS：&lt;br /&gt;&lt;blockquote&gt;$ dmesg|grep Memory&lt;br /&gt;[    0.000000] Memory: &lt;b&gt;603080k&lt;/b&gt;/&lt;b&gt;629760k&lt;/b&gt; available (2591k kernel code, &lt;b&gt;388k&lt;/b&gt; absent, &lt;b&gt;26292k&lt;/b&gt; reserved, 5287k data, 460k init)&lt;/blockquote&gt;603080+388+26292=629760&lt;br /&gt;&lt;br /&gt;不过另一个VPS上的数据稍微有点出入：&lt;br /&gt;&lt;blockquote&gt;$ dmesg|grep Memory&lt;br /&gt;[ &amp;nbsp; &amp;nbsp;0.000000] Memory: &lt;b&gt;107040k&lt;/b&gt;/&lt;b&gt;131072k&lt;/b&gt; available (5434k kernel code, &lt;b&gt;384k&lt;/b&gt; absent, &lt;b&gt;23488k&lt;/b&gt; reserved, 5022k data, 448k init)&lt;/blockquote&gt;107040+384+23488=130912&lt;br /&gt;&lt;br /&gt;结论，系统保留的内存大小是absent+reserved的和。&lt;br /&gt;&lt;br /&gt;最近在自己的&lt;a href="http://wiki.fatduck.org/"&gt;Wiki&lt;/a&gt;上活跃了，那里更适合一些探索性的东西。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-5234110357312605428?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/5234110357312605428/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/04/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5234110357312605428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5234110357312605428'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/04/blog-post.html' title='内存大小'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-364733489625283166</id><published>2011-04-01T22:23:00.000+08:00</published><updated>2011-04-01T22:23:05.725+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='evince'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Evince看PS文件</title><content type='html'>我用evince &lt;(man -t man)来看PS格式的man page。这样evince可以正确显示页数，但是却加载不出来页面。我在Freenode的#bash里面请教，有人说可能是evince需要像lseek()一样对文件进行seek，可是对Bash的Process Substitution却无法seek。我觉得有可能是这个原因。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-364733489625283166?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/364733489625283166/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/04/evinceps.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/364733489625283166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/364733489625283166'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/04/evinceps.html' title='Evince看PS文件'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-7098618519103960194</id><published>2011-03-30T23:14:00.002+08:00</published><updated>2011-03-30T23:14:25.597+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>如何清空一个文件</title><content type='html'>$ &gt;file&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-7098618519103960194?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/7098618519103960194/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/blog-post_30.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7098618519103960194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7098618519103960194'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/blog-post_30.html' title='如何清空一个文件'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-5605872639782426750</id><published>2011-03-30T22:31:00.002+08:00</published><updated>2011-11-29T17:32:46.224+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='find'/><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><title type='text'>find的正则表达式</title><content type='html'>水木上有人问：SHELL如何只list名称是8个数字的文件夹？用&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ls [0-9]&lt;/span&gt;（重复9次），或者结合&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;grep&lt;/span&gt;可以做到。但是用&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;find&lt;/span&gt;怎么做呢？研究了一会儿才给出答案：&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;find . -type d -regextype posix-egrep -regex '.*/[0-9]{8}'&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;find&lt;/span&gt;的&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;-regex&lt;/span&gt;不是搜索，而是要匹配整个的路径，所以正则表达式前面要加&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;.*/&lt;/span&gt;。默认的正则表达式类型是Emacs类型的。虽然Emacs的正则表达式支持&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;\{\}&lt;/span&gt;的重复，但是在&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;find&lt;/span&gt;的info里面写到是不支持的，要改成&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;posix-egrep&lt;/span&gt;类型的正则表达式就可以用&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;{}&lt;/span&gt;了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-5605872639782426750?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/5605872639782426750/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/find.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5605872639782426750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5605872639782426750'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/find.html' title='find的正则表达式'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-3136710002091330487</id><published>2011-03-23T15:56:00.001+08:00</published><updated>2011-03-23T15:57:23.928+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='D-Bus'/><title type='text'>DBus揭密</title><content type='html'>昨晚折腾够呛，看代码找&lt;a href="http://linux.fatduck.org/2011/03/gnome_22.html"&gt;GNOME的休眠命令&lt;/a&gt;。正好看到Rex写的一篇“&lt;a href="http://people.debian.org.tw/%7Echihchun/2011/03/08/test-and-debug-dbus/"&gt;基本的 DBus 偵錯技巧&lt;/a&gt;&lt;br /&gt;&lt;a href="http://people.debian.org.tw/%7Echihchun/2011/03/08/test-and-debug-dbus/"&gt;&lt;/a&gt;”，用D-Bus提供的工具来解剖程序，要比看代码操作容易多了。比如用如下命令：&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Hibernate&lt;/span&gt;&lt;/blockquote&gt;即可执行休眠操作。不过这个操作是试图直接休眠，要比在GNOME中的休眠少一些操作，例如检查能不能休眠、休眠前锁定屏幕等。&lt;br /&gt;&lt;br /&gt;以前看到D-Bus这个东西，总觉得挺抽象、比较底层，没有去研究过，看了Rex的这篇文章，结合自己昨天看代码的经历，一下就对D-Bus去神秘化了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-3136710002091330487?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/3136710002091330487/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/dbus.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3136710002091330487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3136710002091330487'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/dbus.html' title='DBus揭密'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2176821780946997204</id><published>2011-03-22T23:59:00.012+08:00</published><updated>2011-03-23T15:56:55.351+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='D-Bus'/><title type='text'>寻找GNOME的休眠命令</title><content type='html'>为了试验Mac OS X Snow Leopard，把笔记本电脑硬盘全部格式化了。后来又重装了Ubuntu 10.10，但是休眠功能不行了。试着装了hibernate包，再休眠又可以了，在屏幕上可以看到hibernate包的s2disk命令存储内存印象的进度。卸载了hirbernate包，又不能休眠了。可是重装前的Ubuntu 10.10，不用装hibernate也可以休眠的。&lt;br /&gt;&lt;br /&gt;记得上大学时候在实验室很旧的计算机上装的Breezy Badger（Ubuntu 5.10），是可以休眠的，可是自己的电脑就没法休眠。现在家用的台式机也是Ubuntu 10.10，没有装hibernate也可以休眠。&lt;br /&gt;&lt;br /&gt;我就想知道在GNOME里面点击“Hibernate”后，到底执行了什么命令来休眠？装了hibernate用的是它的s2disk，那么不装的时候呢？我想一切皆有缘由的。&lt;br /&gt;&lt;br /&gt;先Google了一下，和/usr/lib/indicator-session/gtk-logout-helper（由indicator-session提供）有关系。apt-get了indicator-session和indicator-applet的源代码，但是没有找到线索。倒是/usr/bin/gnome-session-save --shutdown-dialog（由gnome-session-bin提供）可以弹出关机的提示框：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-oQc8FW0CuEI/TYjIBsUHSAI/AAAAAAAAPvs/3Eqf5J6pY2w/s1600/Shut+Down+the+Computer_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="270" src="https://lh6.googleusercontent.com/-oQc8FW0CuEI/TYjIBsUHSAI/AAAAAAAAPvs/3Eqf5J6pY2w/s320/Shut+Down+the+Computer_002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;用apt-get下载源代码，用grep大法搜索hibernate，在gnome-session的gsm-manager.c里面找到了如下的代码：&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;static void&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;manager_attempt_hibernate (GsmManager *manager)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;{&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gboolean&amp;nbsp; can_hibernate;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GError&amp;nbsp;&amp;nbsp; *error;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gboolean&amp;nbsp; ret;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_hibernate = up_client_get_can_hibernate (manager-&amp;gt;priv-&amp;gt;up_client);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (can_hibernate) {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* lock the screen before we suspend */&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; manager_perhaps_lock (manager);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = NULL;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = up_client_hibernate_sync (manager-&amp;gt;priv-&amp;gt;up_client, NULL, &amp;amp;error);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!ret) {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_warning ("Unexpected hibernate failure: %s",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error-&amp;gt;message);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_error_free (error);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;里面的up_client_hibernate_sync应该就是执行具体休眠操作的函数了。可是这个函数从哪里来呢？我没有什么浏览源码的工具，只有find、grep和vim。其实Google基本就够了，直接Google搜索这个函数名，哦，原来是&lt;a href="http://upower.freedesktop.org/docs/UPower-up-client.html#up-client-hibernate-sync"&gt;upower&lt;/a&gt;的函数。再apt-get下来upower的源代码，这个函数在upower的libupower-glib/up-client.c里面，是这么写的：&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;gboolean&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;up_client_hibernate_sync (UpClient *client, GCancellable *cancellable, GError **error)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;{&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gboolean ret;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GError *error_local = NULL;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_return_val_if_fail (UP_IS_CLIENT (client), FALSE);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_return_val_if_fail (client-&amp;gt;priv-&amp;gt;proxy != NULL, FALSE);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = dbus_g_proxy_call (client-&amp;gt;priv-&amp;gt;proxy, "Hibernate", &amp;amp;error_local,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_TYPE_INVALID, G_TYPE_INVALID);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!ret) {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DBus might time out, which is okay */&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (g_error_matches (error_local, DBUS_GERROR, DBUS_GERROR_NO_REPLY)) {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_debug ("DBUS timed out, but recovering");&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = TRUE;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goto out;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* an actual error */&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_warning ("Couldn't hibernate: %s", error_local-&amp;gt;message);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_set_error (error, 1, 0, "%s", error_local-&amp;gt;message);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;out:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error_local != NULL)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_error_free (error_local);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;dbus_g_proxy_call函数执行了实际的休眠操作，Google一下立刻得到其&lt;a href="http://dbus.freedesktop.org/doc/dbus-glib/dbus-glib-DBusGProxy.html#dbus-g-proxy-call"&gt;文档&lt;/a&gt;。至于这个“Hibernate”的method怎么调的，我不懂DBus，没搞清楚。歪打正着地在src/linux/up-backend.c里面找到了答案：&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;#define UP_BACKEND_SUSPEND_COMMAND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "/usr/sbin/pm-suspend"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;#define UP_BACKEND_HIBERNATE_COMMAND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "/usr/sbin/pm-hibernate"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;#define UP_BACKEND_POWERSAVE_TRUE_COMMAND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "/usr/sbin/pm-powersave true"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;#define UP_BACKEND_POWERSAVE_FALSE_COMMAND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "/usr/sbin/pm-powersave false"&lt;/span&gt;&lt;/blockquote&gt;原来用的硬盘上的pm-hibernate命令（由pm-utils包提供）。这个命令的落实，在/usr/lib/pm-utils/pm-functions脚本里面可以找到：&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;do_hibernate()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ -n "${HIBERNATE_MODE}" ] &amp;amp;&amp;amp; \&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grep -qw "${HIBERNATE_MODE}" /sys/power/disk &amp;amp;&amp;amp; \&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo -n "${HIBERNATE_MODE}" &amp;gt; /sys/power/disk&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo -n "disk" &amp;gt; /sys/power/state&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;好了，就此打住了。至于HIBERNATE_MODE的设置，再不往下追究了，否则就没完没了了。&lt;br /&gt;&lt;br /&gt;找到这个休眠命令的过程很纠结。以后要提高开发本领，至少是读代码的本领，才能在类似的postmortem分析中快速找到答案。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2176821780946997204?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2176821780946997204/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/gnome_22.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2176821780946997204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2176821780946997204'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/gnome_22.html' title='寻找GNOME的休眠命令'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-oQc8FW0CuEI/TYjIBsUHSAI/AAAAAAAAPvs/3Eqf5J6pY2w/s72-c/Shut+Down+the+Computer_002.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-5149810112496209977</id><published>2011-03-19T22:49:00.000+08:00</published><updated>2011-03-19T22:49:22.745+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='man'/><title type='text'>更舒服地阅读man</title><content type='html'>很多man页我都没有读完过，只是用作参考。一个原因是很多man页太长了。某天发现了man的-t参数，可以把man页处理成Postscript文件，方便打印了。我用&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;man -t 7 regex &amp;gt; regex.ps&lt;/blockquote&gt;生成了PS文件，打开一看才Letter纸上两页过一点。原来在less里面看，看不出有多长，如果要翻页几次，就觉得挺长的了，现在转成PS发现一点并不长。于是打印出来精读了两遍，很受用。&lt;br /&gt;&lt;br /&gt;用PS文件看，可以看到页数，定位、阅读的时候是以页作为单位的，可以放大、缩小，缩小后可以一眼扫到很多东西。这些要素让man页的阅读体验大大增强，效率得到了提高。虽然我们都很习惯在终端阅读man了，但是这种阅读方式明显是有缺陷的。&lt;br /&gt;&lt;br /&gt;我干脆写了一个叫pdfman的脚本，用来生成man页的PS文件并调用Evince打开这个PS文件。PS文件在Evince中是无法选取和查找的，所以要看PDF的话，就要先用ps2pdf把PS文件转换为PDF文件。&lt;br /&gt;&lt;br /&gt;我现在如果要细读man页，就用pdfman，打印出来就更好读了；如果是查找个参数什么的，就用正常的man，因为最常用的可能就是用'/'来查找关键字了，less里面很方便。&lt;br /&gt;&lt;br /&gt;所以，是时候用PS来看man了！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-5149810112496209977?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/5149810112496209977/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/man.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5149810112496209977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5149810112496209977'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/man.html' title='更舒服地阅读man'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-3786295792844366187</id><published>2011-03-14T11:33:00.004+08:00</published><updated>2011-03-14T12:23:43.849+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><title type='text'>GNOME显示器分辨率的设置</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-2O36a3VWieI/TX2Jx4tMowI/AAAAAAAAPvo/cucJQX2COH8/s1600/HPIM2458.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="234" src="https://lh5.googleusercontent.com/-2O36a3VWieI/TX2Jx4tMowI/AAAAAAAAPvo/cucJQX2COH8/s320/HPIM2458.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;最近在笔记本上外接了我已经退休的15寸CRT显示器，这样切换屏幕面积变大，多窗口使用比较方便。这台显示器最大支持1024x768@85Hz，但是“显示器首选项”里面比这个分辨率高的还有三个，最高是1280x1024@60Hz。这个刷新率比较低，不太习惯。&lt;br /&gt;&lt;br /&gt;每次在“显示器首选项”里面关闭CRT再打开的时候，默认的分辨率就是最高的，还要用鼠标去选择1024x768的分辨率和85Hz的刷新率才行。我想把高的三个删掉，但是在Xorg.conf、在gconf-editor里面都没有找到。最后只好来地毯式搜索了：&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;tux@dell:~$ find . -name '.*' | grep -R 1280&lt;/span&gt;&lt;/blockquote&gt;结果是空的。&lt;br /&gt;再来：&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@dell:/home/tux# find /etc -type f -print0 |xargs -0 grep -R 1280&lt;br /&gt;/etc/gnome-settings-daemon/xrandr/monitors.xml:          1280&lt;br /&gt;…………&lt;/blockquote&gt;第一个就抓到了，原来在/etc/gnome-settings-daemon/xrandr/monitors.xml里面。因为在“显示器首选项”里面选了设为默认，需要认证sudo，所以设置应当是保存在了系统目录里面。&lt;br /&gt;&lt;br /&gt;但是打开这个文件就发现，里面保存的是各模式的组合，而不是这些模式本身。研究发现GNOME是从xrandr获取的可用模式：&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;tux@dell:~$ xrandr&lt;br /&gt;Screen 0: minimum 320 x 200, current 2390 x 768, maximum 8192 x 8192&lt;br /&gt;VGA1 connected 1024x768+1366+0 (normal left inverted right x axis y axis) 306mm x 230mm&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1280x1024&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60.0&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 1280x960&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60.0&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 1152x864&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 75.0&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 1024x768&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85.0*&amp;nbsp;&amp;nbsp;&amp;nbsp; 75.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 70.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60.0&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 832x624&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 74.6&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 800x600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 72.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 75.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60.3&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 640x480&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 72.8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 75.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60.0&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 720x400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 70.1&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 640x350&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 70.1&amp;nbsp; &lt;br /&gt;LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 174mm&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1366x768&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60.0*+&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1360x768&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 59.8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60.0&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 1024x768&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60.0&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 800x600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60.3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 56.2&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 640x480&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 59.9&amp;nbsp; &lt;br /&gt;DP1 disconnected (normal left inverted right x axis y axis)&lt;/blockquote&gt;这些模式是GNOME实时获得的，貌似不是从什么配置文件获得的。顺便把一个3年多前&lt;a href="http://www.linuxquestions.org/questions/linux-desktop-74/gnome-screen-resolution-doesnt-match-x11-xorg-conf-how-do-i-edit-my-resolutions-622129/#post4289779"&gt;问这个问题的帖子&lt;/a&gt;也给回答了。:-)&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-qWt4tEX385Y/TX2JYkABJMI/AAAAAAAAPvg/EJwY_RCuxxs/s1600/Screenshot-1.png" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="152" src="https://lh5.googleusercontent.com/-qWt4tEX385Y/TX2JYkABJMI/AAAAAAAAPvg/EJwY_RCuxxs/s400/Screenshot-1.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;右边屏幕分辨率：1280x1024&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-gdnnL4wN2xs/TX2JcLgqUSI/AAAAAAAAPvk/J9yB-sCn9GA/s1600/Screenshot.png" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="127" src="https://lh4.googleusercontent.com/-gdnnL4wN2xs/TX2JcLgqUSI/AAAAAAAAPvk/J9yB-sCn9GA/s400/Screenshot.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;右边屏幕分辨率：1024x768&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;最后发现把显示器分辨率设置成1024x768还有一个好处。笔记本的分辨率是1366x768，这样两个显示器的高度一样，整个桌面是一个整齐的长方形。如果设置成1280x1024，那么笔记本电脑比较矮，在它屏幕的下方就有一块1366x256黑块。虽然用的时候看不到，但是GNOME是把那里也当成桌面的。我的桌面特效里面把鼠标挪到左下角显示桌面，这样的话要把鼠标挪到看不到的黑块的左下角才能显示桌面。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-3786295792844366187?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/3786295792844366187/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/gnome.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3786295792844366187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3786295792844366187'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/gnome.html' title='GNOME显示器分辨率的设置'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-2O36a3VWieI/TX2Jx4tMowI/AAAAAAAAPvo/cucJQX2COH8/s72-c/HPIM2458.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4580647638260950240</id><published>2011-03-11T18:32:00.000+08:00</published><updated>2011-03-11T18:32:11.531+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><title type='text'>SSH上不去</title><content type='html'>新建了个测试用户，结果远程登录上不去。看了这个用户没有家目录，还以为这样不行呢。但建了也上不去。是不是设置了knockd？没有。是不是端口改成了不是22的？也不是。最后打开IBM DW上的《&lt;a href="http://www.ibm.com/developerworks/cn/aix/library/au-sshlocks/index.html"&gt;保护 SSH 的三把锁&lt;/a&gt;》这篇文章，因为我照着这个配置过。一看还有一把锁是用PAM限制登录用户，原来我用PAM设置了两个用户能用SSH登录上来。有时候做了一些不常用的配置，时间长了就记不清了。出了问题想不起来就有点麻烦了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4580647638260950240?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4580647638260950240/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/ssh.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4580647638260950240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4580647638260950240'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/ssh.html' title='SSH上不去'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-5490781617505591575</id><published>2011-03-11T16:49:00.001+08:00</published><updated>2011-03-11T17:01:53.599+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sudo'/><title type='text'>sudoers的语法</title><content type='html'>以前没有学习过sudoers配置文件的语法，给自己的普通账号赋予所有的权限，例如：&lt;br /&gt;&lt;blockquote&gt;tux&amp;nbsp; ALL=(ALL) ALL&lt;/blockquote&gt;或者&lt;br /&gt;&lt;blockquote&gt;%wheel ALL=(ALL) ALL&lt;/blockquote&gt;或者 &lt;br /&gt;&lt;blockquote&gt;%admin ALL=(ALL) ALL&lt;/blockquote&gt;Ubuntu下都不用修改，因为安装时候添加的用户已经给放到了admin组。但要是多用户的服务器，这么做就不够了。sudo的配置文件提供了精细的配置选项，可以为用户、运行身份、机器和命令设置多个别名，分别是：User_Alias、Runas_Alias、Host_Alias和Cmnd_Alias。&lt;br /&gt;&lt;br /&gt;关键的语句是User Specification，指定了谁在哪里以什么身份可以做什么：&lt;br /&gt;&lt;table border="1" cellpadding="2" cellspacing="2" style="text-align: left; width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;tux&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;ALL=&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;(ALL)&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;ALL&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;谁（用户）&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;在哪里（机器）&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;什么身份（运行身份）&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;做什么（命令）&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt;可以通过前面提到的四种别名进行更细的设置，详见sudoers(5)。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-5490781617505591575?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/5490781617505591575/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/sudoers.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5490781617505591575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5490781617505591575'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/sudoers.html' title='sudoers的语法'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2207318750853520223</id><published>2011-03-10T23:16:00.002+08:00</published><updated>2011-03-11T16:18:26.296+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rsync'/><title type='text'>rsync同步的问题</title><content type='html'>我用自己写的台式机和笔记本之间进行同步的脚本，把笔记本上昨晚下载的Redhat Enterprise Linux 6.0的DVD镜像同步到台式机。脚本里面是用rsync同步，但是发现这个DVD光盘不在要同步文件列表里面。是不是文件太大了呢？打开rsync的man，看到里面有个-max-size选项，指定传输文件的最大尺寸。我指定到很大之后，还是没有这个DVD镜像。把rsync的源代码包下载下来，也没有找到这个值的默认设置。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;我的rsync选项是：&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;OPTIONS="--archive --delete --backup --backup-dir=/home/tux/.rsync/backup/ --suffix=@ --partial --partial-dir=.rsync-partial --update --progress --itemize-changes"&lt;/blockquote&gt;我检查可疑的选项。看到--update选项的作用是如果目标文件的修改时间比源文件新则跳过。我打开台式机的目录一看，里面已经有这个DVD了，是刚刚复制、粘贴一半又取消剩下的十几兆大的一个文件。把这个文件删除了，再同步就可以了。&lt;br /&gt;&lt;br /&gt;以前加上--update选项是为了避免在一端新修改的文件在被另一端的覆盖。但是从这事情看，这样可能让同步内容不能完整传送过去。我现在去掉了--update选项，这样总是会完全同步的，但在确认前始终要检查一遍要执行的操作。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2207318750853520223?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2207318750853520223/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/rsync.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2207318750853520223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2207318750853520223'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/rsync.html' title='rsync同步的问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4169432624151737401</id><published>2011-03-07T09:11:00.002+08:00</published><updated>2011-03-07T09:43:44.631+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><category scheme='http://www.blogger.com/atom/ns#' term='yum'/><title type='text'>yum的autoremove功能</title><content type='html'>Debian下apt-get有个autoremove功能，可以卸载不再需要的被依赖（depended）包：&lt;br /&gt;&lt;blockquote&gt;autoremove&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autoremove is used to remove packages that were automatically&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; installed to satisfy dependencies for some package and that are no&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; more needed.&lt;/blockquote&gt;但是yum没有这个命令，而且也没有这样的功能。比如我刚刚安装了vim-enhanced，同时新安装了一堆被依赖包，这些包都是只被vim-enhanced依赖的。yum remove vim-enhanced只会卸载vim-enhanced，而不会卸载这些依赖包，这样卸载完后这些包都成了无用的包。&lt;br /&gt;&lt;br /&gt;目前可以安装yum-plugin-show-leaves插件，在yum输出的最后显示新的leaves（不被其它包依赖）：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-2FPn_7vdMZw/TXQzaIzQDUI/AAAAAAAAPvY/aw63DIOXI84/s1600/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="263" src="https://lh5.googleusercontent.com/-2FPn_7vdMZw/TXQzaIzQDUI/AAAAAAAAPvY/aw63DIOXI84/s400/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_001.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;不过这个东西也不靠谱，vim安装的依赖包可不止最后的gpm-libs、ruby-libs和vim-common这三个，我在yum.log里面又找到了好多：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-U0Y9PYAkr3w/TXQ34MjeYEI/AAAAAAAAPvc/wx0Y7TpSVKQ/s1600/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="263" src="https://lh3.googleusercontent.com/-U0Y9PYAkr3w/TXQ34MjeYEI/AAAAAAAAPvc/wx0Y7TpSVKQ/s400/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;前12个都是vim依赖的包，我要都在命令行指定删除。这很麻烦的。&lt;br /&gt;&lt;br /&gt;找到一篇文章，yum里面已经提供了&lt;a href="http://skvidal.wordpress.com/2010/11/09/orphaned-dep-cleanup-in-yum/"&gt;类似的功能&lt;/a&gt;，不过在Fedora 14里面还没有出现。但愿这个功能能够普及。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4169432624151737401?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4169432624151737401/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/yumautoremove.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4169432624151737401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4169432624151737401'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/yumautoremove.html' title='yum的autoremove功能'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-2FPn_7vdMZw/TXQzaIzQDUI/AAAAAAAAPvY/aw63DIOXI84/s72-c/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2564332188084658259</id><published>2011-03-04T22:48:00.001+08:00</published><updated>2011-03-04T22:48:25.124+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><title type='text'>坑爹的Fedora</title><content type='html'>安装Fedora 14，我不需要桌面，可是都联网下载软件了也没有让我选择安装什么类型（桌面、服务器等）。&lt;a href="http://www.linuxquestions.org/questions/linux-software-2/fedora-14-xbmc-minimal-install-no-desktop-enviroment-gnome-kde-xcfe-and-etc-852678/#post4209901"&gt;网上搜了下&lt;/a&gt;，说最后一步才是选择安装类型。又试了试，果然是联网下载一会儿才问我安装的软件集：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-QDv1OpfFuJ8/TXD7TFO72TI/AAAAAAAAPvU/J4BiQttoL74/s1600/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="539" src="https://lh4.googleusercontent.com/-QDv1OpfFuJ8/TXD7TFO72TI/AAAAAAAAPvU/J4BiQttoL74/s640/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_003.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;貌似Ubuntu是安装开始就问的。感谢Fedora给我的惊喜。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2564332188084658259?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2564332188084658259/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/fedora.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2564332188084658259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2564332188084658259'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/fedora.html' title='坑爹的Fedora'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-QDv1OpfFuJ8/TXD7TFO72TI/AAAAAAAAPvU/J4BiQttoL74/s72-c/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_003.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-3282611459445500158</id><published>2011-03-04T21:41:00.000+08:00</published><updated>2011-03-04T21:41:05.046+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><title type='text'>不给力的因特尔</title><content type='html'>在VirtualBox里面安装Fedora 14 x86_64版本失败，显示如下错误：&lt;br /&gt;&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-iZRZNk4GGQU/TXDrncIE-eI/AAAAAAAAPvQ/txx6zmNErBc/s1600/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="https://lh6.googleusercontent.com/-iZRZNk4GGQU/TXDrncIE-eI/AAAAAAAAPvQ/txx6zmNErBc/s400/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_001.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;This kernel requires an x86-64 CPU, but only detected an i686 CPU.&lt;br /&gt;Unable to boot - please use a kernel appropriate for your CPU.&lt;/blockquote&gt;VirtualBox的&lt;a href="http://www.virtualbox.org/manual/ch03.html#intro-64bitguests"&gt;文档&lt;/a&gt;说允许64位客户机要打开APIC支持，我打开后还是出现一样的错误。再看&lt;a href="http://www.virtualbox.org/manual/ch10.html#hwvirt"&gt;文档&lt;/a&gt;，原来需要硬件虚拟化支持：&lt;br /&gt;&lt;blockquote&gt;VirtualBox's 64-bit guest support (added with version 2.0) and           multiprocessing (SMP, added with version 3.0) both require hardware           virtualization to be enabled. (This is not much of a limitation           since the vast majority of today's 64-bit and multicore CPUs ship           with hardware virtualization anyway; the exceptions to this rule are           e.g. older Intel Celeron and AMD Opteron CPUs.)&lt;/blockquote&gt;&lt;br /&gt;我的本本是Dell Inspiron 14v，CPU是因特尔&lt;a href="http://ark.intel.com/Product.aspx?id=42925"&gt;奔腾T4500&lt;/a&gt;，不支持VT-x技术。以前攒台式机的时候就要求CPU一定得支持硬件虚拟化，调研发现Intel偏低端的CPU就是不支持VT-x，而AMD就厚道多了，64位的CPU基本都支持AMD-V，最后选择了AMD的CPU。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-3282611459445500158?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/3282611459445500158/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3282611459445500158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3282611459445500158'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/blog-post.html' title='不给力的因特尔'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-iZRZNk4GGQU/TXDrncIE-eI/AAAAAAAAPvQ/txx6zmNErBc/s72-c/Fedora+%255B%25E6%25AD%25A3%25E5%259C%25A8%25E8%25BF%2590%25E8%25A1%258C%255D+-+VirtualBox+OSE_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1476900888074664502</id><published>2011-03-04T19:59:00.001+08:00</published><updated>2011-03-04T20:00:20.152+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Unattended Upgrades</title><content type='html'>Ubuntu下的unattended-upgrades包可以自动安装安全更新。apt包提供的/etc/cron.daily/apt文件可以识别unattended-upgrades的设置，该设置在/etc/apt/apt.conf.d/10periodic中定义。默认是不启用的，要添加&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;APT::Periodic::Unattended-Upgrade "1";&lt;/blockquote&gt;到10periodic中方可。&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-ATky4KY_FtU/TXDTZ7UuGtI/AAAAAAAAPvM/h_GrioyGAxg/s1600/%25E8%25BD%25AF%25E4%25BB%25B6%25E6%25BA%2590_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="https://lh6.googleusercontent.com/-ATky4KY_FtU/TXDTZ7UuGtI/AAAAAAAAPvM/h_GrioyGAxg/s400/%25E8%25BD%25AF%25E4%25BB%25B6%25E6%25BA%2590_001.png" width="376" /&gt;&lt;/a&gt;&lt;/div&gt;在GNOME菜单的“软件源”中，若勾上“不确认就安装安全更新”，则立刻在10periodic文件中添加该行。&lt;br /&gt;&lt;br /&gt;多说一句的是，10periodic文件是由&lt;a href="http://linux.fatduck.org/2010/11/apt.html"&gt;update-notifier-common&lt;/a&gt;包提供的：&lt;br /&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# apt-file search 10periodic&lt;br /&gt;update-notifier-common: /etc/apt/apt.conf.d/10periodic&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1476900888074664502?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1476900888074664502/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/03/unattended-upgrade.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1476900888074664502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1476900888074664502'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/03/unattended-upgrade.html' title='Unattended Upgrades'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-ATky4KY_FtU/TXDTZ7UuGtI/AAAAAAAAPvM/h_GrioyGAxg/s72-c/%25E8%25BD%25AF%25E4%25BB%25B6%25E6%25BA%2590_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-9111677760526169515</id><published>2011-02-28T10:43:00.001+08:00</published><updated>2011-02-28T10:44:14.690+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dnsmasq'/><title type='text'>dnsmasq的错误</title><content type='html'>&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DNSmasq出现如下错误：&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;tux@Neverland:/usr/share/virtualbox$ sudo service dnsmasq restart&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;* Restarting DNS forwarder and DHCP server dnsmasq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;dnsmasq: failed to bind DHCP server socket: Address already in use&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [fail]&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;看起来是端口被占用了。原来还开着bind9呢。把bind9禁止了就好了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-9111677760526169515?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/9111677760526169515/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/02/dnsmasq.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/9111677760526169515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/9111677760526169515'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/02/dnsmasq.html' title='dnsmasq的错误'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2770764006402710306</id><published>2011-02-28T09:31:00.002+08:00</published><updated>2011-03-13T15:08:36.160+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><category scheme='http://www.blogger.com/atom/ns#' term='ATI'/><title type='text'>显卡驱动失效</title><content type='html'>昨晚来了个telinit 1之后，再进去桌面特效就没有了，就先放一边了。后来发现VirtualBox里面的Windows XP都打不开了，出现NS_ERROR_FAILURE (0x80004005)的错误：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-MkJJTGUd-ro/TWr4kCyvs0I/AAAAAAAAPuw/UTf3nSMl2UI/s1600/VirtualBox+-+Error_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="https://lh6.googleusercontent.com/-MkJJTGUd-ro/TWr4kCyvs0I/AAAAAAAAPuw/UTf3nSMl2UI/s320/VirtualBox+-+Error_001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;这个不像是内核模块的错误，因为没有其它的错误了。dmesg发现如下信息：&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Feb 27 22:46:51 Neverland kernel: [10061.463577] VBoxTestOGL[5390]: segfault at 4 ip 00007f4af0c6938e sp 00007fff6a44cfd0 error 4 in libGL.so.1.2[7f4a f0c0e000+ae000]&lt;/span&gt;&lt;/blockquote&gt;看来是显卡驱动没有加载，不支持OpenGL了。而我在XP虚拟机里面打开了3D加速，这个需要宿主机支持OpenGL的。当时由于显卡驱动的问题，这两个复选框都是灰的，没法去掉。下图是恢复后的样子。&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-YJIgSumeB3s/TWr4kiLWoeI/AAAAAAAAPu0/UAqubWukAos/s1600/Windows+XP+-+Settings_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="https://lh3.googleusercontent.com/-YJIgSumeB3s/TWr4kiLWoeI/AAAAAAAAPu0/UAqubWukAos/s320/Windows+XP+-+Settings_002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;今天再次打开ATI的驱动设置，当然是出错消息，但是提示用aticonfig设置。然后就用aticonfig --initial一下，然后重启桌面，桌面特效好了，虚拟机也能启动了。&lt;br /&gt;&lt;br /&gt;以后要记得aticonfig这个命令来初始化显卡驱动。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2770764006402710306?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2770764006402710306/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/02/blog-post_28.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2770764006402710306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2770764006402710306'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/02/blog-post_28.html' title='显卡驱动失效'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-MkJJTGUd-ro/TWr4kCyvs0I/AAAAAAAAPuw/UTf3nSMl2UI/s72-c/VirtualBox+-+Error_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-8347025878894369284</id><published>2011-02-05T18:51:00.001+08:00</published><updated>2011-02-05T18:52:38.617+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPTP'/><category scheme='http://www.blogger.com/atom/ns#' term='AWS'/><title type='text'>AWS上的VPN</title><content type='html'>&lt;a href="http://aws.amazon.com/"&gt;AWS&lt;/a&gt;上的主机可以当个VPS使用，而且还一年&lt;a href="http://aws.amazon.com/free/"&gt;免费&lt;/a&gt;呢。Linux AMI (Amazon Machine Image)的&lt;a href="http://ec2-downloads.s3.amazonaws.com/AmazonLinuxAMIUserGuide.pdf"&gt;说明书&lt;/a&gt;上说：&lt;br /&gt;&lt;blockquote&gt;In addition, this version of the Amazon Linux AMI has been built to be binary compatible with the CentOS 5.x series of&lt;br /&gt;releases, and therefore packages that are built to run on CentOS should run on the Amazon Linux AMI as well.&lt;/blockquote&gt;我把&lt;a href="http://www.osresources.com/11_6_en.html"&gt;CentOS 5.5的源&lt;/a&gt;加上去，还是没法直接兼容的，比如yum的$releasever这个变量都是2010.10，不是CentOS的版本号。可惜PPTPd在源里面都没有，&lt;a href="http://poptop.sourceforge.net/yum/"&gt;下载&lt;/a&gt;了Redhat企业版5的RPM包，安装上去后连接始终出错，但是找不到原因。随便搜了一下，发现&lt;a href="http://www.imtnt.net/in-the-amazon-aws-ec2-and-centos-set-up-a-pptp-vpn/"&gt;某帖子&lt;/a&gt;说在CentOS上PPTP装上去不能用，就用了里面提供的安装脚本。原来是下载SRPM包编译安装的PPTPd。我倒是多年不用，忘了编译安装软件这个办法了。用这个脚本安装的是可以用的，就再没有自己从头编译折腾。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-8347025878894369284?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/8347025878894369284/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/02/awsvpn.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8347025878894369284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8347025878894369284'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/02/awsvpn.html' title='AWS上的VPN'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1544592818504380041</id><published>2011-02-02T14:05:00.001+08:00</published><updated>2011-11-07T17:56:59.237+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Picasa'/><title type='text'>Picasa的字体替换</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_JJwHxugvGbE/TUjz6CvjsWI/AAAAAAAAHFI/R30ASw-Y4Ko/s1600/Menu_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="140" src="http://3.bp.blogspot.com/_JJwHxugvGbE/TUjz6CvjsWI/AAAAAAAAHFI/R30ASw-Y4Ko/s320/Menu_002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_JJwHxugvGbE/TUjz6z1MjRI/AAAAAAAAHFM/3QSxmSDoftg/s1600/Picasa+Font+Configure_003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_JJwHxugvGbE/TUjz6z1MjRI/AAAAAAAAHFM/3QSxmSDoftg/s400/Picasa+Font+Configure_003.png" width="315" /&gt;&lt;/a&gt;&lt;/div&gt;Picasa 3下面的汉字是方块，以前解决了，后来又忘了怎么弄的。其实在Picasa Font Settings这个程序里，给Tahoma（Picasa默认的界面字体）添加一个中文备用字体就可以了，我用的是文泉驿Micro Hei。Picasa是自己带Wine的，不依赖系统发行的Wine，所以设置Wine是没有用的。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 2011-11-07&lt;/b&gt;: 对话框中的中文字体还是方块，把&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/opt/google/picasa/3.0/wine/drive_c/windows/inf/picasa.inf&lt;/span&gt;里面的&lt;br /&gt;&lt;blockquote class="tr_bq" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;HKLM,Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes,"MS Shell Dlg",,"Tahoma"&lt;/blockquote&gt;改成&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;HKLM,Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes,"MS Shell Dlg",,"WenQuanYi Micro Hei"&lt;/span&gt;&lt;/blockquote&gt;即可解决。来自&lt;a href="http://farheart-wy.blogspot.com/2011/02/picasa-30-beta-for-linux.html"&gt;Yu Wang's Blog&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1544592818504380041?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1544592818504380041/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/02/picasa.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1544592818504380041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1544592818504380041'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/02/picasa.html' title='Picasa的字体替换'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JJwHxugvGbE/TUjz6CvjsWI/AAAAAAAAHFI/R30ASw-Y4Ko/s72-c/Menu_002.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4564446028390087934</id><published>2011-02-02T12:20:00.000+08:00</published><updated>2011-02-02T12:20:48.666+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misclog'/><title type='text'>台式机故障</title><content type='html'>昨晚还好的，今天开机就显示器不亮，鼠标、键盘也没有得电。想起这个电脑以前也有过类似的问题，是按住机箱的复位键一会儿松开后，就会正常启动了。发生故障的时候，电脑噪音较小，正常启动后噪音也恢复正常。怀疑是电源的问题让系统无法正常启动。以后出现故障，要及时记录下来症状和解决办法以备后续查询。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4564446028390087934?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4564446028390087934/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/02/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4564446028390087934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4564446028390087934'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/02/blog-post.html' title='台式机故障'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-848717023417838943</id><published>2011-01-24T10:49:00.003+08:00</published><updated>2011-01-24T12:23:17.315+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><title type='text'>多个A记录</title><content type='html'>最近尝试了一下多域名。域名是在&lt;a href="http://name.com/"&gt;name.com&lt;/a&gt;上放的，共两个A，但是两个地方的网页内容不同。&lt;br /&gt;&lt;br /&gt;用w3m/0.5.2上，每刷新一次地址都变，很规律。Opera/11也变得比较勤，Firefox/3.6和Chromium/8要迅速刷几下才变。ping每次都变，OpenSSH是每次都调换顺序，如果第一个连接失败就换到下一个IP。Opera&amp;nbsp;mini/5会变，Android/2.2（&lt;a href="http://linux.fatduck.org/2011/01/android.html"&gt;虚拟机&lt;/a&gt;）没见到变。Windows XP下的Safari/4、Chrome/8和IE/8都没看到变的。&lt;br /&gt;&lt;br /&gt;我只是试验了下几个客户端的表现，其实还不知道服务端的策略呢。其实下面的回答就很概括了：&lt;br /&gt;&lt;blockquote&gt;moi: 那客户得到的哪个？&lt;br /&gt;任晓磊: 服务器可以按多种顺序输出，客户端也可以对顺序有自己的理解&lt;/blockquote&gt;&lt;div&gt;如果www.example.com指向两个服务器，而这两个服务器同时也有SSH服务，那么SSH的时候，就不能确定连接那个服务器了。这时候就需要新设置A记录了，比如给admin.example.com设置单独的A记录，来作为SSH连接的主机。&lt;br /&gt;&lt;br /&gt;发送自我的Windows Mobile 电话&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-848717023417838943?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/848717023417838943/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/blog-post_24.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/848717023417838943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/848717023417838943'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/blog-post_24.html' title='多个A记录'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1305164825682988850</id><published>2011-01-22T18:34:00.001+08:00</published><updated>2011-01-22T19:29:28.754+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><title type='text'>智能DNS</title><content type='html'>&lt;a href="http://www.dnspod.cn/"&gt;DNSPod&lt;/a&gt;网站提供了智能DNS，免费版本可以设置默认、电信、联通和教育网四个类型。如果在不同区域都有服务器，可以把各区域的A记录列到对应线路类型里面：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_JJwHxugvGbE/TTqw5qXBXnI/AAAAAAAAHD4/gRSq8BzQnJQ/s1600/screenshot4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="117" src="http://1.bp.blogspot.com/_JJwHxugvGbE/TTqw5qXBXnI/AAAAAAAAHD4/gRSq8BzQnJQ/s640/screenshot4.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;上面的除了最后一个IP是教育网的，其它两个都在国外，只是为了试验这个功能。&lt;br /&gt;&lt;br /&gt;在域名注册的地方把NS改为DNSPod的，等了一天了还有地方没有生效，相比在name.com那里，改了几乎马上生效。这样在我联通的宽带访问，对应的IP就是第二个；在国外访问，就是默认的第一个。&lt;br /&gt;&lt;br /&gt;DNSPod号称提供宕机检测，就是如果发现一个记录失效后，自动从列表中移除该记录，以让客户端解析到正常的记录上。但是免费版的并不提供这个功能，上当了。我是找国外免费的DNS failover服务，什么zoneedit, editdns, dnsmadeeasy, dyndns, freedns都看了，都没有免费的。&lt;br /&gt;&lt;br /&gt;实际上这样的DNS failover是很被&lt;a href="http://serverfault.com/questions/60553/why-is-dns-failover-so-frowned-upon"&gt;诟病&lt;/a&gt;的。经过我试用DNSPod的免费服务，记录修改后传播非常慢，而且在这个过程中，不同ISP网段下DNS的解析结果都不一样，很混乱。如果实际使用中这么混乱，问题可能比麻烦还多。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1305164825682988850?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1305164825682988850/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/dns.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1305164825682988850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1305164825682988850'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/dns.html' title='智能DNS'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JJwHxugvGbE/TTqw5qXBXnI/AAAAAAAAHD4/gRSq8BzQnJQ/s72-c/screenshot4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4214040096163449704</id><published>2011-01-22T00:02:00.000+08:00</published><updated>2011-01-22T00:02:25.353+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nginx'/><title type='text'>备份服务</title><content type='html'>不小心把FreeBSD搞宕机了，上面有主页，还有一些自己的Web服务。这个机器一时还没人给我去看，既然还有别的机器，就搞个服务的备份吧。最简单的备份，就是宕机后把域名的A记录改到新地址，然后在新机器上从桌面电脑同步一份主页的内容上去。这样把主页恢复了。&lt;br /&gt;&lt;br /&gt;几个动态的站点只有FreeBSD上有，现在没法复制，就弄了一个恢复页面。所有的URI都定向到maintenance.php文件，要保证URI是maintenance.php的时候可以正常显示PHP文件：&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;server {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; listen 80;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; server_name *.fossilet.org;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; access_log&amp;nbsp; /var/log/nginx/fossilet.access.log;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rewrite ^(.*)$ http://fossilet.org$1 permanent;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;server {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; listen 80;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; server_name fossilet.org;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; access_log&amp;nbsp; /var/log/nginx/fossilet.access.log;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; root /var/www/fossilet;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; location / {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (-f $document_root/maintenance.php) {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 503;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index index.php index.html index.html;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error_page 503 @maintenance;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; location @maintenance {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rewrite ^(.*)$ /maintenance.php break;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fastcgi_pass&amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1:9000;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fastcgi_index&amp;nbsp;&amp;nbsp; index.php;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fastcgi_param&amp;nbsp;&amp;nbsp; SCRIPT_FILENAME /var/www/fossilet$fastcgi_script_name;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fastcgi_params;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error_page 500 502 503 504 /50x.html;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; location = /50x.html {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; root /var/www/nginx-default;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4214040096163449704?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4214040096163449704/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/blog-post_22.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4214040096163449704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4214040096163449704'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/blog-post_22.html' title='备份服务'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4428947001033336739</id><published>2011-01-20T20:19:00.000+08:00</published><updated>2011-01-20T20:19:47.174+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nginx'/><title type='text'>nginx的问题</title><content type='html'>弄个维护页面（PHP），可是所有PHP都显示Temporarily unavailable。以为是配置的问题。看error.log，是fastcgi的网关处理超时。再检查配置文件的时候，发现fastcgi的网关写成了128.0.0.1。真是低级的错误啊。可能是远程登陆上去速度很慢，切换screen的时候在Vim里面Ctrl-A正好把127增加到了128。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4428947001033336739?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4428947001033336739/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/nginx.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4428947001033336739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4428947001033336739'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/nginx.html' title='nginx的问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-3908901658575278024</id><published>2011-01-20T19:29:00.000+08:00</published><updated>2011-01-20T19:29:33.731+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox崩溃</title><content type='html'>下了个Firefox 4 beta 9，结果插件都不认，AutoProxy没法用，遂退回3。可是之后3持续崩溃，安全模式（-safe-mode）也无助。发现Firefox还有一个-g选项用来debug，是用gdb调试的。打开后start命令开始，发现Segmentation fault，出在/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/IcedTeaPlugin.so。用dpkg -S查找，是icedtea6-plugin这个包里面的。这个包是给Firefox提供Java Applet支持的，现在很少有网页用Applet了（我是为了看time.gov网站的时间才装的）。卸载掉这个包Firefox就正常了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-3908901658575278024?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/3908901658575278024/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/firefox_20.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3908901658575278024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3908901658575278024'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/firefox_20.html' title='Firefox崩溃'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-7326710992311452308</id><published>2011-01-20T09:45:00.004+08:00</published><updated>2011-01-22T20:39:02.959+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox诡异的问题</title><content type='html'>改nginx虚拟主机配置，改完后reload，可是Firefox里头还是旧的内容。反复检查nginx的配置也没看出问题，然后打开Chromium上就没有问题。把Firefox的缓存清了之后，Firefox也没问题了。有时候Ctrl-F5刷新也没有效果，必须手动清楚Cache才行。&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_JJwHxugvGbE/TTrP13HM3nI/AAAAAAAAHD8/kWpugtx6z5o/s1600/Clear+Recent+History_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_JJwHxugvGbE/TTrP13HM3nI/AAAAAAAAHD8/kWpugtx6z5o/s1600/Clear+Recent+History_002.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;有时候出了问题，关键是找到问题产生的来源在哪里。用同类的其他工具进行试验，或者换个环境、参数试验，往往会很有帮助。&lt;br /&gt;&lt;br /&gt;发送自我的Windows Mobile 电话&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-7326710992311452308?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/7326710992311452308/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/firefox.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7326710992311452308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7326710992311452308'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/firefox.html' title='Firefox诡异的问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JJwHxugvGbE/TTrP13HM3nI/AAAAAAAAHD8/kWpugtx6z5o/s72-c/Clear+Recent+History_002.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-8964543577293041292</id><published>2011-01-20T09:04:00.002+08:00</published><updated>2011-01-20T19:21:13.763+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python序列索引</title><content type='html'>s[i:j:k]的i和j是头和尾，k是步长，我却把中间的j当成了步长，再加上负数索引就更纠结了。代码：&lt;br /&gt;&lt;blockquote&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;s="foobar"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; k=3&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; ''.join([chr(ord(c)+1) for c in s[-1:-k-1:-1]])&lt;/span&gt;&lt;/blockquote&gt;其实用range可读性更好：&lt;br /&gt;&lt;blockquote&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;''.join([chr(ord(s[-i-1])+1) for i in range(k)])&lt;/span&gt;&lt;/blockquote&gt;发送自我的Windows Mobile 电话&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-8964543577293041292?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/8964543577293041292/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/sijkijkj-s-k3-for-c-in-s-1-k-1-1-range.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8964543577293041292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8964543577293041292'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/sijkijkj-s-k3-for-c-in-s-1-k-1-1-range.html' title='Python序列索引'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-9130293429752464537</id><published>2011-01-19T15:14:00.003+08:00</published><updated>2011-01-19T20:05:15.267+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleapps'/><title type='text'>Google Apps的域名设置</title><content type='html'>Google Apps Sites可以给站点设置地址映射，这样可以用自己的域名来提供网页访问，如http://www.example.com，而不用https://sites.google.com/a/example.com/&amp;lt;sitename&amp;gt;。&lt;br /&gt;&lt;br /&gt;其他的服务也可以修改网址，我想把Docs的网址改成自己的域名，然后再&lt;a href="http://linux.fatduck.org/2011/01/google-sites.html"&gt;改CNAME&lt;/a&gt;，就不用翻墙，手机可以直接用了。中午试了，可惜发现别的服务改的网址都是重定向到Apps的登录页面，而不是像Sites一样全面的网址映射。这也难怪，因为别的服务都是HTTPS的，如https://docs.google.com/a/example.com，如果域名换成用户自己的，如http://docs.example.com就没法提供SSL加密了，要加密就不能用Google的证书了。&lt;br /&gt;&lt;br /&gt;发送自我的Windows Mobile 电话&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-9130293429752464537?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/9130293429752464537/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/google-apps.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/9130293429752464537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/9130293429752464537'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/google-apps.html' title='Google Apps的域名设置'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-8819953988899517161</id><published>2011-01-17T21:36:00.003+08:00</published><updated>2011-01-17T21:42:50.321+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>FreeBSD发行版的生命周期</title><content type='html'>昨天发现FreeBSD服务器上的6.3已经支持期过了，就要升级，才发现只能升级7.3了（7.1版1月31号就到期了）。原来FreeBSD的&lt;a href="http://www.freebsd.org/security/security.html#sup"&gt;发行版支持期&lt;/a&gt;只有1～2年啊，比我想象得要短，我以为像FreeBSD这样的服务器系统，应该是很稳定的，支持期很长呢。这里有&lt;a href="https://sites.google.com/a/fatduck.org/fatduck/FreeBSDReleasesLifeCycles"&gt;图示&lt;/a&gt;，还有&lt;a href="https://sites.google.com/a/fatduck.org/fatduck/UbuntuReleasesLifeCycles"&gt;Ubuntu发行版的生命周期图&lt;/a&gt;示做对比。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-8819953988899517161?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/8819953988899517161/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/freebsd.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8819953988899517161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8819953988899517161'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/freebsd.html' title='FreeBSD发行版的生命周期'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-7857537208347001143</id><published>2011-01-16T18:27:00.004+08:00</published><updated>2011-01-16T19:00:01.389+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googlesites'/><title type='text'>开始用Google Sites</title><content type='html'>以前用Google Sites写过几个网页，都是试试玩的。最近看到&lt;a href="http://www.android-x86.org/"&gt;Android x86&lt;/a&gt;的网站是在Google Sites上创建的，然后就打算把我的个人主页也转到Google Sites上，以后新加的网页将在Google Sites上建立。如果还像以前一样用Vim写，效率还是比较低下，而且要自己做所有的维护工作。&lt;br /&gt;&lt;br /&gt;第一个网页要在里面嵌入一个Google电子表格，Google Sites都直接支持插入的，所以非常方便。但是Google Sites的&lt;a href="http://sites.google.com/support/bin/answer.py?hl=en&amp;amp;answer=96770"&gt;容量&lt;/a&gt;没有Google Apps Sites的大，于是又把网站从Google&lt;a href="http://jonwestfall.com/2009/10/migrate-a-google-sites-to-a-google-apps-installation/"&gt;迁移&lt;/a&gt;到Google Apps。&lt;br /&gt;&lt;br /&gt;初步了解了下在网页里面可以使用的&lt;a href="http://code.google.com/intl/en/apis/sites/gadgets/site_gadgets.html"&gt;Gadgets&lt;/a&gt;和&lt;a href="http://code.google.com/googleapps/appsscript/guide.html"&gt;App Script&lt;/a&gt;。以前没有接触过这些东西，所以花时间研究了下才知道这些东西&lt;a href="http://blog.varunkumar.me/2010/10/google-app-scripts-for-google-sites.html"&gt;怎么用&lt;/a&gt;。感觉Google提供的服务，不仅用起来很好，而且深层次的二次开发手段也很丰富，真是好东西啊。&lt;br /&gt;&lt;br /&gt;我想在网页下面自动显示网页的最后更新时间，用Gadgets和App Script都试验了一下，还没有搞定。&lt;br /&gt;&lt;br /&gt;如果要用自己的域名来访问Google Sites或者Google Apps Sites，需要把域名的CNAME指到ghs.google.com，可是这个是被中国大陆的防火墙屏蔽的， 需要采取点&lt;a href="http://blog.linggan.com/google-app-ghs-gfw.html"&gt;手段&lt;/a&gt;才能让网站不翻墙也在国内使用。我是用的&lt;a href="http://you8g.com/"&gt;you8g.com&lt;/a&gt;提供的服务。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-7857537208347001143?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/7857537208347001143/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/google-sites.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7857537208347001143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7857537208347001143'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/google-sites.html' title='开始用Google Sites'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6886212410909645162</id><published>2011-01-12T00:15:00.000+08:00</published><updated>2011-01-12T00:15:11.308+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Debian菜单</title><content type='html'>Ubuntu下的Debian菜单里面有时候会有无效的项目，它们在~/.local/share/applications/menu-xdg下面。在这个目录里面rm -rf *看起来没什么伤害，Debian菜单里面的项是用menu包的update-menus命令生成的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6886212410909645162?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6886212410909645162/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/debian.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6886212410909645162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6886212410909645162'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/debian.html' title='Debian菜单'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2324631144706401962</id><published>2011-01-09T23:24:00.002+08:00</published><updated>2011-01-09T23:35:47.428+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu版本生命周期图</title><content type='html'>一直想画一个甘特图一样的Ubuntu版本生命周期图，这样就可以直观地看到当前哪些版本还是官方支持的，以选择使用的版本，或者升级过期的系统。&lt;br /&gt;&lt;br /&gt;每次遇到画图，就不知道选啥工具。这次用&lt;a href="http://ipe7.sourceforge.net/"&gt;Ipe&lt;/a&gt;画了画，要精确到月的话太费劲了，精确到天就更不能想象了。后来决定用甘特图工具画好了，这样可以自动地处理日期，生成生命周期图。其实我想到用&lt;a href="http://en.wikipedia.org/wiki/PSTricks"&gt;PSTricks&lt;/a&gt;肯定可以画得既漂亮又精确，但是这个是Tex的，太花时间了，还是作罢。最后在Google Docs里面找了个甘特图模板画的。&lt;br /&gt;下面是嵌入的甘特图，RSS订阅的可能看不到，要进入文章原始页面查看。&lt;br /&gt;&lt;script src="https://spreadsheets.google.com/gpub?url=http%3A%2F%2F3rb81dv5veldd8tr63u6kprme62gfr91-ss-opensocial.googleusercontent.com%2Fgadgets%2Fifr%3Fup__table_query_url%3Dhttps%253A%252F%252Fspreadsheets.google.com%252Ftq%253Frange%253DA1%25253AG16%2526gid%253D0%2526headers%253D-1%2526key%253D0AjxUFW3loupYdFhSMEtMNVpkT0NtWGJfRWlKVUpNQ0E%2526pub%253D1%26up__table_query_refresh_interval%3D0%26up_nameColumn%3D0%26up_startColumn%3D2%26up_finishColumn%3D3%26up_completeColumn%3D-1%26up_wbsColumn%3D-1%26up_predecessorColumn%3D-1%26up_idColumn%3D-1%26url%3Dhttp%253A%252F%252Fwww.viewpath.net%252FWebsite%252FModules%252FGantt.aspx%26spreadsheets%3Dspreadsheets&amp;amp;height=550&amp;amp;width=1355"&gt;&lt;/script&gt;&lt;br /&gt;&lt;a href="https://spreadsheets.google.com/ccc?key=0AjxUFW3loupYdFhSMEtMNVpkT0NtWGJfRWlKVUpNQ0E&amp;amp;hl=en"&gt;电子表格文件的Google Docs链接&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2324631144706401962?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2324631144706401962/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/ubuntu_09.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2324631144706401962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2324631144706401962'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/ubuntu_09.html' title='Ubuntu版本生命周期图'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1164792381347530107</id><published>2011-01-09T14:41:00.001+08:00</published><updated>2011-01-09T14:44:06.063+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><title type='text'>VirtualBox的鼠标</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_JJwHxugvGbE/TSlXzzNFDBI/AAAAAAAAHDk/zXcL2MQbJdw/s1600/Android+2.2+-+Settings_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;装了Android，发现没有鼠标，后来Google了一下，要把Absolute pointing device去掉：&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_JJwHxugvGbE/TSlXzzNFDBI/AAAAAAAAHDk/zXcL2MQbJdw/s1600/Android+2.2+-+Settings_001.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://2.bp.blogspot.com/_JJwHxugvGbE/TSlXzzNFDBI/AAAAAAAAHDk/zXcL2MQbJdw/s320/Android+2.2+-+Settings_001.png" width="320" /&gt;&lt;/a&gt; &lt;/div&gt;手册里面是这么写的：&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&amp;nbsp;Enable absolute pointing device&lt;/dt&gt;&lt;dd&gt;If enabled, VirtualBox reports to the virtual machine that               a USB tablet device is present and communicates mouse events to               the virtual machine through this device. If disabled, mouse               events are communicated through a traditional PS/2 virtual mouse               device.Using the virtual USB tablet has the advantage that               movements are reported in absolute coordinates (instead of as               relative position changes), which allows VirtualBox to translate               mouse events over the VM window into tablet events without               having to "capture" the mouse in the guest as described in &lt;a href="http://www.virtualbox.org/manual/ch01.html#id455790"&gt;the section called “Capturing and releasing keyboard and       mouse”&lt;/a&gt;. This makes using the VM less               tedious even if Guest Additions are not installed.&lt;sup&gt;[&lt;a href="http://www.virtualbox.org/manual/ch03.html#ftn.id442020" name="id442020"&gt;11&lt;/a&gt;]&lt;/sup&gt;&lt;/dd&gt;&lt;/dl&gt;原来如果是触控板输入，那么这样可以把虚拟机和宿主机的位置统一起来，比较省心，但是如果是普通鼠标，不能勾上这一项。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1164792381347530107?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1164792381347530107/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/virtualbox.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1164792381347530107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1164792381347530107'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/virtualbox.html' title='VirtualBox的鼠标'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JJwHxugvGbE/TSlXzzNFDBI/AAAAAAAAHDk/zXcL2MQbJdw/s72-c/Android+2.2+-+Settings_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-137115355912324968</id><published>2011-01-09T13:11:00.000+08:00</published><updated>2011-01-09T13:11:21.038+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GRUB'/><category scheme='http://www.blogger.com/atom/ns#' term='udev'/><title type='text'>修复GRUB</title><content type='html'>从第一次使用Linux（Red Hat 9.0）时候，就需要学会修复GRUB。因为安装Windows的时候，会把GRUB的引导信息覆盖掉。那时候是用Redhat 9.0的光盘启动，进入修复模式，光盘会找到已经安装的系统。chroot进去后，grub-install /dev/hda就可以了。&lt;br /&gt;&lt;br /&gt;后来用了Debian，Linux用了&lt;a href="http://en.wikipedia.org/wiki/Udev"&gt;udev&lt;/a&gt;，在/dev下的设备名是动态生成的，而不是像以前一样静态的，不管有几块硬盘，/dev/hda1、2什么的一堆都有。&lt;br /&gt;&lt;br /&gt;这样子如果用Live CD启动，Live系统的/dev下面是没有硬盘设备名的。这里需要用mknod手动生成：&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# mknod /dev/sda1 b 8 1&lt;/span&gt;&lt;/blockquote&gt;然后挂载要修复的系统再chroot进去：&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# mount /dev/sda1 /mnt&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# chroot /mnt&lt;/span&gt;&lt;/blockquote&gt;进去后还要再生成/dev/sda：&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# mknod /dev/sda b 8 0&lt;/span&gt;&lt;/blockquote&gt;然后安装grub即可：&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# grub-install /dev/sda&lt;/span&gt;&lt;/blockquote&gt;mknod要创建的设备名的大号和小号在/usr/src/linux/Documentation/devices.txt。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-137115355912324968?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/137115355912324968/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/grub.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/137115355912324968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/137115355912324968'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/grub.html' title='修复GRUB'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4770751457659335758</id><published>2011-01-09T00:24:00.001+08:00</published><updated>2011-01-09T00:26:00.762+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Android初体验</title><content type='html'>今天在VirtualBox里面装了Android玩，不用买手机就可以体验Android了。Android-x86这个项目把Android移植到了x86平台，在&lt;a href="http://www.android-x86.org/download"&gt;这里下载&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;一开始我用的froyo-vm-20100812.iso（2.2），用起来图形很卡，而且装到硬盘上之后进不去。后来用了一个现成的1.6版的&lt;a href="http://virtualboximages.com/Android+OS+2.6.29+x86+Virtual+Appliance"&gt;虚拟器件&lt;/a&gt;，进去不卡，但是网络不通。再用froyo-eeepc-20110101.iso，不卡了，网络也正常。还用了老一点但是稳定版的android-x86-1.6-r2.iso，也没有问题。&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_JJwHxugvGbE/TSiPhY3PMoI/AAAAAAAAHDU/R6K8ByzyS50/s1600/Android+2.2+EeePC+%255BRunning%255D+-+VirtualBox+OSE_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://3.bp.blogspot.com/_JJwHxugvGbE/TSiPhY3PMoI/AAAAAAAAHDU/R6K8ByzyS50/s320/Android+2.2+EeePC+%255BRunning%255D+-+VirtualBox+OSE_001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_JJwHxugvGbE/TSiPilZ6WvI/AAAAAAAAHDY/myUy5cjklik/s1600/Android+2.2+EeePC+%255BRunning%255D+-+VirtualBox+OSE_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://2.bp.blogspot.com/_JJwHxugvGbE/TSiPilZ6WvI/AAAAAAAAHDY/myUy5cjklik/s320/Android+2.2+EeePC+%255BRunning%255D+-+VirtualBox+OSE_002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_JJwHxugvGbE/TSiPjWUCMKI/AAAAAAAAHDc/O-7GKiAvL2M/s1600/Android+2.2+EeePC+%255BRunning%255D+-+VirtualBox+OSE_004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://1.bp.blogspot.com/_JJwHxugvGbE/TSiPjWUCMKI/AAAAAAAAHDc/O-7GKiAvL2M/s320/Android+2.2+EeePC+%255BRunning%255D+-+VirtualBox+OSE_004.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_JJwHxugvGbE/TSiPkvhe1LI/AAAAAAAAHDg/YxBd0WlB0Vs/s1600/Android+2.2+EeePC+%255BRunning%255D+-+VirtualBox+OSE_005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://4.bp.blogspot.com/_JJwHxugvGbE/TSiPkvhe1LI/AAAAAAAAHDg/YxBd0WlB0Vs/s320/Android+2.2+EeePC+%255BRunning%255D+-+VirtualBox+OSE_005.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;台式机上没有WIFI网络，定位功能没法用，就试着在我的Dell Inspiron 14V上装1.6和2.2，Linux能进去，但是图形界面都出不来。毕竟不是拿个笔记本就能兼容的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4770751457659335758?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4770751457659335758/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/android.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4770751457659335758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4770751457659335758'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/android.html' title='Android初体验'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JJwHxugvGbE/TSiPhY3PMoI/AAAAAAAAHDU/R6K8ByzyS50/s72-c/Android+2.2+EeePC+%255BRunning%255D+-+VirtualBox+OSE_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-3247143690423616222</id><published>2011-01-08T14:14:00.025+08:00</published><updated>2011-01-08T14:39:17.818+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><title type='text'>VirtualBox的硬件3D加速</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;今天要在VirtualBox的Windows客户机下试验一个Vega Prime的例程，打开的时候vbox弹出如下的对话框：&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_JJwHxugvGbE/TSf9Orc_FoI/AAAAAAAAHDE/kYAtsXTxhsY/s1600/screenshot1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_JJwHxugvGbE/TSf9Orc_FoI/AAAAAAAAHDE/kYAtsXTxhsY/s1600/screenshot1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;是说要在客户机里面借用宿主机的硬件3D加速，Guest Additions的版本要和vbox的版本一致。我一看Windows状态栏Guest Additions的版本才是2.1.4，而vbox的版本是3.2.8。这个Guest Additions是宿主机里面的/usr/share/virtualbox/VBoxGuestAdditions.iso文件。Ubuntu不断升级vbox，这个ISO文件也更新了，但是客户机里面安装的Guest Additions不会自动更新，所以里面还是很老的版本。需要再装一次。&lt;br /&gt;&lt;br /&gt;装完后Vega Prime的例程可以运行了。但是植物大战僵尸里面的硬件3D加速还是不能启用：&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_JJwHxugvGbE/TSgAJVyoapI/AAAAAAAAHDM/PzMiEC91NHU/s1600/Plants+vs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" src="http://4.bp.blogspot.com/_JJwHxugvGbE/TSgAJVyoapI/AAAAAAAAHDM/PzMiEC91NHU/s320/Plants+vs.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;查看了vbox的手册，有&lt;a href="http://www.virtualbox.org/manual/ch14.html"&gt;这样一段&lt;/a&gt;：&lt;br /&gt;&lt;blockquote&gt;For &lt;span class="bold"&gt;&lt;b&gt;Direct3D support in Windows       guests&lt;/b&gt;&lt;/span&gt; to work, the Guest Additions must be installed in       Windows "safe mode". Press F8 when the Windows guest is booting and       select "Safe mode", then install the Guest Additions. Otherwise Windows'       file protection mechanism will interfere with the replacement DLLs       installed by VirtualBox and keep restoring the original Windows system       DLLs.&lt;/blockquote&gt;原来要在安全模式下装Guest Additions：&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_JJwHxugvGbE/TSf9PetU8AI/AAAAAAAAHDI/MYQ6ov_2MJ8/s1600/screenshot3.png" /&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;这样装过之后，植物大战僵尸里面还是不能启用3D加速。就装了一个Supertux 0.1.3，帧率在90以上。但是如果选择OpenGL模式就会崩溃掉：&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_JJwHxugvGbE/TSgCR844NAI/AAAAAAAAHDQ/2_7w-joXfWs/s1600/SuperTux+0.1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/_JJwHxugvGbE/TSgCR844NAI/AAAAAAAAHDQ/2_7w-joXfWs/s320/SuperTux+0.1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;这至少说明Direct 3D功能在Supertux里面用上了，不然FPS能达到90多吗。&lt;br /&gt;&lt;br /&gt;看了下植物大战僵尸的&lt;a href="http://www.popcap.com/faq/pvz/1033/pc/readme.html#SR"&gt;说明书&lt;/a&gt;，系统要求是DirectX 8或者以上的版本，用的不是OpenGL。不能3D加速就不能吧，vbox的&lt;a href="http://www.virtualbox.org/manual/ch04.html#guestadd-3d"&gt;手册&lt;/a&gt;里面说对Windows客户机的3D加速还是试验性的，所以就别指望每个程序都能用了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-3247143690423616222?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/3247143690423616222/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/virtualbox3d.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3247143690423616222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3247143690423616222'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/virtualbox3d.html' title='VirtualBox的硬件3D加速'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JJwHxugvGbE/TSf9Orc_FoI/AAAAAAAAHDE/kYAtsXTxhsY/s72-c/screenshot1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-3276636899915410803</id><published>2011-01-02T16:23:00.001+08:00</published><updated>2011-01-06T12:56:48.557+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>优盘上的Ubuntu</title><content type='html'>用Ubuntu自带的&lt;a href="http://en.wikipedia.org/wiki/Ubuntu_Live_USB_creator"&gt;usb-creator-gtk&lt;/a&gt;可以非常方便地在优盘上创建一个系统，用作安装盘或者应急系统使用。用这个优盘从别的电脑里面拷了点东西，然后在自己的Ubuntu桌面上打开这个优盘，系统的主要内容是在casper/filesystem.squashfs这样一个600多MB的大文件里面（Live CD里面也是一样的内容），这是一个&lt;a href="http://squashfs.sourceforge.net/"&gt;squashfs&lt;/a&gt;格式的文件。把文件挂载上去，得到一个Linux系统的根目录，但是home里面是空的，没法找到我拷贝进去的文件。必须从这个优盘启动系统，才能看到拷进去的文件。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-3276636899915410803?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/3276636899915410803/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2011/01/ubuntu.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3276636899915410803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3276636899915410803'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2011/01/ubuntu.html' title='优盘上的Ubuntu'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2060162820257564607</id><published>2010-12-31T20:37:00.005+08:00</published><updated>2011-01-02T13:54:20.640+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='VPS'/><title type='text'>折腾VPS</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_JJwHxugvGbE/TR3RlCw9D0I/AAAAAAAAHCw/-JgwyayBIzA/s1600/manage.systeminplace.net+screen+capture+2010-12-31-20-16-11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_JJwHxugvGbE/TR3RlCw9D0I/AAAAAAAAHCw/-JgwyayBIzA/s320/manage.systeminplace.net+screen+capture+2010-12-31-20-16-11.png" width="238" /&gt;&lt;/a&gt;&lt;/div&gt;1）VPN &lt;br /&gt;在RapidXen买的VPS，PPTP和OpenVPN的转发都有问题。就是在这个&lt;a href="http://poptop.sourceforge.net/dox/diagnose-forwarding.phtml"&gt;诊断方法&lt;/a&gt;中的第6步挂了。从客户机ping某个因特网主机，然后一切都正常，但是从该主机应答的包回不来。具体就是开VPN的情况下，ping g.cn，在VPN服务器端抓包是如下结果：&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# tcpdump -n -i tun0 icmp&lt;br /&gt;tcpdump: verbose output suppressed, use -v or -vv for full protocol decode&lt;br /&gt;listening on tun0, link-type RAW (Raw IP), capture size 96 bytes&lt;br /&gt;19:56:47.576331 IP 10.8.0.10 &amp;gt; 203.208.39.99: ICMP echo request, id 5592, seq 18, length 64&lt;br /&gt;19:56:48.576924 IP 10.8.0.10 &amp;gt; 203.208.39.99: ICMP echo request, id 5592, seq 19, length 64&lt;br /&gt;19:56:49.576452 IP 10.8.0.10 &amp;gt; 203.208.39.99: ICMP echo request, id 5592, seq 20, length 64&lt;br /&gt;19:56:50.575835 IP 10.8.0.10 &amp;gt; 203.208.39.99: ICMP echo request, id 5592, seq 21, length 64&lt;/blockquote&gt;可以看到，只有echo request却没有从g.cn的echo reply。&lt;br /&gt;所有的数据包都回不来，导致VPN没法用来翻墙了。&lt;br /&gt;&lt;br /&gt;2）VPS&lt;br /&gt;在VPS的客服里面提问，他们说可能是内核有问题，让我用PV-GRUB后使用发行版的内核。用PV-GRUB可以在Xen虚拟机中使用发行版的内核，而不是Xen提供的内核。&lt;br /&gt;&lt;br /&gt;话说RapidXen的支持实在是太烂了，管理界面改成PV-GRUB，从操作界面里面的Send shutdown signal再Start the VPS不行，要用Immediately stop VPS才能在提供的内核和PV-GRUB之间成功切换。整个Web管理应用功能非常之简陋，而对VPS的配置也没有任何文档积累，到服务商的支持IRC里面问，也半天没人说话。&lt;br /&gt;&lt;br /&gt;最后是根据&lt;a href="http://library.linode.com/linode-platform/custom-instances/pv-grub-howto"&gt;Linode的文档&lt;/a&gt;，用上了Ubuntu 10.04 LTS(Lucid Lynx)自带的内核。但VPN的问题仍然没有消失。没办法啊，只好用SSH了，反正SSH也比较方便。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;更新：2011年1月2日&lt;/b&gt;。客服回复说在library里面有PV-GRUB的设置文档，让我才知道他们也有知识库，不过里面只有3篇文章。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2060162820257564607?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2060162820257564607/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/12/vps.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2060162820257564607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2060162820257564607'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/12/vps.html' title='折腾VPS'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JJwHxugvGbE/TR3RlCw9D0I/AAAAAAAAHCw/-JgwyayBIzA/s72-c/manage.systeminplace.net+screen+capture+2010-12-31-20-16-11.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6641448873897376234</id><published>2010-12-31T17:15:00.000+08:00</published><updated>2010-12-31T17:15:54.635+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ibus'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>中文输入法</title><content type='html'>为了进入GNOME自动启动中文输入法，我都是在～/.gnomerc里面添加类似如下的内容：&lt;br /&gt;&lt;blockquote&gt;export GTK_IM_MODULE=ibus&lt;br /&gt;export XMODIFIERS=@im=ibus&lt;br /&gt;export QT_IM_MODULE=ibus&lt;br /&gt;export QT4_IM_MODULE=ibus&lt;br /&gt;ibus-daemon &amp;amp;&lt;/blockquote&gt;如果是fcitx或者SCIM，就相应做修改。&lt;br /&gt;今天发现去掉这些内容，ibus也是能启动的，只要在主菜单的System-&amp;gt;Administration-&amp;gt;Language Support里面把Keyboard input method system设置为ibus即可。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6641448873897376234?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6641448873897376234/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/12/blog-post_31.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6641448873897376234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6641448873897376234'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/12/blog-post_31.html' title='中文输入法'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6897007560964308168</id><published>2010-12-30T21:31:00.002+08:00</published><updated>2011-02-28T17:00:01.342+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Bash的输出重定向</title><content type='html'>直接在Bash中执行&lt;br /&gt;&lt;blockquote&gt;ssh -v -N -f -D 7070 user@1.2.3.4 &amp;amp;&amp;gt;out.ssh&lt;/blockquote&gt;那么stdout和stderr都被定向到了out.ssh文件中。&lt;br /&gt;但是如果分像下面这样分两步（在脚本中会这么用）：&lt;br /&gt;&lt;blockquote&gt;SSH_COMMAND="ssh -v -N -f -D 7070 user@1.2.3.4 &amp;amp;&amp;gt;out.ssh"&lt;br /&gt;$SSH_COMMAND&lt;/blockquote&gt;那么就看不到out.ssh，似乎&amp;amp;&amp;gt;out.ssh被理解为在1.2.3.4的主机上重定向。&lt;br /&gt;必须这么改：&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SSH_COMMAND="ssh -v -N -f -D 7070 user@1.2.3.4"&lt;br /&gt;$SSH_COMMAND &amp;amp;&amp;gt;out.ssh&lt;/blockquote&gt;才能得到和交互执行一样的结果，即定向到本地文件。是什么原理呢？&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update：2/28/2011&lt;/b&gt; 用eval "$SSH_COMMAND"是可以的。或者放到一个函数里面再执行。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6897007560964308168?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6897007560964308168/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/12/bash.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6897007560964308168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6897007560964308168'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/12/bash.html' title='Bash的输出重定向'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-7471306049366189503</id><published>2010-12-26T22:35:00.002+08:00</published><updated>2010-12-26T22:46:57.282+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emerald'/><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><category scheme='http://www.blogger.com/atom/ns#' term='Compiz'/><title type='text'>GNOME没有窗口边框的问题</title><content type='html'>这个Bug有好多年了吧。就是用了Compiz，还用Emerald窗口边框的话，有时候进到GNOME里面没有窗口边框。要停用、再启用桌面特效才会出来。网上搜索了下，有的方法是把Emerald删除掉。我现在的最简单的解决方法（有点dirty），就是在GNOME的启动程序里面，加上一行命令：&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;emerald --replace &amp;amp;&lt;/blockquote&gt;这样在进入GNOME时，再强制执行一次Emerald。这么做后，目前还没有出现过窗口边框消失的问题。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-7471306049366189503?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/7471306049366189503/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/12/gnome_26.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7471306049366189503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7471306049366189503'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/12/gnome_26.html' title='GNOME没有窗口边框的问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-3198730203725584423</id><published>2010-12-26T11:53:00.002+08:00</published><updated>2010-12-26T11:54:29.871+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><title type='text'>SSH Tunnel不能自动启动，2</title><content type='html'>上次研究了SSH Tunnel不能自动启动的&lt;a href="http://linux.fatduck.org/2010/11/ssh-tunnel.html"&gt;问题&lt;/a&gt;，没想到用了autossh后还是有问题，进入桌面后没有建立起来。于是用&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ssh -v -N -D 7070 user@1.2.3.4 &amp;amp;&amp;gt;out.ssh&lt;/blockquote&gt;的命令来观察。ssh的-v参数打开详细输出，&amp;amp;&amp;gt;out.ssh把stdout和stderr都重定向到out.ssh文件。&lt;br /&gt;&lt;br /&gt;观察发现out.ssh的如下内容：&lt;br /&gt;&lt;blockquote&gt;debug1: Connecting to 1.2.3.4 [1.2.3.4] port 22.&lt;br /&gt;debug1: connect to address 1.2.3.4 port 22: Network is unreachable&lt;br /&gt;ssh: connect to host 1.2.3.4 port 22: Network is unreachable&lt;/blockquote&gt;&lt;br /&gt;如果在启动ssh命令前，加上sleep 5再试验，就发现网络可以正常连接。本文通过观察ssh的输出，再次验证了&lt;a href="http://linux.fatduck.org/2010/11/ssh-tunnel.html"&gt;原文&lt;/a&gt;中的假设是正确的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-3198730203725584423?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/3198730203725584423/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/12/ssh-tunnel2.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3198730203725584423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3198730203725584423'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/12/ssh-tunnel2.html' title='SSH Tunnel不能自动启动，2'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-8315606532418439124</id><published>2010-12-22T12:28:00.003+08:00</published><updated>2010-12-26T22:39:45.144+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xmarks'/><category scheme='http://www.blogger.com/atom/ns#' term='Chromium'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>同步Chromium和Firefox的书签</title><content type='html'>一般情况我是用一个浏览器的，只有出了问题才换成另一个。今年下半年，从用了多年的Firefox转到了Chromium， 为的就是Chromium快。但是最近Chromium很不靠谱，用久了会很慢，把电脑也拖很慢。而且Proxy  Switchy!插件很不靠谱，明明不用翻墙的网站比如豆瓣电台，也要用代理，导致听歌都不爽。就这样换回Firefox，书签的同步是要考虑的问题。&lt;br /&gt;&lt;br /&gt;我在Chromium里面设置了和Google同步，在Firefox里面和Chromium里面都装了Xmarks来同步书签。这样子Chromium里面有两种同步机制，如果两种同步之间本身不能同步，就会搞乱书签。在Firefox里面又会出问题。&lt;br /&gt;&lt;br /&gt;目前总结出的如下方法，可以正确地同步。&lt;br /&gt;&lt;br /&gt;Chromium仍然和Google同步，但是两个浏览器的Xmarks都禁用。需要从Chromium换回Firefox的时候，把Chromium里面的Xmarks启用，Xmarks同步好后再禁用，然后关闭Chromium。打开Firefox，启用Xmarks，再同步，就可以把Chromium里面的书签完美同步到Firefox了。如果再要从Firefox换回去，可类似的过程进行。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-8315606532418439124?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/8315606532418439124/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/12/chromiumfirefox.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8315606532418439124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8315606532418439124'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/12/chromiumfirefox.html' title='同步Chromium和Firefox的书签'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6171006560395078185</id><published>2010-12-11T17:25:00.000+08:00</published><updated>2010-12-11T17:25:59.886+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><category scheme='http://www.blogger.com/atom/ns#' term='nautilus'/><title type='text'>GNOME小技巧——文件命名</title><content type='html'>刚发现的。按一下F2给文件命名，只选中后缀前的部分；如果再按一次F2，则选中整个文件名。很贴心啊。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6171006560395078185?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6171006560395078185/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/12/gnome.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6171006560395078185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6171006560395078185'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/12/gnome.html' title='GNOME小技巧——文件命名'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-5785114961510372402</id><published>2010-12-07T20:19:00.002+08:00</published><updated>2010-12-07T23:21:53.046+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><title type='text'>Vim中的^M</title><content type='html'>今天在Ubuntu下编译安装Xen，中途下载了一个给git设置代理的&lt;a href="https://gist.github.com/raw/49288/189f181512fa92d4ef1973e284755c04b5bcea1d/gitproxy-socat"&gt;脚本&lt;/a&gt;，执行时出现下面的错误：&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;tux@Neverland:~/bin$ ./gitproxy &lt;br /&gt;bash: ./gitproxy: /bin/sh^M: bad interpreter: No such file or directory&lt;/blockquote&gt;看起来是行末有^M，是DOS格式的文件。但是Vim不显示行末的^M，让我没注意到是DOS格式的。如果用vim -u NONE来打开文件（不读取任何vimrc文件），就会显示^M。我想一定是我vimrc里面的某行设置，导致vim不显示^M的。我到Freenode的#vim频道咨询，得到了答案：&lt;br /&gt;&lt;blockquote&gt;&amp;lt;Fossilet&amp;gt; I want to find which init line causes ffs to be set.&lt;br /&gt;&amp;lt;mgedmin&amp;gt; -u NONE tells vim not to look for vimrc files&lt;br /&gt;&amp;lt;mgedmin&amp;gt; which line? no line&lt;br /&gt;&amp;lt;mgedmin&amp;gt; I repeat myself: the mere presence of a vimrc turns off 'compatible' which in turn sets 'fileformats' to "unix,dos"&lt;/blockquote&gt;就是说只要有vimrc存在，就会把兼容模式关闭。这种情况下，在Linux平台fileformats是unix和dos，vim会自动检测unix和dos格式的文件。&lt;br /&gt;&lt;br /&gt;我是希望Vim能够在文件中显示^M的，这样就很明显，不用运行了脚本才知道了。可以用set fileformats="unix"来关闭对DOS格式文件的自动检测，这样^M就原样显示了。不过没有必要的，如果打开的是DOS格式文件，Vim窗口最下面的状态栏会显示[DOS]的 。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-5785114961510372402?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/5785114961510372402/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/12/vimm.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5785114961510372402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5785114961510372402'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/12/vimm.html' title='Vim中的^M'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1364938885852999726</id><published>2010-11-26T13:51:00.001+08:00</published><updated>2011-05-28T19:21:32.286+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NAT'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><category scheme='http://www.blogger.com/atom/ns#' term='iptables'/><title type='text'>VirtualBox的NAT，2</title><content type='html'>实现了VirtualBox虚拟机通过宿主机的NAT。具体&lt;a href="http://www.tolaris.com/2009/03/05/using-host-networking-and-nat-with-virtualbox/"&gt;方法见这里&lt;/a&gt;。文章中的方法已经自动设置了SNAT，这样在虚拟机里面就可以连接互联网了。&lt;br /&gt;&lt;br /&gt;如果要让互联网的主机连接到虚拟机的服务，还需要配置DNAT。比如要让互联网访问虚拟机上的HTTP服务，那么只需在宿主机添加如下iptables规则（前提是在宿主机和虚拟机上都没有别的规则阻碍这一条的生效）：&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;iptables -t nat -A PREROUTING -p tcp -d 192.168.1.2 --sport 1024:65535 --dport 80 -j DNAT --to 172.16.0.209&lt;/span&gt;&lt;/blockquote&gt;192.168.1.2是宿主机的IP地址（这个地址通过家用路由器连接互联网），172.16.0.209是虚拟机的IP地址。&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;实际演示案例中，宿主机是Ubuntu 10.10，开了Apache。虚拟机是Fedora 11，开了nginx。注意Fedora默认的iptables规则拒绝了大部分连接，需要清除掉。在配置上述DNAT规则前，我们在浏览器里面连接到的是宿主机Ubuntu下的Apache。&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_JJwHxugvGbE/TO9KDJAvPUI/AAAAAAAAHBY/0ikKiiUwcVc/s1600/125.33.200.186+-+Chromium_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="135" src="http://2.bp.blogspot.com/_JJwHxugvGbE/TO9KDJAvPUI/AAAAAAAAHBY/0ikKiiUwcVc/s320/125.33.200.186+-+Chromium_001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在配置了上述DNAT规则之后，我们连接上的是虚拟机Fedora下的nginx。&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_JJwHxugvGbE/TO9KOmcYURI/AAAAAAAAHBc/aPjw0wceqSo/s1600/Test+Page+for+the+Nginx+HTTP+Server+on+Fedora+-+Chromium_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="135" src="http://1.bp.blogspot.com/_JJwHxugvGbE/TO9KOmcYURI/AAAAAAAAHBc/aPjw0wceqSo/s320/Test+Page+for+the+Nginx+HTTP+Server+on+Fedora+-+Chromium_002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;上面的IP地址125.33.200.186是我们宿主机的因特网IP地址，当然也可以用192.168.1.2测试，这样做是为了演示从外面的机器上用因特网地址访问也是可以看到DNAT后的效果的。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1364938885852999726?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1364938885852999726/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/virtualboxnat2.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1364938885852999726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1364938885852999726'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/virtualboxnat2.html' title='VirtualBox的NAT，2'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JJwHxugvGbE/TO9KDJAvPUI/AAAAAAAAHBY/0ikKiiUwcVc/s72-c/125.33.200.186+-+Chromium_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-8869880628785456695</id><published>2010-11-24T22:44:00.002+08:00</published><updated>2010-11-26T13:34:17.912+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NAT'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><title type='text'>VirtualBox的NAT，1</title><content type='html'>VirtualBox (3.2.8)的&lt;a href="http://www.virtualbox.org/manual/ch06.html#network_nat"&gt;NAT网络模式&lt;/a&gt;在手册里面是这么描述的：&lt;br /&gt;&lt;blockquote&gt;A virtual machine with NAT enabled acts much like a real computer that connects to the Internet through a router. The "router", in this case, is the VirtualBox networking engine, which maps traffic from and to the virtual machine transparently.&lt;/blockquote&gt;这个神秘的NAT engine，是在宿主系统看不到的。而我更希望虚拟机是通过宿主系统的网卡来实现NAT的，这样可以用来模拟测试真实的NAT环境。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-8869880628785456695?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/8869880628785456695/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/virtualboxnat.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8869880628785456695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8869880628785456695'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/virtualboxnat.html' title='VirtualBox的NAT，1'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2405016659888300740</id><published>2010-11-24T19:54:00.000+08:00</published><updated>2010-11-24T19:54:34.039+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><category scheme='http://www.blogger.com/atom/ns#' term='NetworkManager'/><title type='text'>SSH Tunnel不能自动启动</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_JJwHxugvGbE/TOz84K-pjvI/AAAAAAAAHBI/Dm6etgs2Gn0/s1600/Startup+Applications+Preferences_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://3.bp.blogspot.com/_JJwHxugvGbE/TOz84K-pjvI/AAAAAAAAHBI/Dm6etgs2Gn0/s320/Startup+Applications+Preferences_001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;我在GNOME的Startup&amp;nbsp;Application里面添加了一个启动SSH隧道的脚本，内容只有一行建立隧道的SSH命令。以前都可以自动启动，最近两台电脑上都不能自动启动了，进去桌面后没有隧道，要手动执行一遍才可以。&lt;br /&gt;&lt;br /&gt;我在启动脚本里面添加了一行zenity --calendar，这样可以弹出一个日历对话框。注销后再进入桌面，日历能出来，说明脚本被执行了，但是隧道没有建立。试了试在SSH命令前面加一行sleep 5，让等5秒再执行脚本。注销再进入，脚本就可以自动启动了。&lt;br /&gt;&lt;br /&gt;猜测原因是这样的。脚本立刻启动的话，NetworkMananger还没有把网络设置好，导致隧道无法成功建立。而等上几秒再建立隧道，此时网络已经连好（由路由器分配静态IP地址），隧道也可以建立了。NetworkManager确实是GNOME的启动脚本，也在Startup Application里面。如果注销了桌面，网络也就断了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2405016659888300740?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2405016659888300740/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/ssh-tunnel.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2405016659888300740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2405016659888300740'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/ssh-tunnel.html' title='SSH Tunnel不能自动启动'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JJwHxugvGbE/TOz84K-pjvI/AAAAAAAAHBI/Dm6etgs2Gn0/s72-c/Startup+Applications+Preferences_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6418448274874854938</id><published>2010-11-24T01:10:00.000+08:00</published><updated>2010-11-24T01:10:15.935+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rsync'/><title type='text'>rsync同步</title><content type='html'>用rsync从笔记本往台式机同步，发现原来从台式机同步到笔记本的某些文件竟然和台式机的源文件不同，大小小于源文件。难道是之前同步过程中被人为中断导致的吗？有这么简单吗？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6418448274874854938?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6418448274874854938/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/rsync.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6418448274874854938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6418448274874854938'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/rsync.html' title='rsync同步'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6116054226682501724</id><published>2010-11-13T20:12:00.002+08:00</published><updated>2011-04-12T13:39:16.971+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><title type='text'>内存大小</title><content type='html'>VPS上查看内存大小：&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;$ free -b&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;total used free shared buffers cached&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;Mem: 110288896 105762816 4526080 0 4096 63508480&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;-/+ buffers/cache: 42250240 68038656&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;Swap: 268427264 1064960 267362304&lt;/span&gt;&lt;/blockquote&gt;我一算内存大小没有他们宣称的128MB啊，128MB应该是134217728字节。&lt;br /&gt;&lt;div&gt;&lt;br /&gt;然后客服回答说：&lt;br /&gt;&lt;blockquote&gt;Some memory is reserved for the kernel. In previous kernel versions, reserved memory was counted as part of the kernel free -m output, now it is not. You can verify that you have the full 128MB by reading dmesg.&lt;/blockquote&gt;后来在IRC问了问，对比了一下他们贴的结果，发现dmesg里面的这行：&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[ &amp;nbsp; &amp;nbsp;0.000000] Memory: 107040k/131072k available (5434k kernel code, 384k absent, 23488k reserved, 5022k data, 448k init)&lt;/blockquote&gt;里面的131072k就是所有的物理内存大小，正好是128MB，因为131072/1024=128。看来客服没撒谎。&lt;br /&gt;&lt;br /&gt;这次也发现我台式机所谓的2G内存实际是有水分的：&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[ &amp;nbsp; &amp;nbsp;0.000000] Memory: 1781996k/1833856k available (5708k kernel code, 452k absent, 51408k reserved, 5382k data, 908k init)&lt;/blockquote&gt;&lt;div&gt;1833856/1024=1790.875。只有1790MB，这和BIOS中看到的数字是一样的。这个数字其实是扣除了用于显存的内存大小256MB。&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6116054226682501724?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6116054226682501724/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/blog-post_13.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6116054226682501724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6116054226682501724'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/blog-post_13.html' title='内存大小'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4649210065998565777</id><published>2010-11-13T19:41:00.000+08:00</published><updated>2010-11-13T19:41:36.843+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>dmidecode</title><content type='html'>dmidecode这个命令可以显示硬件的一些信息，这个命令就在dmidecode这个包里面。DMI是Desktop Management Interface的缩写。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4649210065998565777?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4649210065998565777/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/dmidecode.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4649210065998565777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4649210065998565777'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/dmidecode.html' title='dmidecode'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4315117164750310267</id><published>2010-11-07T11:11:00.001+08:00</published><updated>2010-11-08T19:23:54.802+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>APT</title><content type='html'>在服务器上安装update-notifier-common，可以在console下登录后显示可用更新，因为该包安装了/etc/update-motd.d/90-updates-available，可以动态更新MOTD（Message&lt;br&gt;Of The Day）。但是后台的更新并不是由该包实现，而是由apt包实现，该包安装了/etc/cron.daily/apt，用于检查更新。此外，unattended-upgrades是为了实现自动、无人干预下的安全更新安装。&lt;p&gt;貌似现在apt相关的软件挺多，关联也比较复杂，但是只要软件提供了清晰的文档，耐心阅读文档，就可以搞清楚都是干什么的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4315117164750310267?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4315117164750310267/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/apt.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4315117164750310267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4315117164750310267'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/apt.html' title='APT'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1763763327433050376</id><published>2010-11-05T15:47:00.001+08:00</published><updated>2010-11-08T19:24:04.483+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='X'/><title type='text'>显卡驱动的问题</title><content type='html'>笔记本的桌面特效都可以，但是glchess、chromium-bsu、supertux2和stellerium都启动不起来。这台电脑是内置的Intel的显示芯片，但是装系统的时候，是从台式机上的dpkg&lt;br&gt;--get-selections输出中装的软件，把ATI的显卡驱动fglrx也给装上了。把这个驱动卸载掉就好了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1763763327433050376?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1763763327433050376/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/blog-post_05.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1763763327433050376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1763763327433050376'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/blog-post_05.html' title='显卡驱动的问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4994237652162890150</id><published>2010-11-05T14:20:00.002+08:00</published><updated>2011-04-12T23:42:29.155+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RFC'/><title type='text'>file:///</title><content type='html'>用URL表示本地文件的时候，我们用file协议，例如file:///usr/share/doc/。中午躺着的时候，我想到这个表示中用了3个斜杠，其实第3个斜杠不属于URL格式要求中的斜杠，而属于资源路径的一部分，即文件系统的根目录。&lt;br /&gt;&lt;br /&gt;刚看到/etc/init.d/README里面，用了file://localhost/usr/share/doc/debian-policy/这样的URL来指向本地文件。试了一下可以，而且把localhost替换成主机名、127.0.0.1也可以。我觉得这样的表述和我们平常用的URL在格式上更统一了，应该提倡。&lt;br /&gt;&lt;br /&gt;当我再试，把localhost替换成内网IP、IPv6地址的时候，Firefox都像前面一样，跳转到了对应的file:///地址。最后发现，不管你用什么字符串替换localhost，Firefox都跳转。这表明Firefox忽略了第2个斜杠和第3个斜杠之间的东西。Chromium也是一样，只是第2个斜杠和第3个斜杠之间的字符串不消失。w3m就不行了，貌似只有file://localhost/好使。&lt;br /&gt;&lt;br /&gt;关于URL的用法，应该有RFC规定标准的，可是现在手头没有RFC可看。&lt;br /&gt;&lt;br /&gt;PS:最近看了看RFC 2616，是介绍HTTP协议的。尽管只看了一部分，但也算是我真正看过的第一个RFC。发现RFC并没有我想象得那么晦涩，作为最权威的文本，应该多看看好。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4994237652162890150?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4994237652162890150/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/file.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4994237652162890150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4994237652162890150'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/file.html' title='file:///'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6790137492608907908</id><published>2010-11-04T19:21:00.002+08:00</published><updated>2010-11-08T19:25:04.514+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nautilus'/><title type='text'>Nautilus预览图片的BUG</title><content type='html'>以前就出现过。在一个放图片的目录下，有的图片没有预览出来，Nautilus一直试图预览不停，导致系统资源被耗光。用top查看，发现CPU主要使用在wa（I/O&amp;nbsp;waiting），Nautilus占用了很多内存。&lt;br /&gt;&lt;br /&gt;为了搞清是哪个图片的问题，我把没有预览出来的图片，用别的程序挪出目录，直到排查出问题图片，原来是一张6M大的GIF图片，是显示全球夜晚灯光对比的一张著名的图片。这张图片预览不出来，就一直卡在这里，导致其它的图片也预览不出来。最后把这张图片删除，再把挪出去的图片挪回来就好了。&lt;br /&gt;&lt;br /&gt;虽然是一个简单的、时有发生的问题，但有时候就直接强行关闭完事，而没有寻找线索去解决。当试着去解决的时候，总是可以学到一些东西的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6790137492608907908?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6790137492608907908/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/nautilusbug.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6790137492608907908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6790137492608907908'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/nautilusbug.html' title='Nautilus预览图片的BUG'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1149184234300785724</id><published>2010-11-04T19:02:00.001+08:00</published><updated>2010-11-08T19:25:28.753+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ntp'/><title type='text'>NTP服务自动启动的问题</title><content type='html'>NTP服务在桌面Linux上是不用去操心的。但是我用手机网络的时候，不想用NTP。可是在停止了NTP服务后，只要一联网就发现NTP又启动了。结果在/usr/share/doc/ntp/README.Debian.gz里面找到了答案：&lt;p&gt;    If DHCP is used to configure the host, and the DHCP server sends&lt;br&gt;    information about NTP servers, then this information will be used&lt;br&gt;    automatically.  This is done by making a copy of /etc/ntp.conf at&lt;br&gt;    /var/lib/ntp/ntp.conf.dhcp, replacing the server entries with the&lt;br&gt;    information provided by the DHCP server, and restarting the NTP&lt;br&gt;    server.&lt;p&gt;    In order for this to work, the &amp;quot;ntp-servers&amp;quot; option must be mentioned&lt;br&gt;    in the &amp;quot;request&amp;quot; statement in /etc/dhcp3/dhclient.conf.  This is not&lt;br&gt;    the case in a default installation.  A complete configuration might&lt;br&gt;    look like this, for example:&lt;p&gt;        request subnet-mask, broadcast-address, time-offset, routers,&lt;br&gt;                domain-name, domain-name-servers, host-name,&lt;br&gt;                netbios-name-servers, netbios-scope, interface-mtu,&lt;br&gt;                ntp-servers;&lt;p&gt;    If you don&amp;#39;t like using the NTP servers sent by the DHCP server, this&lt;br&gt;    is also the right place to turn off this behavior.&lt;p&gt;这就是说DHCP联网的话，可能会让NTP服务器重启。不需要的话，在/etc/dhcp3/dhclient.conf里面关掉即可。&lt;p&gt;PS:最近发现软件包在/usr/share/doc下对应目录里面的README.Debian.gz文件挺有用的。因为Debian经常会对原版的软件进行修改，特别是配置方式的改动。如果养成查看这个文件的习惯，可以帮助尽快地排除问题。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1149184234300785724?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1149184234300785724/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/ntp.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1149184234300785724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1149184234300785724'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/ntp.html' title='NTP服务自动启动的问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1468104848079011056</id><published>2010-11-03T15:30:00.002+08:00</published><updated>2011-01-09T13:18:19.563+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grep'/><title type='text'>grep -E</title><content type='html'>用grep查找bin下面的文件怎么没有呢？&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;tux@dell:/etc/alternatives$ dpkg -L sensible-utils | grep 'bin/.+'&lt;/span&gt;&lt;/blockquote&gt;需要用扩展的模式（Extended Regular Expression）才行：&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;tux@dell:/etc/alternatives$ dpkg -L sensible-utils | grep -E 'bin/.+'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/usr/bin/select-editor&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/usr/bin/sensible-browser&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/usr/bin/sensible-editor&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/usr/bin/sensible-pager&lt;/span&gt;&lt;/blockquote&gt;因为在基本模式下，需要\+代替+才行：&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;tux@dell:/etc/alternatives$ dpkg -L sensible-utils | grep 'bin/.\+'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/usr/bin/select-editor&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/usr/bin/sensible-browser&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/usr/bin/sensible-editor&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/usr/bin/sensible-pager&lt;/span&gt;&lt;/blockquote&gt;grep的手册里面说了：&lt;br /&gt;&lt;blockquote&gt;Basic vs Extended Regular Expressions In basic regular expressions the meta-characters ?, +, {, |, (,  and  ) lose  their  special  meaning; instead use the backslashed versions \?, \+, \{, \|, \(, and \).&lt;/blockquote&gt;grep默认不是Extended模式，需要加参数-E。可是扩展模式才是习惯的模式，用的时候还得记着。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1468104848079011056?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1468104848079011056/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/grep-e.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1468104848079011056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1468104848079011056'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/grep-e.html' title='grep -E'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-9121240876462303892</id><published>2010-11-02T23:59:00.002+08:00</published><updated>2010-12-26T22:42:50.218+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='anacron'/><category scheme='http://www.blogger.com/atom/ns#' term='cron'/><title type='text'>Cron和Anacron</title><content type='html'>今天查看Ubuntu下系统的cron任务是如何执行的，发现了很纠结的事情。&lt;br /&gt;系统的cron文件/etc/crontab的相关内容是这样的：&lt;br /&gt;&lt;br /&gt;17 * * * * root    cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.hourly&lt;br /&gt;25 6 * * * root test -x /usr/sbin/anacron || ( cd / &amp;amp;&amp;amp; run-parts&amp;nbsp;--report /etc/cron.daily )&lt;br /&gt;47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / &amp;amp;&amp;amp; run-parts&amp;nbsp;--report /etc/cron.weekly )&lt;br /&gt;52 6 1 * * root test -x /usr/sbin/anacron || ( cd / &amp;amp;&amp;amp; run-parts&amp;nbsp;--report /etc/cron.monthly )&lt;br /&gt;&lt;br /&gt;第一行确保了/etc/cron.hourly中的任务可以运行，但是这个目录是空的，没任务。下面三行是说，如果/usr/sbin/anacron不能执行，才执行/ect/cron.daily、/etc/cron.weekly和/etc/cron.monthly里面的任务。但是anancron是装上的，所以后面三行中的任务是没法执行的。&lt;br /&gt;然后摸索了下，看看anacron是个什么东东。它的系统任务是/etc/anacrontab，这个文件的内容如下：&lt;br /&gt;&lt;br /&gt;1 5 cron.daily  nice run-parts --report /etc/cron.daily&lt;br /&gt;7 10 cron.weekly  nice run-parts --report /etc/cron.weekly&lt;br /&gt;@monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly&lt;br /&gt;&lt;br /&gt;看到这里才明白了，原来是通过anacron来运行cron的任务。就是说实际的任务脚本在cron的相关目录里面，而调用是要通过anacron的。难怪我要说纠结呢。&lt;br /&gt;anacron的手册里面也指出了anacron的这种用法：&lt;br /&gt;&lt;br /&gt;Anacron can be used to execute commands periodically, with a&lt;br /&gt;frequency specified in days.  Unlike cron(8), it does not assume that&lt;br /&gt;the machine is running continuously.  Hence, &amp;lt;b&amp;gt;it can be used on&lt;br /&gt;machines that aren't running 24 hours a day, to control daily, weekly,&lt;br /&gt;and monthly jobs that are usually controlled by cron.&amp;lt;/b&amp;gt;&lt;br /&gt;&lt;br /&gt;可以看出anacron是辅助cron任务更好地得以执行的。把anacron删除了这些任务还是可以运行，但是必须在指定的时间开机才行，而不是anacron那样能够"补上"漏掉的任务。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-9121240876462303892?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/9121240876462303892/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/cronanacron.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/9121240876462303892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/9121240876462303892'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/cronanacron.html' title='Cron和Anacron'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2017769063190053286</id><published>2010-11-01T10:14:00.002+08:00</published><updated>2011-04-12T23:27:57.705+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><category scheme='http://www.blogger.com/atom/ns#' term='nautilus'/><title type='text'>GNOME使用技巧之一——隐藏家目录下的文件</title><content type='html'>&lt;style type="text/css"&gt;p { margin-bottom: 0.08in; }&lt;/style&gt;     &lt;br /&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-family: DejaVu Sans;"&gt;在家目录创建&lt;/span&gt;.hidden&lt;span style="font-family: DejaVu Sans;"&gt;文件，然后把要隐藏的目录或文件名写到&lt;/span&gt;.hidden&lt;span style="font-family: DejaVu Sans;"&gt;文件里面，那么这些文件就在Nautilus里面隐藏了。如果该文件内容为：&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span style="font-family: DejaVu Sans;"&gt;bin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: DejaVu Sans;"&gt;Templates&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-family: DejaVu Sans;"&gt;那么bin和Templates在Nautilus里面就看不到了，需要在View菜单里面勾上Show Hidden         Files才能看到。该方法只能隐藏位于家目录下的文件。其实在Nautilus里面：'.'开头的文件是标准的隐藏文件，~结束的文件是备份文件，默认也是隐藏的。&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-family: DejaVu Sans;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-family: DejaVu Sans;"&gt;PS：linux相关的tip，一直纠结是发在这里好还是贴在twitter上好。在twitter发过几条，但是总觉得那里信息太杂，也不好找，所以又返回这里了。&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2017769063190053286?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2017769063190053286/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/gnome.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2017769063190053286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2017769063190053286'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/gnome.html' title='GNOME使用技巧之一——隐藏家目录下的文件'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-6780017195406850432</id><published>2010-11-01T09:46:00.002+08:00</published><updated>2011-04-30T00:25:27.656+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='touchpad'/><category scheme='http://www.blogger.com/atom/ns#' term='X'/><category scheme='http://www.blogger.com/atom/ns#' term='xinput'/><title type='text'>关闭笔记本电脑的触控板</title><content type='html'>笔记本的触控板移动效率低，用的时候手完全脱离键盘，很不方便，而且打字的时候碰到更烦人。我想把我的Dell Inspiron     14v笔记本电脑的触控板关掉。在Ubuntu下触控板可以用，但是在鼠标设置里面看不到。用xinput查看，原来是把触控板认成一个普通鼠标了。     用xinput工具即可关掉。&lt;br /&gt;&lt;br /&gt;xinput原初的输出：&lt;br /&gt;&lt;blockquote&gt;&lt;tt&gt;tux@dell:~$ xinput list&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎡ Virtual core pointer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=2&amp;nbsp;&amp;nbsp; &amp;nbsp;[master         pointer&amp;nbsp; (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; ↳ Virtual core XTEST pointer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=4&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; ↳ 2.4G Receiver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=11&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; ↳ 2.4G Receiver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=12&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; &lt;b&gt;↳ PS/2 Generic Mouse&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=14&amp;nbsp;&amp;nbsp;           &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/b&gt;&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎣ Virtual core keyboard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=3&amp;nbsp;&amp;nbsp; &amp;nbsp;[master         keyboard (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Virtual core XTEST keyboard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=5&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Video Bus&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=6&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Power Button&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=7&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Sleep Button&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=8&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Laptop_Integrated_Webcam_0.3M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=9&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ 2.4G Receiver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=10&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ AT Translated Set 2 keyboard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=13&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Dell WMI hotkeys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=15&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;/blockquote&gt;把触控板暂停掉：&lt;br /&gt;&lt;blockquote&gt;&lt;tt&gt;tux@dell:~$ xinput float 14&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;tux@dell:~$ xinput list&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎡ Virtual core pointer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=2&amp;nbsp;&amp;nbsp; &amp;nbsp;[master         pointer&amp;nbsp; (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; ↳ Virtual core XTEST pointer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=4&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; ↳ 2.4G Receiver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=11&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; ↳ 2.4G Receiver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=12&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎣ Virtual core keyboard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=3&amp;nbsp;&amp;nbsp; &amp;nbsp;[master         keyboard (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Virtual core XTEST keyboard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=5&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Video Bus&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=6&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Power Button&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=7&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Sleep Button&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=8&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Laptop_Integrated_Webcam_0.3M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=9&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ 2.4G Receiver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=10&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ AT Translated Set 2 keyboard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=13&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Dell WMI hotkeys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=15&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;b&gt;&lt;tt&gt;∼ PS/2 Generic Mouse&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=14&amp;nbsp;&amp;nbsp;           &amp;nbsp;[floating slave]&lt;/tt&gt;&lt;/b&gt;&lt;/blockquote&gt;如果需要，再恢复：&lt;br /&gt;&lt;blockquote&gt;&lt;tt&gt;tux@dell:~$ xinput reattach 14 2&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;tux@dell:~$ xinput list&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎡ Virtual core pointer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=2&amp;nbsp;&amp;nbsp; &amp;nbsp;[master         pointer&amp;nbsp; (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; ↳ Virtual core XTEST pointer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=4&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; ↳ 2.4G Receiver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=11&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; ↳ 2.4G Receiver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=12&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎜&amp;nbsp;&amp;nbsp; &lt;b&gt;↳ PS/2 Generic Mouse&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=14&amp;nbsp;&amp;nbsp;           &amp;nbsp;[slave&amp;nbsp; pointer&amp;nbsp; (2)]&lt;/b&gt;&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;⎣ Virtual core keyboard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=3&amp;nbsp;&amp;nbsp; &amp;nbsp;[master         keyboard (2)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Virtual core XTEST keyboard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=5&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Video Bus&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=6&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Power Button&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=7&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Sleep Button&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=8&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Laptop_Integrated_Webcam_0.3M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=9&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ 2.4G Receiver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=10&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ AT Translated Set 2 keyboard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=13&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↳ Dell WMI hotkeys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=15&amp;nbsp;&amp;nbsp;         &amp;nbsp;[slave&amp;nbsp; keyboard (3)]&lt;/tt&gt;&lt;/blockquote&gt;把xinput float 14放到~/.gnomerc里面就可以了。放到~/.xinitrc里面竟然不行，原因懒得找。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-6780017195406850432?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/6780017195406850432/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/11/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6780017195406850432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/6780017195406850432'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/11/blog-post.html' title='关闭笔记本电脑的触控板'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-467651844089241817</id><published>2010-10-05T16:19:00.000+08:00</published><updated>2010-10-05T16:19:51.505+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><title type='text'>VPN的流量转发</title><content type='html'>开的PPTP一直能连上，但是连上后一个包也收不到。知道是防火墙的路由设置有问题。这几天终于搞定了，其实和OpenVPN的文档里面&lt;a href="http://openvpn.net/index.php/open-source/documentation/howto.html#redirect"&gt;介绍的方法&lt;/a&gt;一样，就是加上类似下面的防火墙规则：&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;-s后面的是VPN内网地址。还是以前任晓磊说的对，就一个MASQUERADE设置对就可以转发了。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-467651844089241817?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/467651844089241817/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/10/vpn.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/467651844089241817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/467651844089241817'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/10/vpn.html' title='VPN的流量转发'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-652968864410966497</id><published>2010-10-03T17:46:00.001+08:00</published><updated>2010-10-03T17:49:44.701+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='l10n'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>从未完成的翻译</title><content type='html'>给爸爸的电脑装了Ubuntu 10.10 beta，除&lt;a href="http://packages.ubuntu.com/maverick/gnome-games"&gt;gnome-games&lt;/a&gt;外，还安装了&lt;a href="http://packages.ubuntu.com/maverick/kdegames"&gt;kdegames&lt;/a&gt;。kdegames默认是英文界面的，需要汉化。为此安装了KDE的&lt;a href="http://packages.ubuntu.com/maverick/kde/systemsettings"&gt;systemsettings&lt;/a&gt;以及&lt;a href="http://packages.ubuntu.com/maverick/language-selector-qt"&gt;language-selector-qt&lt;/a&gt;来把kdegames的界面改为中文。为了能够看帮助，又安装了&lt;a href="http://packages.ubuntu.com/maverick/khelpcenter4"&gt;khelpcenter4&lt;/a&gt;，但是kdegames的帮助仍然是英文的，并没有翻译过来。&lt;br /&gt;&lt;br /&gt;以&lt;a href="http://packages.ubuntu.com/maverick/kbounce"&gt;kbounce&lt;/a&gt;为例，帮助文件位于/usr/share/doc/kde/HTML/en/kbounce/index.docbook。在Launchpad上kbounce的&lt;a href="https://translations.launchpad.net/ubuntu/maverick/+source/kdegames/+pots/kbounce/zh_CN/+details"&gt;翻译页面&lt;/a&gt;，显示的翻译进度是100%。在上面列出的翻译项中，只有软件界面的文字，并不包括帮助文件的内容。&lt;br /&gt;&lt;br /&gt;再以GNOME下的俄罗斯方块游戏&lt;a href="http://packages.ubuntu.com/maverick/quadrapassel"&gt;quadrapassel&lt;/a&gt;为例，帮助文件的中文翻译位于/usr/share/gnome/help/quadrapassel/zh_CN/quadrapassel.xml。这样游戏的界面是中文，帮助文件也进行了翻译，但只是部分的。这好歹要比kbounce要强，至少还翻译过。在Launchpad上gnome-games的&lt;a href="https://translations.launchpad.net/ubuntu/maverick/+source/gnome-games/+pots/gnome-games/zh_CN/+details"&gt;翻译页面&lt;/a&gt;，显示的翻译进度也是100%。这仍然也只算界面，不算帮助文件。在里面&lt;a href="https://translations.launchpad.net/ubuntu/maverick/+source/gnome-games/+pots/gnome-games/zh_CN/+translate?batch=10&amp;amp;show=all&amp;amp;search=quadrapassel"&gt;搜索quadrapassel&lt;/a&gt;，只有4条结果，更可证明帮助文件是不算在翻译任务里面的。&lt;br /&gt;&lt;br /&gt;看来Launchpad上面的翻译进度都是虚高，看起来是100%，其实远远没有达到完整的本地化。这也难怪你装了中文的Ubuntu，安装和使用中还要面对很多的英文。对于不懂英文的人，可以说就是半成品。&lt;br /&gt;&lt;br /&gt;并不是说半成品不可以。维基百科的每一个语言项目可以说都是半成品，因为从来不会所有的条目都处于“完成”的状态。这就是&lt;a href="http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar"&gt;集市模式&lt;/a&gt;的特色。但是Launchpad上面虚高的统计数据让人把半成品误解为成品，这样的结果是有害自由软件的发展的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-652968864410966497?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/652968864410966497/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/10/blog-post_03.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/652968864410966497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/652968864410966497'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/10/blog-post_03.html' title='从未完成的翻译'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-3954989857064954171</id><published>2010-10-01T11:36:00.002+08:00</published><updated>2010-10-01T11:42:52.491+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='X'/><title type='text'>显示器刷新率</title><content type='html'>我的旧电脑给了我爸爸，这几天装上了Ubuntu 10.10 beta。用惯了没有注意，一次重启到原来的Windows XP下，再回到Ubuntu，才发现Ubuntu下屏幕闪得厉害，一看刷新率是60Hz。这是Ubuntu自动启用的设置。我知道这台飞利浦17寸的显示器在1024x768下是可以上到85Hz的。可是现在的Xorg，&lt;a href="http://en.wikipedia.org/wiki/Xorg.conf"&gt;xorg.conf&lt;/a&gt;已经不是必须的了。需要关闭X后，用&lt;br /&gt;&lt;div&gt;&lt;blockquote&gt;$ sudo Xorg -configure&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;来生成一个配置文件。把这个文件拷贝到/etc/X11/xorg.conf，不需要做任何改动。再进到GNOME，显示器设置里多了不少分辨率的模式，把刷新率设置成85就可以了。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-3954989857064954171?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/3954989857064954171/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/10/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3954989857064954171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/3954989857064954171'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/10/blog-post.html' title='显示器刷新率'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-5229269578088293794</id><published>2010-09-30T16:50:00.000+08:00</published><updated>2010-09-30T16:50:50.653+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleearth'/><title type='text'>Google Earth问题</title><content type='html'>在Ubuntu 10.04或者10.10 beta下面安装Google Earth 5.2，界面的中文字符都是方块。按&lt;a href="http://forum.ubuntu.org.cn/viewtopic.php?f=8&amp;amp;t=182734"&gt;这个帖子&lt;/a&gt;的方法，把Earth自带的Qt的库删除掉，然后安装系统发行的对应Qt库包。&lt;br /&gt;&lt;br /&gt;再次启动Earth中文显示好了，但是一会儿就崩溃了。结合崩溃后的stacktrace：&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Stacktrace from glibc:&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/usr/lib/googleearth/libgoogleearth_free.so(+0xd090b)[0xae590b]&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[0x34a400]&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/usr/lib/googleearth/libIGGfx.so(+0x1296c9)[0x54556c9]&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/usr/lib/googleearth/libIGGfx.so(FreeImage_LoadFromHandle+0xb1)[0x54432c1]&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/usr/lib/googleearth/libIGGfx.so(_ZN3Gap3Gfx7igImage21platformLoadFreeImageEPNS_4Core6igFileEbPNS0_19igImageMetaDataListE+0xa1)[0x542d4b1]&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/usr/lib/googleearth/libIGGfx.so(_ZN3Gap3Gfx10igOglImage12platformLoadEPNS_4Core6igFileEPNS0_19igImageMetaDataListE+0x112)[0x542dbb2]&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/usr/lib/googleearth/libIGGfx.so(_ZN3Gap3Gfx7igImage8loadFileEPNS_4Core6igFileEPNS0_19igImageMetaDataListE+0x12d)[0x541e1ad]&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;br /&gt;按&lt;a href="http://www.google.co.uk/support/forum/p/earth/thread?fid=5e8f4b53f6a06be600048ff8b55239e3&amp;amp;hl=en&amp;amp;hltp=1"&gt;这个帖子&lt;/a&gt;的方法，安装系统发行的libfreeimage3，然后用&lt;br /&gt;&lt;blockquote&gt;env LD_PRELOAD=/usr/lib/libfreeimage3 googleearth&lt;/blockquote&gt;启动Earth就可以正常启动了。中文显示和输入也没有问题。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-5229269578088293794?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/5229269578088293794/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/09/google-earth.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5229269578088293794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5229269578088293794'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/09/google-earth.html' title='Google Earth问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2225505042129895376</id><published>2010-09-10T13:54:00.003+08:00</published><updated>2011-04-12T13:05:39.762+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='top'/><category scheme='http://www.blogger.com/atom/ns#' term='free'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='vmstat'/><title type='text'>free, top, vmstat输出结果对应关系</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;top和free的对应（相同颜色标记的输出是一样的）：&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_JJwHxugvGbE/TInHw8-L2DI/AAAAAAAAG-w/3mxOwciZ4gI/s1600/path38.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://2.bp.blogspot.com/_JJwHxugvGbE/TInHw8-L2DI/AAAAAAAAG-w/3mxOwciZ4gI/s640/path38.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;vmstat和free的对应&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;（相同颜色标记的输出是一样的）&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;：&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_JJwHxugvGbE/TInH0Nmog8I/AAAAAAAAG-4/r1hblwbj0ZA/s1600/g4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://4.bp.blogspot.com/_JJwHxugvGbE/TInH0Nmog8I/AAAAAAAAG-4/r1hblwbj0ZA/s640/g4.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2225505042129895376?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2225505042129895376/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/09/free-top-vmstat.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2225505042129895376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2225505042129895376'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/09/free-top-vmstat.html' title='free, top, vmstat输出结果对应关系'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JJwHxugvGbE/TInHw8-L2DI/AAAAAAAAG-w/3mxOwciZ4gI/s72-c/path38.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-7357563001588822435</id><published>2010-08-20T22:21:00.000+08:00</published><updated>2010-12-26T22:47:14.628+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleearth'/><title type='text'>Google Earth中显示海拔</title><content type='html'>有时候会不显示海拔，在图层中勾上地形即可。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-7357563001588822435?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/7357563001588822435/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/08/google-earth.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7357563001588822435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7357563001588822435'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/08/google-earth.html' title='Google Earth中显示海拔'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1646603695293453681</id><published>2010-08-20T18:44:00.000+08:00</published><updated>2010-12-26T22:47:36.140+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='evince'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Evince显示中文PDF</title><content type='html'>要安装poppler-data才行。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1646603695293453681?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1646603695293453681/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/08/evincepdf.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1646603695293453681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1646603695293453681'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/08/evincepdf.html' title='Evince显示中文PDF'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-5932391918696329598</id><published>2010-07-14T23:00:00.000+08:00</published><updated>2010-12-26T22:48:11.960+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ntp'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Xen的时间问题</title><content type='html'>发现VPS的时间很诡异，ntp同步没用，人间跑2秒，VPS里面跑3秒。这是一个Ubuntu的VPS，内核是2.6.32-5-xen-amd64，是把VPS的时区从UTC调成北京时区后出现了这样的问题。后来知道原来Xen虚拟机的时间从domU得到，反正和正常系统时间的机制不同。我发现VirtualBox里面的Plan 9和NetBSD的时间都没有和宿主系统同步，只有Fedora和Windows XP的同步了。虚拟机时间是种新情况。&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;找到了解决办法：&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="http://lists.xensource.com/archives/html/xen-users/2009-09/msg00652.html"&gt;echo HWCLOCKACCESS=no &amp;gt;&amp;gt;/etc/default/rcS&lt;/a&gt;&lt;/span&gt;。然后重启了。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-5932391918696329598?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/5932391918696329598/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/07/xen.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5932391918696329598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/5932391918696329598'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/07/xen.html' title='Xen的时间问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4752697748601963200</id><published>2010-07-14T12:34:00.000+08:00</published><updated>2010-12-26T23:22:21.728+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misclog'/><category scheme='http://www.blogger.com/atom/ns#' term='Chromium'/><title type='text'>几条经验</title><content type='html'>Network Mananger里面，有线连接的DNS要手工指定才能连接出去。&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;在网页，如Wikipedia，正在加载的过程中，如果在Chrome里面用Proxy Switchy从无代理切换到SSH代理，就连接不上去了，必须重新启动mysshtunnel.sh才行。经验就是停止页面刷新后再切换代理状态。&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;发现Blogspot不重新定向我新设置的个人域名了，纠结几天，还去Google的论坛发贴了。刚刚发现是因为Chrome的Proxy Switchy插件是自动切换模式，所以就不用代理要打开，而自然是打不开的。最近发现解决问题需要有一套正规的方法，不然就是瞎碰。&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4752697748601963200?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4752697748601963200/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/07/blog-post_14.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4752697748601963200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4752697748601963200'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/07/blog-post_14.html' title='几条经验'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4899396453894850895</id><published>2010-07-12T20:37:00.003+08:00</published><updated>2011-01-17T19:32:45.304+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='upstart'/><category scheme='http://www.blogger.com/atom/ns#' term='runlevel'/><title type='text'>运行级的问题</title><content type='html'>&lt;div&gt;Virtualbox和dictd开机不能启动。查看/etc/rc?.d下面的脚本链接没有问题，但是runlevel输出的是unknown。我以为是Ubuntu里面的upstart已经没有runlevel的概念了，但是查看/usr/share/doc/upstart/README.Debian.gz，里面说了runlevel的概念没有变，不过是在/etc/init/rc-sysinit.conf里面定义的。我看这个文件里面又说，runlevel可以被/etc/inittab里面的设置覆盖，而我的inittab里面只有一行了，是IBM DB2的。我想应该是这个文件造成了runlevel无法正确设置。&lt;br /&gt;&lt;br /&gt;以前装了个IBM DB2 Express-C 9.7，想学学，但是装好后从来没有碰过，这次顺便就删除算了。没想到这个软件安装容易卸载难，安装的时候有详细的文档，卸载却制造各种障碍还没有文档。按照一个&lt;a href="http://www.linux.org/docs/ldp/howto/DB2-HOWTO/uninstalling.html"&gt;DB2 Express-C的卸载步骤&lt;/a&gt;，才卸载掉。重启后运行级还是unknown。干脆把inittab文件删除掉，问题还是照旧。&lt;br /&gt;&lt;br /&gt;在launchpad上Ubuntu的&lt;a href="https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/543506"&gt;Bug 543506&lt;/a&gt;里面，看到可以查看/var/log/boot.log（由bootlogd记录）。我发现我的里面有这样的记录：&lt;br /&gt;&lt;br /&gt;init: network-interface (lo) pre-start process (748) terminated with status 1&lt;br /&gt;init: network-interface (lo) post-stop process (752) terminated with status 1&lt;br /&gt;init: network-interface (eth0) pre-start process (757) terminated with status 1&lt;br /&gt;init: network-interface (eth0) post-stop process (766) terminated with status 1&lt;br /&gt;…………&lt;br /&gt;init: networking main process (948) terminated with status 1&lt;br /&gt;&lt;br /&gt;这表明network-interfaces脚本启动出错，进而导致iinit没没有进入到运行级2，也就没有启动/etc/rc2.d里面的启动脚本。&lt;/div&gt;&lt;div&gt;我想起最近用了Network Manager上上网，为了不让interfaces文件起作用，我把/etc/network/interfaces文件改名了。这正是导致networking启动不起来的原因。我把interfaces文件改回去后重启，系统的运行级成了2，/etc/init.d下下面的vboxdrv和dictd都都启动了。&lt;br /&gt;&lt;br /&gt;在上面说的bug记录中，有人指出了&lt;a href="http://www.blogger.com/"&gt;问题所在&lt;/a&gt;，就是upstart需要lo网络接口启用才能运行成功，而Network Manager启用lo后不会通知upstart。如果确实如他所说，在我的情况里，lo在interfaces文件里面，我把这个文件改名后，lo自然不是由networking启动的，而是由network-manager启动，没有通知upstart，所以就造成了init不能启动的问题。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4899396453894850895?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4899396453894850895/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/07/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4899396453894850895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4899396453894850895'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/07/blog-post.html' title='运行级的问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-339727841097669149</id><published>2010-07-12T12:39:00.000+08:00</published><updated>2010-12-26T22:49:58.380+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openvpn'/><title type='text'>OpenVPN</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_JJwHxugvGbE/TDqchxrsnOI/AAAAAAAAG8w/9AZ920qWyO4/s1600/%E5%9C%A8Fedora(%E8%99%9A%E6%8B%9F%E6%9C%BA)%E4%B8%8B%E8%AF%95%E9%AA%8COpenVPN%E5%AE%A2%E6%88%B7%E7%AB%AF.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_JJwHxugvGbE/TDqchxrsnOI/AAAAAAAAG8w/9AZ920qWyO4/s320/%E5%9C%A8Fedora(%E8%99%9A%E6%8B%9F%E6%9C%BA)%E4%B8%8B%E8%AF%95%E9%AA%8COpenVPN%E5%AE%A2%E6%88%B7%E7%AB%AF.png" /&gt;&lt;/a&gt;&lt;/div&gt;今晚，阅读了OpenVPN主页上对开源版本的介绍性文档。在VPS上下载并安装了OpenVPN Access Server。这是一个闭源的OpenVPN软件，提供Web管理界面。在Access Server上配置了服务，从Windows、Ubuntu和Fedora下面都可以连接到VPN服务器，但是如果在服务端选择替换客户端的默认路由，那么三个系统下的客户端都收不到包，ping不通除VPN的因特网地址和私有网地址外的任何IP。需要下次再研究这个问题。&lt;br /&gt;&lt;br /&gt;PS: 上面说的Fedora是在Ubuntu下用VirtualBox虚拟的。为了用它读取宿主系统上的OpenVPN客户端配置文件，需要挂载宿主硬盘；为了挂载硬盘，需要虚拟机系统支持vboxsf文件系统；为了支持vboxsf，需要在虚拟机安装VirtualBox Guest Additions；为了安装Guest Additions，需要虚拟机挂载安装ISO文件。下面用图来表示吧，还包括安装Guest Additions需要的依赖条件。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-339727841097669149?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/339727841097669149/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/07/openvpn.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/339727841097669149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/339727841097669149'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/07/openvpn.html' title='OpenVPN'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JJwHxugvGbE/TDqchxrsnOI/AAAAAAAAG8w/9AZ920qWyO4/s72-c/%E5%9C%A8Fedora(%E8%99%9A%E6%8B%9F%E6%9C%BA)%E4%B8%8B%E8%AF%95%E9%AA%8COpenVPN%E5%AE%A2%E6%88%B7%E7%AB%AF.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1173656463813472415</id><published>2010-06-30T13:56:00.006+08:00</published><updated>2010-12-26T22:50:46.892+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>网络启动脚本</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;在前一篇日记中，我写到“目前我发现禁用interfaces里面设置的方法只有把这个文件改名或者挪走”。我想找一个更干净的方法。我以为/etc/init.d/networking是启用网络接口的脚本，就用update-rc.d把这个脚本在/etc/rc?.d/里面的链接删掉，这样networking脚本就不会启动了。谁知下次开机后，网卡依然是按照interfaces里面的设置启用的。&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;我读了一下这个脚本(Ubuntu 10.04)。首先它默认是在0、6和S的运行级启动的，分别对应关机、重启和单用户模式。其次，脚本的start参数对应的命令只有如下一段：&lt;/div&gt;&lt;blockquote&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;/lib/init/upstart-job networking start&lt;br /&gt;;;&lt;/blockquote&gt;看了一下upstart-job这个脚本，由于对Bash脚本不熟，没有仔细研读，待日后再研究。难道networking这个脚本只是用来停止网络接口的？这是瞎猜，不是结论。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1173656463813472415?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1173656463813472415/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/06/blog-post_30.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1173656463813472415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1173656463813472415'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/06/blog-post_30.html' title='网络启动脚本'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-978530445597366069</id><published>2010-06-29T12:39:00.005+08:00</published><updated>2011-06-07T15:47:15.725+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NetworkManager'/><title type='text'>Network Manager</title><content type='html'>Network Manager是Ubuntu的网络连接工具，可以让桌面用户方便地管理网络连接。但是Debian系的网络连接在/etc/network/interfaces里面。Network Manager不接管interfaces文件中配置的网络接口。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-978530445597366069?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/978530445597366069/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/06/network-manager.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/978530445597366069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/978530445597366069'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/06/network-manager.html' title='Network Manager'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-7076301850049105831</id><published>2010-06-25T19:58:00.001+08:00</published><updated>2010-12-26T22:54:30.855+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPTP'/><title type='text'>PPTP</title><content type='html'>在Ubuntu下用ppp连接pptpd服务器，可以连接上。但是通过修改默认路由的网关为pptp服务器端的VPN地址，大多数网站都上不去，只能打开个别网站，比如&lt;a href="http://mitbbs.com"&gt;mitbbs.com&lt;/a&gt;，但是在Windows下连接后就可以用VPN上网了，没有问题。这个Windows是在Ubuntu下虚拟机里面的。就是说虚拟机能用VPN翻墙，但是宿主机不能。&lt;p&gt;后来用Network Manager来连接VPN，那么可以正常上网。试着仿照Network Manager连接VPN后的路由，手动修改路由，可是这样仍然有问题。就是说NM修改了路由，还修改了别的东西。不折腾了，用NM能上就行了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-7076301850049105831?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/7076301850049105831/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/06/pptp.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7076301850049105831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7076301850049105831'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/06/pptp.html' title='PPTP'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2177629276788719300</id><published>2010-06-14T10:35:00.001+08:00</published><updated>2010-12-26T22:55:44.798+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>URL重写：从IP到主机名</title><content type='html'>Apache里面把IP从主机名重写，我是想用mod_rewrite的。搜索到国外的论坛，上面的方法不对，竟然有误导作用。在Freenode的#httpd里面一问就明白了，只用Redirect指令就可以了：&lt;p&gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br&gt;         ServerName 1.2.3.4&lt;br&gt;         Redirect / &lt;a href="http://example.org/"&gt;http://example.org/&lt;/a&gt;&lt;br&gt;&amp;lt;/VirtualHost&amp;gt;&lt;p&gt;重点的是ServerName要写成你想重写的IP地址。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2177629276788719300?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2177629276788719300/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/06/urlip.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2177629276788719300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2177629276788719300'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/06/urlip.html' title='URL重写：从IP到主机名'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1358535992801320661</id><published>2010-06-10T12:27:00.003+08:00</published><updated>2011-04-12T23:42:55.964+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RFC'/><title type='text'>URI vs URL</title><content type='html'>&lt;div class="gmail_quote"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_JJwHxugvGbE/TBEAq36mSwI/AAAAAAAAG8M/QuRnEt1K0N8/s1600/URI_Venn_Diagram.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="120" src="http://1.bp.blogspot.com/_JJwHxugvGbE/TBEAq36mSwI/AAAAAAAAG8M/QuRnEt1K0N8/s200/URI_Venn_Diagram.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;URI (Uniform Resource Identifier) 是标识符，URL (Uniform Resource Locator) 是定位符。URL是URI的子集，如图。没想到和这两个概念相关的RFC就有好几个。参考维基百科上&lt;a href="http://en.wikipedia.org/wiki/Uniform_Resource_Identifier"&gt;URI&lt;/a&gt;和&lt;a href="http://en.wikipedia.org/wiki/Uniform_Resource_Locator"&gt;URL&lt;/a&gt;的定义。 &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1358535992801320661?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1358535992801320661/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/06/uri-vs-url.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1358535992801320661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1358535992801320661'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/06/uri-vs-url.html' title='URI vs URL'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JJwHxugvGbE/TBEAq36mSwI/AAAAAAAAG8M/QuRnEt1K0N8/s72-c/URI_Venn_Diagram.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1478423578406792615</id><published>2010-06-03T21:15:00.001+08:00</published><updated>2010-12-26T22:56:30.126+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gtalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Pidgin'/><title type='text'>Pidgin里面Gtalk的证书问题</title><content type='html'>在Pidgin里面，每次登录Gtalk都有这样的提示：&lt;p&gt;   The certificate for &lt;a href="http://talk.google.com"&gt;talk.google.com&lt;/a&gt; could not be validated. The certificate claims to be from &amp;quot;&lt;a href="http://gmail.com"&gt;gmail.com&lt;/a&gt;&amp;quot; instead. This could mean that you are not connecting to the service you believe you are.&lt;p&gt;因为证书的CN是&lt;a href="http://gmail.com"&gt;gmail.com&lt;/a&gt;，但是服务器的域名却是&lt;a href="http://talk.google.com"&gt;talk.google.com&lt;/a&gt;，所以会有前述安全警告。在Gtalk账户的高级选项里面，勾上Force old (port 5223) SSL，然后把Connect port改成5223就不会有此警告了。因为这个端口的证书的CN和服务器域名一样，都是&lt;a href="http://talk.google.com"&gt;talk.google.com&lt;/a&gt;。可以在Pidgin的主菜单Tools -&amp;gt; Certificates里面查看证书。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1478423578406792615?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1478423578406792615/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/06/pidgingtalk.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1478423578406792615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1478423578406792615'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/06/pidgingtalk.html' title='Pidgin里面Gtalk的证书问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4646073379801308776</id><published>2010-06-03T20:50:00.001+08:00</published><updated>2010-12-26T23:01:52.181+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>升级频繁了也麻烦</title><content type='html'>Ubuntu里面每次更新了内核就很麻烦，VirtualBox和ATI的显卡驱动保证失效，这样3D程序也都不能用了。原因是它们都是依赖确定版本的内核编译内核模块的，必须再重新安装一遍才行。为了避免这样的麻烦，我已经只启用lucid和lucid-security的源，把lucid-updates也删除了，而且在Aptitude里面把linux这个包hold了，确保以后不更新内核。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4646073379801308776?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4646073379801308776/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/06/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4646073379801308776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4646073379801308776'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/06/blog-post.html' title='升级频繁了也麻烦'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-367099112429893010</id><published>2010-06-03T20:37:00.002+08:00</published><updated>2011-04-12T23:41:09.938+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nautilus'/><title type='text'>Nautilus中打开终端</title><content type='html'>Nautilus有个插件叫nautilus-open-terminal，可以在右键菜单中增加打开终端的快捷方式。这个功能一度失效了。我路径中的gnome-terminal命令是在$HOME/bin下的自定义脚本，加了--geometry选项来改变默认的窗口大小。我想和这个有关系。&lt;br /&gt;&lt;br /&gt;在GNOME的"Preferred Applications"设置里面，把终端设置为Custom，然后用'/usr/bin/gnome-terminal --geometry 80x38+0+0'这样的绝对路径，就搞定了。这样的话这里的设置就不依赖于我的脚本了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-367099112429893010?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/367099112429893010/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/06/nautilus.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/367099112429893010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/367099112429893010'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/06/nautilus.html' title='Nautilus中打开终端'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-1303356698060184524</id><published>2010-06-03T20:15:00.000+08:00</published><updated>2010-12-26T23:02:43.638+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pidgin'/><title type='text'>Pidgin不能上线</title><content type='html'>Pidgin（2.6.6）的什么账号都上不去，man pidgin发现一个选项：&lt;p&gt;        -f, --force-online&lt;br&gt;               Try to be online even if the network is reported (by Windows, or&lt;br&gt;               NetworkManager on Linux) to be unavailable.&lt;p&gt;加上-f选项后就可以上去了。或者直接把NetworkManager删除掉就好了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-1303356698060184524?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/1303356698060184524/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/06/pidgin.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1303356698060184524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/1303356698060184524'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/06/pidgin.html' title='Pidgin不能上线'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-7540669381156232861</id><published>2010-05-15T13:09:00.001+08:00</published><updated>2010-12-26T23:03:12.145+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Flash插件的问题</title><content type='html'>Firefox里面放Flash视频没有声音，发现Flash插件还是9.0的，进入~/.mozilla/plugins/一看，libflashplayer.so竟然还是2008年的。原来以前手动安装了Flash插件，虽然Ubuntu源里面的adobe-flashplugin是最新的，但是Firefox还是优先使用家目录下的。&lt;p&gt;以后更加坚定地尽量通过APT来安装软件，即使是一些第三方的、不自由的软件，这样可以利用APT对软件进行版本跟踪和升级。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-7540669381156232861?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/7540669381156232861/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/05/flash.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7540669381156232861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/7540669381156232861'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/05/flash.html' title='Flash插件的问题'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2208837519533796677</id><published>2010-05-15T13:05:00.001+08:00</published><updated>2010-12-26T23:04:39.259+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox总是在离线模式下</title><content type='html'>打开Firefox(3.6.3)总是在离线模式下。因为Firefox 3里面增加了一个功能（其实是个严重的bug），如果发现没有网络就自动进入Offline mode，如果是PPP连接或者DSL连接就会出现这样的问题。增加一个设置项：network.manage-offline-status，设置为false即可。 来源：&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/13152/"&gt;https://addons.mozilla.org/en-US/firefox/addon/13152/&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2208837519533796677?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2208837519533796677/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/05/firefox.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2208837519533796677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2208837519533796677'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/05/firefox.html' title='Firefox总是在离线模式下'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-2993218947701613302</id><published>2010-05-15T12:02:00.001+08:00</published><updated>2010-12-26T23:05:11.844+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thunderbird'/><title type='text'>改变Thunderbird的字体大小</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://3.bp.blogspot.com/_JJwHxugvGbE/S-4cy5Ab4VI/AAAAAAAAG7s/rE9uRDPKHQg/s1600/Screenshot-Fonts+%26+Encodings-739338.png"&gt;&lt;img src="http://3.bp.blogspot.com/_JJwHxugvGbE/S-4cy5Ab4VI/AAAAAAAAG7s/rE9uRDPKHQg/s320/Screenshot-Fonts+%26+Encodings-739338.png"  border="0" alt="" id="BLOGGER_PHOTO_ID_5471342257923416402" /&gt;&lt;/a&gt;&lt;/p&gt;Thunderbird里面的字体大小，从我N年前开始用到现在的3.0版，一直就很纠结。&lt;p&gt;现在的问题是，撰写邮件（我都是用纯文本的格式）时的字体太小，看起来很不舒服。其实信箱里的纯文本邮件也是一样的小字体。几经周折发现了解决办法。到菜单的Edit-&amp;gt;Preferences-&amp;gt;Display-&amp;gt;Formating-&amp;gt;Fonts-&amp;gt;Advanced，选择Fonts for Western，Minimum font size没有设置，改一个合适的字体，如图。之后，撰写邮件时的字体就受到了最小字体限制，不会太小了。&lt;p&gt;为什么中文邮件的字体大小，不是由中文字体控制，而是Western里面的呢？搜索了Thunderbird的帮助，在这里：&lt;a href="http://kb.mozillazine.org/Font_settings_in_Thunderbird#Settings_via_the_Options.2FPreferences_dialog"&gt;http://kb.mozillazine.org/Font_settings_in_Thunderbird#Settings_via_the_Options.2FPreferences_dialog&lt;/a&gt;，发现：&lt;p&gt;	Thunderbird treats Unicode messages (for example, UTF-8) as being in the same language group as your system.&lt;p&gt;就是说，凡是Unicode（例如UTF-8）的邮件，字体设置都在系统的语言组中。我的系统的locale是en_US.utf8，所以Unicode字体的大小就都在Western里面设置了。下面的的内容属于推测了，也许有概念错误，但目前没有精力去验证。&lt;p&gt;撰写纯文本邮件时，编码自动采用locale的设置，所以是UTF-8的字体。而信箱里面的纯文本邮件呢，也是取决于系统的locale，这并不取决于邮件本身的编码（我指的是邮件的Content-Type: text/plain; charset=UTF-8这一行）。因为收件箱里面有GB2312编码的邮件，必须用GB2312的编码才能正常显示，但是如果指定了Western语言的最小字体，也是可以应用在这些邮件上的。就是说不管邮件本身的编码如何，我现在的系统下，Thunderbird显示邮件的字体都取决于Western。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-2993218947701613302?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/2993218947701613302/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/05/thunderbird.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2993218947701613302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/2993218947701613302'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/05/thunderbird.html' title='改变Thunderbird的字体大小'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JJwHxugvGbE/S-4cy5Ab4VI/AAAAAAAAG7s/rE9uRDPKHQg/s72-c/Screenshot-Fonts+%26+Encodings-739338.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-4458762737075431464</id><published>2010-05-10T01:56:00.001+08:00</published><updated>2010-12-26T23:05:39.775+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misclog'/><title type='text'>五一一周的成果</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://4.bp.blogspot.com/_JJwHxugvGbE/S-b3RVTi_aI/AAAAAAAAG7k/quT_AD59CIo/s1600/screenshot2-781607.png"&gt;&lt;img src="http://4.bp.blogspot.com/_JJwHxugvGbE/S-b3RVTi_aI/AAAAAAAAG7k/quT_AD59CIo/s320/screenshot2-781607.png"  border="0" alt="" id="BLOGGER_PHOTO_ID_5469330674637012386" /&gt;&lt;/a&gt;&lt;/p&gt;五一放假开始的一周内，做了如下的事情。&lt;p&gt;1. 建立了&lt;a href="http://fatduck.org"&gt;fatduck.org&lt;/a&gt;自签名证书，启用了Apache的安全连接。&lt;br&gt;2. 让&lt;a href="http://mail.fatduck.org"&gt;mail.fatduck.org&lt;/a&gt;的网址，如果是HTTP协议的，自动跳转到HTTPS协议，确保了始终使用安全连接。而让&lt;a href="http://fatduck.org"&gt;fatduck.org&lt;/a&gt;的网址，如果是HTTPS协议的，则自动跳转到HTTP协议，因为并不需要安全连接。&lt;br&gt;3. 建立自签名证书，启用了Dovecot的安全连接，IMAP收信用TLS加密。既然使用了TLS加密，所以用户认证就不需要加密，用的是plain机制。&lt;br&gt;4. 启用了Postfix的SASL身份验证功能，可以用SMTP发信了。&lt;p&gt;下步需要做的事情：&lt;br&gt;1. 搞清楚一个IP可不可以设置两个HTTPS的虚拟主机。&lt;br&gt;2. 启用SMTP的加密连接。&lt;br&gt;3. 阅读《Postfix权威指南》，学习相关原理，把电邮相关的软件原理尽可能搞清楚。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-4458762737075431464?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/4458762737075431464/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/05/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4458762737075431464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/4458762737075431464'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/05/blog-post.html' title='五一一周的成果'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JJwHxugvGbE/S-b3RVTi_aI/AAAAAAAAG7k/quT_AD59CIo/s72-c/screenshot2-781607.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-9082136955657270629</id><published>2010-05-01T18:43:00.000+08:00</published><updated>2010-12-26T23:06:00.001+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aMule'/><title type='text'>Bus error</title><content type='html'>升级到Ubuntu 10.04后，aMule启动不起来了，在命令行下启动看，显示：&lt;br&gt;&lt;div style="margin-left: 40px;"&gt;tux@Neverland:~$ amule&lt;br&gt;Bus error&lt;br&gt;&lt;/div&gt;Google搜索得知是某些文件坏了，把aMule删除干净，重装一下就好了。&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-9082136955657270629?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/9082136955657270629/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/05/bus-error.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/9082136955657270629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/9082136955657270629'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/05/bus-error.html' title='Bus error'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3231148127301727870.post-8453360880698943676</id><published>2010-04-29T23:08:00.001+08:00</published><updated>2011-11-30T22:34:32.253+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>用Python写二进制文件</title><content type='html'>参考了http://linux.byexamples.com/archives/478/python-writing-binary-file/。&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;binaascii&lt;/span&gt;可以在二进制数据和ASCII表达之间互相转换。Python程序如下：&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 40px;"&gt;#! /usr/bin/env python&lt;br /&gt;import binascii&lt;br /&gt;f = open('m', 'w')&lt;br /&gt;hs='2dd31d1c'&lt;br /&gt;hb=binascii.a2b_hex(hs)&lt;br /&gt;f.write(hb)&lt;br /&gt;f.close()&lt;/div&gt;&lt;br /&gt;之后可以用&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;bvi&lt;/span&gt;来验证写入结果。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3231148127301727870-8453360880698943676?l=linux.fatduck.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux.fatduck.org/feeds/8453360880698943676/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://linux.fatduck.org/2010/04/python_29.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8453360880698943676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3231148127301727870/posts/default/8453360880698943676'/><link rel='alternate' type='text/html' href='http://linux.fatduck.org/2010/04/python_29.html' title='用Python写二进制文件'/><author><name>Peter Pan</name><uri>http://www.blogger.com/profile/15954362820037475082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
