LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1547|回复: 3

认不到新硬盘-初步确定是2.6.18内核bug--<升级到2.6.24内核解决>

[复制链接]
发表于 2008-4-11 22:55:53 | 显示全部楼层 |阅读模式
今天买了新硬盘
1. 从光盘启动,用Pqmagic 把硬盘分了2个区,格式化为 FAT32

2. 进XP系统,可以看到新分区,可以读写

3. 进DEBIAN, root登录后, fdisk -l 显示只有原来的 sda,sdb,没有新增加的硬盘

4、系统内核是2.6.18

5、已有的一个SATA硬盘是日立的7K250,当初安装的时候可以直接认到

6、新加的硬盘是希捷的7200.11,在BIOS里面可以认到

7. 接上2个硬盘,尝试用debian光盘启动, 再次安装, 在分区那步,也没有新的SATA硬盘, 旧的日立那个硬盘就有

初步确定原因了,是2.6内核的bug,内核无法识别第二个SATA控制器

1、单独把新硬盘接到SATA1接口,光盘启动,在分区那一步可以认到硬盘
2、单独把新硬盘接到SATA2 /3/4口,光盘启动,都认不到硬盘了

GOOGLE搜索,发现有2个帖子症状一模一样,提到2.4内核的时候,双SATA正常工作,升级到2.6内核后就只找到一个硬盘
One Sata Drive Works, Can't Mount The Second One.
http://suseforums.net/lofiversion/index.php/t28373.html
Finding my second hard drive
https://answers.launchpad.net/ubuntu/+question/14678
 楼主| 发表于 2008-4-11 23:45:21 | 显示全部楼层
这下没办法了
回复 支持 反对

使用道具 举报

发表于 2008-4-12 00:16:23 | 显示全部楼层
貌似内核里没有新硬盘的驱动。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-13 10:34:10 | 显示全部楼层
解决了,在google上搜索到一个帖子,好多人说升级到2.6.20内核后,就修正了这个bug了.

所以解决方法就是升级内核到当前最新的2.6.24.1.

apt-get install linux-image-2.6.24.1-486 这个方法不成功, 升级后重启总是找不到init, 可是已经安装了mkinitramfs 了, /boot 目录下也有initrd.img.2.6.24.1-486 这个文件了,不知道为什么老说找不到.

最后编译新内核成功,参照帖子
Sarge 下一步一步编译 Debian 内核
http://www.linuxsir.cn/bbs/thread284609.html
etch下一步一步编译内核
http://www.linuxsir.cn/bbs/showt ... %E6%A0%B8+%E6%A0%B8
值得注意的几点如下
1. 要安装完备必要的软件包
在Debian系统中编译Linux内核需要安装的软件包
http://www.linuxsir.cn/bbs/showt ... +%E5%AE%89%E8%A3%85
2. 要安装一个inid生成软件,有yard,mkinitramfs等,这里选择了后者
sudo apt-get install mkinitramfs
由于我对硬件不是很熟悉,所以还是选择生成inid,而不是把硬件都编译进内核
3. 内核没有从kernel.org网站上下载,用source.list源里面下载的
sudo apt-get source linux-image-2.6.24.1-486
速度很快
4. 重要:关于SATA驱动
要首先 运行 lspci  命令,察看知道SATA控制器的型号是
IDE interface: nVidia Corporation MCP65 SATA Controller
然后在menuconfig 那一步, Device Derive--Serial ATA and Parallel ATA drivers先勾选
再进去Serial ATA and Parallel ATA drivers下一层,勾选NVIDIA SATA support 和AHCI sata support ,即把自己主板的SATA控制器驱动编译进内核
5. 编译完成,dpkg -i xxx.deb后,重启 ,发现了硬盘了,但是sda/sdb/sdc 次序变了.
首先在启动的时候grub 菜单上按e,修改 root=/dev/sda2  (2.6.18内核是sdb2),启动到控制台下, 运行sudo fdisk -l 察看硬盘编号,再修改 /etc/fstab 到新的硬盘编号,重启,搞定

结果:
1. 编译的内核启动快了点点
2. 2个SATA硬盘都找到了可以用了

不对的地方请多多指教,是应用级别,都是搜索后的经验之谈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表