分类: '故障分析' 的归档
grub故障一例
昨天,心血来潮进了一下许久没有使用过的ubuntu,然后顺手给它升级了一下,发现这个把月已经有200多M的更新了,其中也包括内核在内。
于是开开心心地dist-upgrade完了,也没啥异常。但是到了昨晚,再开机的时候,发现机器没有正常显示grub菜单,而是直接进入了GRUB>这样的命令行。幸好我还记得几个grub的命令,瞎蒙地还算是启动了我的gentoo,然后上网一google,发现这个问题和我之前把文件系统全面升级到ext4有关:在升级了文件系统以后,再升级内核的话,就会导致grub找不到某些文件而无法正常工作。
解决办法就是在gentoo里chroot到ubuntu的/分区(因为我的grub是在ubuntu下安装的),然后执行:
grub-install --recheck /dev/sda
如果没报什么错误的话,那恭喜你,你的grub又回来了。
当然,有人会问:如果我硬盘上没有gentoo或者记不住grub命令无法启动的话,怎么办呢?其实很简单,你只要随便找个linux的LiveCD,或者U盘系统之类的,启动以后,就一样可以chroot了。
哈哈,linux很灵活,所以基本是不死的(当然你要对它有足够了解才行)~
lafilefixer
前几天,对gentoo进行常规升级的时候,就有个别包没有编译过去,这对gentoo来说本不算什么的(谁让咱用的是 ~x86 呢),也就没太在意,但是近来越来越多的不同的包都出现了同一个错误:
报缺少 /usr/lib/libGL.la 文件,revdep-rebuild 也不能解决问题,甚至 revdep-rebuild 的过程中也有这个错误。
于是到sir里搜了一下,发现已经有人问过了,也得到了解决。
解决办法就是装上 lafilefixer ,运行一下
lafilefixer --justfixit其实,la文件本身就是一个记录同名动态库或者静态库文件信息的一个文本文件。而lafilefixer也仅仅是一个bash脚本,它把需要更新的la文件都重写了一遍,哈哈。
Gentoo换了profile以后,鼠标键盘不能动的解决办法
Gentoo 10.0 的profile出来已经蛮久了,但是我一直都没换,直到昨天才设置成了 default/linux/x86/10.0/desktop ,结果一大堆包需要重新编译了(呃。。好吧,其实我本来就有好几天没更新系统了。。)。
编译完重启就发现问题了:启动到gdm以后,鼠标键盘都动不了了,按什么键都无效,输不了用户名了,包括ctrl+alt+F1都不管用了,但是触摸板却是有效的。
第一个想到的 qlist -I -C x11-drivers/ 里面的几个包重新编译一下,发现无效;然后看elogv,发现hal说要把xorg.conf里的input相关的都删掉,试了也无效。
最后的解决办法是:在 /etc/make.conf 的 INPUT_DEVICES= 里加上 evdev ,然后安装 x11-drivers/xf86-input-evdev 这个包。
使用了ecryptfs的情况下,ssh的publickey登陆无效的解决办法
eCryptfs – Enterprise Cryptographic Filesystem 是linux下一个企业级的磁盘加密系统。
使用这个系统,可以使得用户的文件只有在用户登陆以后才是可见的,这样,即使你的硬盘被人偷走了,只要的你的密码足够安全不被破解,人家也无法读取你的私人文件(CGX真该用这个啊)。
目前,ubuntu 9.04 server 在安装时,已经可以选择用eCryptfs来加密用户的家目录了。
今天我装服务器的时候,觉得这个挺好玩的,就顺便启用了,却导致了一点点小问题,如下:
我在装好服务器openssh-server以后,很自然就把我的公钥复制到服务器上,来减少我输入密码的麻烦。没想到,登出了以后,再登进来时,原本应该不用密码的,却还提示我输入密码。后来还发现,只要有一个用密码登陆成功了以后,其他termianl再登陆的时候,就是正常的。于是想到可能就是 eCryptfs 搞的鬼,放google一搜,果然是的,已经有先例了。
那bug里解决办法也有了,我再贴一下:
方法一:
$ /sbin/umount.ecryptfs_private $ cd $HOME $ chmod 700 . $ mkdir -m 700 .ssh $ chmod 500 . $ echo $YOUR_REAL_PUBLIC_KEY > .ssh/authorized_keys $ /sbin/mount.ecryptfs_private
这样就可以把你的公钥加到服务器的还未解锁的家目录下了。ssh的鉴权自然也可以顺利通过了。
方法二:
修改服务器的 /etc/ssh/sshd_config 把authorized_keys放到用户家目录以外的地方,以避开此问题。
例如加上:
AuthorizedKeysFile /etc/.ssh/%u/authorized_keys
延伸阅读:另一起SSH服务器端不认RSA公钥的故障
GRUB故障一例
今天一早,MM就打电话来说,她的电脑启动不了了,开机只显示一个GRUB…
当时由于各自在公司,不好处理,于是她先用ubuntu liveCD撑着,下班了,把电脑背了回来~
我打开一看,乖乖,果然只有一个”GRUB “,注意不是”GRUB> “后面跟一个闪动的光标,而是纯粹的GRUB空格后一个不会闪的光标,按任何键都没有用了.
故障肯定是MBR被破坏了,也不知道是不是windows下的病毒干的…
由于这电脑装的是原装的ubuntu+XP,恢复分区也已经在装XP时被我干掉了.之前备份的MBR也不知道去哪了…于是首先尝试用liveCD恢复grub.然而,可能由于之前装的grub2,jaunty liveCD里的grub仍然是老的,所以 grub-install 一直都没能成功.
后来我是在liveCD里这么做才成功的:
sudo mkdir /mnt/sda3 sudo mount /dev/sda3 /mnt/sda3 sudo mount -t proc none /mnt/sda3/proc sudo mount -o bind /dev /mnt/sda3/dev sudo chroot /mnt/sda3 /bin/bash sudo grub-install /dev/sda3 sudo update-grub
这个故事告诉我们,有时候用liveCD修改MBR不成功的话,可以chroot用原来的grub的可执行文件进行修复,成功的概率会高很多~
终于在开源驱动下开起了compiz
写之前那篇blog的时候,我还是刚用上开源驱动.但是怎么试性能都上不去:
xorg.conf 也改了很多次,把 /etc/make.conf 里的 VIDEO_CARDS 改成 radeon 和 radeonhd 都试过,mesa xorg-server也来回编译过好几次,包括1.6的xorg-server,但是 glxgears 始终只有100FPS左右(fglrx的时候可以到2500+).而且,更可恶的是开compiz不是没边框就是直接白屏…
后来,查看 Xorg.0.log ,发现里面有这么几行:
drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is -1, (No such device or address) drmOpenDevice: open result is -1, (No such device or address) drmOpenDevice: Open failed [drm] failed to load kernel module "radeon" (EE) RADEON(0): [dri] RADEONDRIGetVersion failed to open the DRM [dri] Disabling DRI.
这种/dev/xxx的东西,马上就想到了是内核的原因,后面wd告诉我说要打开这个内核选项: Device Drivers -> Graphics support -> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) 并选中下面的A卡模块.
马上重新编译了内核,再启动,果然那几行错误没有了, glxgears 已经到 1100FPS 以上了.开compiz也正常了,整体感觉还是比较流畅的.
先就这样用着吧,不折腾了~目前我的情况是:
Mobility Radeon X1700 (RV535) VIDEO_CARDS="radeonhd" sys-kernel/gentoo-sources-2.6.30-r1 media-libs/mesa-7.4.2 x11-base/xorg-server-1.6.1.901-r3 x11-drivers/xf86-video-radeonhd-1.2.5 x11-wm/compiz-0.8.2-r2
gentoo升级后的若干问题
半个月前的某一天,我正在对gentoo进行常规更新的时候,记得当时emerge到了wine,突然屏幕一黑,机器就保护性关机了…用手一摸CPU附近,那是相当地热…
于是,最近一段时间都没有升级过gentoo.
直到后来,我把本本后盖打开,清理了一下里面的灰尘.听风扇的噪音,明显比之前小了很多了,温度也没那么夸张了.于是又开始升级了,一看已经积累了108个包要编译了.这还是我mask掉新内核的结果.
编译之后,nautilus 到了2.26.3,晚上下班后,重启进系统,就发现不对劲了,一堆的窗口把窗口列表塞满了… 后来经过试验发现,只要我一把 /apps/nautilus/preferences/show_desktop 这个勾去掉,就会启动N多个nautilus的窗口,下面的窗口列表里瞬间被挤满了..并且还在不断增加,直到内存耗尽…
问了keke他的情况刚好和我相反,是勾上那个勾勾才会出问题…这个估计是nautilus的bug了,没时间深究,等上头更新了,现在就先看着本不想看到的桌面吧…
还有一个好玩的问题,就是我的音量调节的图标没了,之前还以为是 gnome-volume-manager 这个包的问题,后来TX提醒我才想起这个volume是卷(磁盘分区)的意思,和音量根本没关系,汗了…这算不算英文词汇的匮乏呢?
其实,那个音量调节的applet是在 gnome-base/gnome-applets 里面的.重新编译了一下,又可以用了.而且,那调音量的滚动条变横着了…我怎么觉得还是没竖的好看呢?
====20090630更新====
nautilus疯狂打开窗口的问题终于好了…难道是昨天编译了gnome-base/gnome-session-2.26.1-r1的原因?不管怎么样,我的桌面总算又干净了~
DELL A840上的ubuntu
前天MM公司善心突发,给她们每人配了台本本,于是MM到手一台基本上是DELL里面价位最低的A840,打开一看,预装的是ubuntu 8.04,哈哈,这下好玩了…
默认的系统东西装得也蛮全的了,而且硬件驱动自然是很完美.无线,compiz之类的都没问题.
于是把一堆不需要的语言包卸载以后,就开始升级,升到hardy的最新内核,问题却出现了: 无线用不了了,声音也有问题…
搜索一下,发现这个版本的内核好像对它的硬件支持不太好,后来也证实了这点,从8.04的光盘启动,居然会出现busybox,这还是预装ubuntu的电脑呢!唉.
然后说升级到8.10会好,于是就升级,也出现了一些小问题,是 xulrunner 需要的几个库文件不存在,看了一下,只是少几个符号链接,补上后,顺利升级成功了.发现声音好了,无线还是不行,搜索了无线网卡的型号: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter 发现要安装一个 linux-backports-modules-intrepid 的包,装上重启,无线也正常了,至此硬件驱动基本恢复到完美的水平…
找到了访问code.google.com时断时续的原因
最近几天,我这边访问code.google.com都是时断时续,搞的我很郁闷。
今天研究了一下了,发现 ping code.google.com 也是时断时续,而且不通的时候,返回的IP都是 72.14.203.* ,而通的时候,IP都不是这个段的,可能是 209.85.175.100 这样的一个IP。
所以原因很明显了,要么是在DNS环节被动了手脚,要么是 及.艾服.达不留 封了部分IP(话说2会期间抓得紧,盾牌升级出点小错也是情有可原的)。
但是,咱天朝的网络一向都是自由、顺畅的啊,所以不禁怀疑起自己的RP了。。。
没办法,RP不行就只能靠JP了,
echo "209.85.175.100 code.google.com" | sudo tee -a /etc/hosts
搞定。
=====20090624 update=====
现在上面这个IP也不行了,要用 72.14.203.102 这个IP了.
终于用上了9.1的官方A卡驱动
经过好几天的折磨(详情可以看这里),总算成功用上了新的A卡驱动。
之前一直是用的8.552的驱动,可以开compiz,但是mplayer用xv不行,开个 googleearth也闪得厉害。
也曾经升级到 8.561 ,就已经发现了问题,当时是开了gdm的,开机以后,出来gdm的界面,但是都来不及输入用户名和密码就黑掉了,过一会儿又会显示gdm,又挂掉,如此反复,6次以后会出来提示说挂了6次,不启动了。那时候觉得 8.561和8.552差不多,就mask了8.561的版本,回退到8.552了,也正常了。
但是最近这个8.573据说是解决了闪的问题,更新蛮大的,所以又想升级,但是还是和8.561一样的错误,一到gdm就崩溃。连续重启动。
然后经过千辛万苦,终于发现是 /etc/X11/xorg.conf 的 Section “Device” 一段里面的 Option “TexturedXRender” “on” 引起的错误。把这行注释以后,就整个都好了。哈哈。但是说来也怪,这个配置文件是ubuntu生成的,在ubuntu下运行没问题,在gentoo的8.552版本驱动下也没问题的啊。。。
还有,就是为什么我开了compiz以后,google-earth还是会闪呢?貌似没有多大的提高啊。。。谁能告诉我还需要如何配置吗?