no suitable drive was found in the geneated device

今天早上在上课的时候,有同事跟我说他怎么就是不能重新安排grub,我问他报什么错误,他就是不说,然后我就只好自己测试了。果然,在进入rescue模式之后,一旦用grub-install来安装grub,只是提示这个错误:

No suitable drive was found in the generated device map

一查看/boot/grub/device.map,发现上面居然只有一行:

(fd0) /dev/fd0

居然连硬盘都没有添加上去,当然安装不成功了。。。
于是,在这个文件里面加上

(hd0) /dev/sda

然后再运行grub-install,果然就可以安装了。

PS:最后还有一个小问题,在grub.conf配置与fstab配置正确的情况下,系统启动还是报kernel panic,最后重装了内核才搞定。估计这位仁兄是在安装grub之前就装了内核,结果还是device map不正确导致的问题

使用cpio解压initrd.img[转]

2.6内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需要使用gunzip解压缩,然后再使用cpio解包

cp /boot/initrd-2.6.18-8.1.15.el5.img initrd.img.gz
gunzip initrd.img.gz
mkdir initrd
mv initrd.img initrd
cd initrd
cpio -ivmd < initrd.img

通过以上命令就将initrd.img解压了,现在就可以对其进行编辑,完成后使用以下命令重新压制

find . | cpio -cv > ../initrd.new.img
gzip ../initrd.new.img

再将其改名拷贝至/boot目录,重启就可以观察修改后的效果

IBM Linux社区的一篇强贴http://www.ibm.com/developerworks/cn/linux/l-k26initrd/

还有另外一篇,可以参考(里面的那个脚本现在好像已经不能用了)
http://www.ibm.com/developerworks/cn/linux/l-linux-netinst/index.html

本文来源:http://www.wardking.com/blog/read.php/250.htm

Linux为什么会死机?[转]

来源:http://linux.chinaunix.net/bbs/viewthread.php?tid=1022205

有人碰到Linux死机就头大。我把我的经验给大家共享一下,以期抛砖引玉。
在排除了硬件故障/firmware版本/BIOS等等问题之外, Linux死机通常可能碰到如下几种情况

1, 如果你的Linux死机的时候控制台上有乱七八糟的字符。恭喜你,这种情况叫做oops. 通常是Linux kernel认为自己发生了异常造成的。
可以通过oops消息查找出错的地方。

2, 如果你的机器僵死,那么问题麻烦了。这种时候,通常是Kernel出现了死锁。Kernel不会知道自己死锁了,所以不会在屏幕上显示任何咚咚。
如果运气好,此时Kernel也许可能能够响应中断。不管怎样,你都无法进一步操作了。

3, 严格来说,这第三种情况不算死机,现象如下:输入命令回车之后命令不能返回任何结果, 但是控制台对回车可能有相应。但是命令无法结束,也不会有输出结果。
但是可以换到下一个控制台, 而且还可以继续输入命令,但是输入命令之后还是没有输出。这种情况会有很多可能。通常是应用程序的系统调用长时间没有返回或者是满足不了应用的要求。

以上三种情况,system log的作用都不大。通常日志都不会纪录。所以只能使用Kernel的Debug工具。

不过Linus比较狠,人说Kernel不需要Debug工具。所以kernel.org中的代码是没有debug工具的。不过目前绝大多数发行版的kernel都带了debug工具,而且工具都不一样。

通常进行kernel debug都需要在出现故障的时候采集vmcore. 就是把故障发生的时memory dump出来。(还记得Windows 蓝屏的时候会出现1%-100%跳动的一个数字和c盘dump.sys文件, 这回知道干什么的了吧? ) 然后进行分析。也许你会担心Linux死机了,还怎么dump memory啊,这个不用担心,Kernel还是留了好几条路子。其中一个是NMI。

那么到底怎么dump memory呢? 这里用REDHAT为例,RHEL3,RHEL4中都使用了netdump作为采集工具,RHEL5使用kdump作为采集工具。

采集完毕就可以对vmcore进行分析,步骤就不细说了。可以参考如下文章:http://people.redhat.com/anderson/crash_whitepaper/

但是对于管理员来说,任何一个debug工具都需要代码开发的经历才能顺利使用。

最后说一句,最近在坛中看到有人看到死机就往应用程序上怀疑。这是很好的自我批评的精神,要大力发扬。

那么,脚本,应用程序会不会导致死机? 当然,但是问题还是出在Kernel上。就比如,应用程序写文件,系统可能会挂起在kernel中的文件系统代码上。

个人的一点经验供大家笑话。

Ubuntu Linux内核编译(linux-2.6.24)

文章声明:本文是写给那些没有内核编译经验的新人看的,高手老鸟也欢迎留下您的意见。

近来一直很忙,都没有怎么更新。3月以来,总共就更新了3篇。
今天早上突然感觉无所事事,刚好在CCF看到有关于内核编绎的帖子,说有多么多么麻烦
我以前没有做过,刚好今天可以试下

Read More »