作者: 比尔盖子

解决一个小Bug——Sendmail无法发送邮件

今天输入mail,发现root收到16000多封邮件,都是Cron发给我的。
我一看:

451 gmail.com: Name server timeout

天啊,这年头DNS也抽风?后来经过查阅资料,再加上一些回忆,终于想到了原因:
原来比尔盖子的VPS机房是支持IPv6的,可自从搬到日本去IPv6就没有了。但是Sendmail依赖IPv6,因此没有了它DNS也就查询不成功了。

解决这个问题的方法倒是挺简单:

cd /etc/mail
yum install sendmail-cf
#刚学会超级转义符号:单引号,用单引号引用的内容永远不会具有特殊含义,比双引号厉害。
#正好就用到了!
#下面这句话的意思是:在sendmail.mc的最后一行加上"dnl define(`confBIND_OPTS’, `WorkAroundBrokenAAAA’)dnl" 来屏蔽IPv6!
echo 'dnl define(`confBIND_OPTS’, `WorkAroundBrokenAAAA’)dnl' >> sendmail.mc
m4 sendmail.mc >sendmail.cf
make
service sendmail restart

然后,Sendmail终于把邮件发出去了!

防范普通U盘病毒的小方法

U盘病毒大概是最烦人的病毒了,有时候虽然由于存在杀毒软件,U盘病毒不会发作,但是也会有一些安全隐患。这回,比尔盖子探索了U盘病毒,想出了对付U盘病毒的两个办法:

1.Windows系统存在一个删不掉文件夹的Bug

DOS命令集:

mkdir RECYCLER
cd RECYCLER
mkdir a..\\\
cd ..
mkdir autorun.inf
cd autorun.inf
mkdir a..\\\
cd ..

2.创建NTFS文件夹autorun.inf和RECYCLER,然后取消所有用户的访问权限,

具体原理,下回分解。

主板杀手——金士顿KVR1333D3N9/4G内存

今年七月,比尔盖子攒了新电脑。一切都很顺利,但是8GB内存,比尔盖子还是嫌不够大,于是就购买了四条金士顿KVR1333D3N9/4G内存,想要打造16GB的工作站。

那天晚上,我将原本机箱中的海盗船内存拆除,安装了四条金士顿的内存。开机——显示器不亮!换回原内存后发现,同样点不亮,同时我闻到了一股来自机箱内部的东西烧焦了的味道。

最后,将主板免费返厂维修,更换新主板。更换了新主板之后,用的很好。今天早上,我有尝试安装金士顿KVR1333D3N9/4G内存,不过小心了一些。首先移除1根海盗船内存,可以开机,再移除剩余2根海盗船内存,只留一根,可以开机;移除所有内存,安装一根金士顿KVR1333D3N9/4G内存,开机,黑屏!换回一根海盗船内存,开机,黑屏!

天啊,以前听说过“死亡CPU”烧毁主板,而现在是“死亡内存”烧主板啊!无奈的登录华硕的网站,看我这种情况到底还能不还再次免费更换,结果上面写道:

华硕主板,于保修期内所有人为损坏一律免费尽力维修

而且,此主板还处于16天至1年间的保修期,因此,应该还可以再次更换。

Fedora 16编译安装Osd-Lyrics

昨天升级完Fedora 16后又闲着没事干,想起来以前看过一篇文章,可以安装一个插件让Linux实现歌词同步显示。于是尝试了许多Rtythmbox的插件,结果发现这些插件安装上去以后,都没有在Rtythmbox的插件列表中显示出来……

最后,发现了Osd-Lyrics。于是决定下载源码编译安装,结果发现编译失败。于是我去提交了一个Bug(Issue 244: Fedora 16 编译失败),结果10个小时就解决了!

现在编译安装的过程如下:

检查依赖项目

  • gcc gcc-c++
  • autoconf automake libtool intltool
  • gtk2-devel >= 2.12.0
  • dbus-glib-devel
  • libcurl-devel
  • libnotify-devel
  • sqlite-devel
  • libmpd-devel (this is unnecessary if you configure with –disable-mpd option)
  • xmms2-devel (this is unnecessary if you configure with –disable-xmms2 option)

开始编译

git clone git://github.com/tigersoldier/osd-lyrics.git
cd osd-lyrics
git checkout --track origin/develop
aclocal
autoheader
autoconf
automake --add-missing
./configure
make -j3
su -c "make install"

然后在Gnome3“应用程序”的“影音”中找到“Osd Lyrics”,打开,然后拿Rtythmbox放一首歌,歌词出来了!

Fedora 16之悲催的升级过程

按照惯例,经过多次跳票之后,Fedora 16终于如期在2011年11月8日发布了。周末,比尔盖子也趁着这个功夫,打算将自己的工作站升级到Fedora 16。

升级的日子正好是百年不遇的光棍节。也许正是这个日子,让比尔盖子遇到了一些闻所未闻的麻烦。开始升级的时候还算顺利,一句话Preupgrade就慢慢下载吧!一切就绪,重启,黑屏!原来是GRUB损坏。早就听说由于Fedora将用GRUB2代替GRUB,可能会有这个BUG,没想到就遇到了!
找Fedora的LiveCD。由于比尔盖子的整个系统都被撞到了逻辑卷管理器(LVM2)上,因此需要执行这些命令来修复GRUB:

mkdir -p /mnt/temp/boot
 vgchange -a y
 vgscan
 lvdisplay
 mount /dev/vg_biergaizi-LogVol00/ /mnt/temp
 mount /dev/sdd1 /mnt/temp/boot
 grub-install –root-directory=/mnt/temp /dev/sdd

你的逻辑卷名称和设备名称可能不一样,需要自己修改。

接着,搞定,重启。选择第一项(有乱码的那一个),然后是漫长的黑光标,然后是升级界面。漫长升级之后,重启,出现新的GRUB2。引导后,发现Gnome提示崩溃,让比尔盖子联系管理员。多次重装显卡驱动后也不行!

在Linuxquestion.org上找到一个绝招:

1.清理配置文件

rm -rf ~/.gnome
 rm -rf ~/.metacity
 rm -rf ~/.gnome2
 rm -rf ~/.gconf
 rm -rf ~/.gconfd

2.卸载Gnome-Shell

rpm -e gnome-shell –nodeps

3.卸载所有显卡驱动

这时,重启电脑,你会发现由于没有了Gnome-Shell,Gnome就会自动进入备用模式。这时,安装显卡驱动(或者init3之后在文本模式下安装),然后yum install gnome-shell,重启,就OK了。但是比尔盖子这么做以后,发现一登录账户就花屏。后来发现,Gnome-Shell根本没装上!再次尝试安装,却提示caribou这个依赖项目出了问题。用yum remove caribou,然后再yum install gnome-shell终于正常了!

但最后发现账户还是有问题,很多应用程序都打不开,换了个账户就正常了。只好备份home目录后删除账户再重建账户!

最后,比尔盖子终于能用Fedora 16发布这篇文章了。

比尔盖子虚拟主机的可用率未能达到99.9%

随着即将结束的2011年,比尔盖子也对服务器进行了一些检查。但是比尔盖子网站的可用率未能达到100%,在此表示道歉。

故障分许:在2011年第三季度时出现了15小时的当机时间,这是由于网站搬迁机房造成的;而在2011年第四季度,由于比尔盖子所使用的Linux内核版本存在Bug,因此导致了多次的系统崩溃,总计崩溃时间达到了10小时。

详细报表

可用率

季度
2011年
99.52%
1天14小时46分钟
第4季度
98.95%
10小时26分钟
11月
100%
10月
98.60%
10小时26分钟
第3季度
99.35%
15小时9分钟
09月
98.48%
10小时57分钟
08月
99.93%
33分钟
07月
99.51%
3小时39分钟
第2季度
99.51%
4小时50分钟
06月
99.90%
44分钟
05月
99.77%
1小时43分钟
04月
99.67%
2小时22分钟
第1季度
99.54%
8小时19分钟
03月
99.73%
2小时2分钟
02月
99.34%
4小时26分钟
01月
99.75%
1小时50分钟
2010年
99.32%
24小时8分钟
第4季度
99.12%
14小时34分钟
12月
99.75%
1小时50分钟
11月
99.60%
2小时54分钟
10月
98.68%
9小时48分钟
第3季度
99.42%
9小时34分钟
09月
98.75%
8小时58分钟
08月
99.81%
36分钟

故障统计

监控项目 开始时间 恢复时间 故障持续时间 故障原因 故障分类
2011-10-20
比尔盖子技术交流站 15:30:50 15:34:07 3分钟 无法连接服务器 网络故障
2011-10-12
比尔盖子技术交流站 01:59:57 02:00:59 1分钟 数据包全部丢弃 网络故障
比尔盖子技术交流站 01:21:41 01:22:41 1分钟 无法连接服务器 网络故障
2011-10-08
比尔盖子技术交流站 19:26:02 19:27:02 1分钟 数据包全部丢弃 网络故障
2011-10-07
比尔盖子技术交流站 15:30:33 16:02:34 32分钟 请求超时 软件故障
2011-10-05
比尔盖子技术交流站 01:11:35 08:13:48 7小时2分钟 请求超时 软件故障
2011-10-04
比尔盖子技术交流站 15:39:22 18:26:25 2小时47分钟 请求超时 软件故障
2011-10-02
比尔盖子技术交流站 09:36:47 09:37:48 1分钟 服务器无返回数据 网络故障
2011-09-30
比尔盖子技术交流站 09:48:41 18:20:58 8小时32分钟 无法连接服务器 软件故障
比尔盖子技术交流站 09:48:32 18:20:53 8小时32分钟 数据包全部丢弃 软件故障
2011-09-10
比尔盖子技术交流站 15:26:00 17:46:26 2小时20分钟 无法连接服务器 软件故障
比尔盖子技术交流站 15:21:45 17:27:16 2小时5分钟 数据包全部丢弃 软件故障
比尔盖子技术交流站 14:51:43 14:56:00 4分钟 无法连接服务器 网络故障
2011-08-27
比尔盖子技术交流站 07:03:50 07:35:56 32分钟 无法连接服务器 网络故障
2011-08-21
比尔盖子技术交流站 01:58:40 01:59:41 1分钟 无法连接服务器 网络故障
2011-07-29
比尔盖子技术交流站 16:11:48 16:28:50 17分钟 请求超时 网络故障

100%恢复——Linux系统下使用 TestDisk & PhotoRec 数据恢复

今天,有一个朋友向我抱怨,她将相机SD卡中的文件复制到电脑时,突然发现SD卡中的照片全都不见了,只剩下区区几张照片。便问我能否进行数据恢复。经过询问,得知她在发现文件丢失后,没有继续修改SD卡中的文件。看来她这点常识还是有的。

比尔盖子链接:如果数据丢失后,继续修改文件,那么后来修改的文件就可能覆盖先前的文件,导致无法进行数据恢复。因此当发生数据丢失时,如果文件存在电脑中,应立即关机,停止一切操作;如果存在可移动设备中,应使用“安全删除硬件”,然后将它拔出电脑。

于是,她将SD卡交给了我。回到家,我打开电脑,准备进行数据恢复工程。由于比尔盖子以Fedora为主要的操作系统,因此开始寻找Linux下的数据恢复软件,发现果然有一款专门恢复照片的免费软件,便把它下载下来,正式开始恢复。

TestDisk & PhotoRecCGSecurity 出品的自由数据恢复工具,可以运行在 Unix(Solaris/BSD/Linux) 和 DOS/Windows  平台上,支持 FAT/ext2/ext3/ext4/exFAT/NTFS/HFS+ 文件系统。TestDisk 恢复分区损坏造成的数据丢失;PhotoRec 恢复文件系统级别损坏造成的数据丢失(注意,PhotoRec 不仅仅可以恢复照片)。实在是不可多得的好工具。

正式恢复

保护数据

最好将SD卡写保护。

为了避免SD卡中的数据在恢复过程中丢失,因此最好将SD卡写保护。如何做到呢?太简单了,将SD卡上的小开关按照LOCK的箭头方向移动就行了。

了解情况

 

 

之后,比尔盖子将这张SD卡放入读卡器,得知这张SD卡是FAT32文件系统,并且如图所示,大多数照片全部丢失,只剩下几张。

开始恢复

首先,将下载的testdisk-6.12解压到主文件夹。然后,打开一个终端窗口,输入命令

su

然后提供root的密码(数据恢复需要root权限)

接着,使用cd切换到testdisk-6.12文件夹。这个文件夹中有两个程序,一个是photorec_static;另一个是scandisk_static。由于我们这次恢复的数据是照片,因此输入:

./photorec_static

来运行数据恢复程序。

接下来的操作中,使用回车来确定,使用q来返回上一步。
首先需要选择丢失数据的分区,如图1.1,选择完后确认。然后需要选择这个设备的分区表类型,如果这是一块移动硬盘,一般选择Intel。如果这是一个移动设备,只有一个分区,选择None,如图1.2。

图1.1 选择要恢复数据的设备

图1.2 选择分区表类型

 

如图1.3,在选择完分区表类型后确认,然后选择数据所在的分区。如果这是一块移动硬盘,那么选择你需要恢复数据的分区;如果这是一个移动设备,那么不要选择Unknown,选择第二个分区。

选择完分区后,程序会询问你分区的文件系统。如图1.4。如果你的文件系统是Linux下常用的ext系列,比如ext2、ext3、ext4,那么选择第一项;如果不是ext系列的文件系统,一律选择第二项,选择完后确定。

图1.3 选择分区类型

图1.4 选择文件系统类型

之后,将选择文件的扫描方式,正如图1.5。第一项“FREE”只会扫描文件的剩余空间,速度比较快,但是不一定能扫描到所有丢失的数据;第二项WHOLE会扫描整个文件系统,速度比较慢,如果是一块移动硬盘,将会花费很长时间。因此,比尔盖子建议:先试一试FREE,如果丢失的文件没有恢复成功,再使用WHOLE。由于比尔盖子之前使用FREE没有成功恢复任何数据,因此在这里选择了WHOLE。

接下来,选择恢复出来的文件,保存的位置,正如图1.6所示。使用回车来进入一个文件夹,上下左右来移动,按键盘上的C来确定,有一个名字是”.”(不包括引号)的文件夹,可以返回上一层。
比尔盖子建好了一个recvering的文件夹,于是使用回车来进入这个文件夹,然后按C确定。

图1.5 选择丢失数据的扫描方式

图1.6 选择恢复之后文件的保存路径

激动人心的时刻终于到了!数据恢复开始了,程序会自动估算需要的大致时间,还能显示出恢复了多少文件,如图1.8。
另外,数据恢复过程完毕之后,程序也会有相关提示,比尔盖子没有截图,到那时候反复使用Q来退出,然后去你选择的文件夹里看看,你删除的文件是不是都在哪里?

我成功从朋友的SD卡中恢复了390多张无缘无故消失了的照片,数据恢复取得全面成功,如图1.9!

 

图1.8 数据恢复正在进行

图1.9 恢复出来的照片

收尾

如果一切都成功了,那么,别忘了将SD卡上的开关解除,这样日后在能往里面存文件。
如果你没有恢复成功,而且你丢失的是重要文件,那么只能去找数据恢复公司了!

 

Kernel.org恢复运行

今天,经过一个月的全力抢修,Kernel.org终于恢复正常运行。
不过,由于其源代码检查工作还没有完成,因此无法通过Kernel.org下载Linux内核的源代码。

另外戏剧性的事情是,今天正好是林纳斯·托瓦兹,在芬兰公开发布首个版本Linux内核 Linux-0.02的纪念日,在此表示纪念。

服务器因不明原因宕机2次,共计9小时

昨天下午,监控宝提示我网站出现异常,我以为是网络问题,便没有理会。几个小时后,Linode的监控系统发来警报,说我的CPU使用率平均值已是400%,并且已经持续了两个小时。

我登陆Linode管理面板,打开它的应急终端,发现上面显示出一堆dump日志,原来内核崩溃了,我就重启了一下,没想到今天早上起来又是这种情况,这到底是什么情况呢?

成功在Fedora 15的Linux系统下安装TP-Link TL-WN721N USB无线网卡驱动

新买了一个无线网卡,是USB接口的。型号为TP-Link TL-WN721N。
在Win7下使用此网卡时,只需安装附带光盘中的驱动即可。对于在Fedora 15上是否能即插即用,不编译驱动,比尔盖子还是很有信心的,因为比尔盖子的整个系统是刚刚yum update过的。但是当比尔盖子切换到Fedora 15的时候,悲剧的事请还是发生了:不认网卡!

首先,我用

lsusb

发现系统可以识别这个网卡。但是,就是没有将其成功驱动起来。本来想按照一篇文章编译驱动,结果发现驱动源代码在kernel.org上,但是众所周知:kernel.org挂了

天啊,上天就对我那么不好吗?绝望的看了看dmesg,惊讶的发现我这个网卡能被识别,系统也在试图加载驱动,就像这样:

 usb 2-1.1: ath9k_htc: Transferred FW: htc_9271.fw, size: 51272

然后又发现错误信息:

[ 5.330646] ath9k_htc 2-1.1:1.0: ath9k_htc: FW Version: 1.0
[ 5.330652] ath9k_htc 2-1.1:1.0: ath9k_htc: Please upgrade to FW version 1.3
[ 5.331277] Failed to initialize the device
[ 5.340283] ath9k_htc: probe of 2-1.1:1.0 failed with error -22

原来驱动是正常的,只是firmware太旧了,下载了一个新的firmware:
http://115.com/file/e652hyq6#
http://linuxwireless.org/download/htc_fw/1.3/htc_9271.fw

然后用它来替换系统中的 /lib/firmware/htc_9271.fw,重启一下,世界美好了。

版权所有 © 2025 比尔盖子 博客

主题设计 Anders Noren返回顶部 ↑