免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1155 | 回复: 4
打印 上一主题 下一主题

HP LH3000服务器安装Redhat9正常,安装/升级新版本就出错。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-22 14:40 |只看该作者 |倒序浏览
HP LH3000服务器,PIII 1G*2,512MB*2,Serverworks芯片组,Intel82557/8/9网卡,AIC 7880 U+HP NET RAID 6块硬盘做RAID 5+HSP。安装FC4/DEBIAN/CENTOS4出错,都是在装载SCSI/RAID驱动的时候无法进行。安装了Win 2003  server,正常,再安装FC 5,还是停在加载SCSI的时候。安装Redhat 9正常(2.4.20),速度也很快,一点错误没有。运行正常,然后尝试安装yum,再用yum升级到CentOS 4,不行,单独升级kernel和kernel-SMP(2.6.9)基本正常。升级yum正常,但是再运行yum出错,重启机器后默认新内核无法启动,停在加载SCSI的地方,重启仍然用rh9启动,可以启动,再运行yum出错,后来发现网卡也没有工作,重启网卡,提示可能没有这个设备,Fail!

为什么老版本的可以安装,新版本的反而无法安装了?
为什么网卡突然无法工作了?
有没有办法升级啊?

谢谢先!

论坛徽章:
0
2 [报告]
发表于 2006-03-28 08:21 |只看该作者
可能主要是阵列卡的驱动问题,哪位熟悉的介绍一下,能否把rh9的驱动拷贝过去给新版的用?

论坛徽章:
0
3 [报告]
发表于 2006-03-28 17:03 |只看该作者
upgrade kernel之后,不要reboot,重新作initrd

论坛徽章:
0
4 [报告]
发表于 2006-03-28 21:55 |只看该作者
原帖由 nntp 于 2006-3-28 17:03 发表
upgrade kernel之后,不要reboot,重新作initrd


这个要如何做?做了之后替代原来的?

论坛徽章:
0
5 [报告]
发表于 2006-03-28 22:16 |只看该作者
从网上找到的资料,请楼上的大虾指点一下

initrd

上面已经提到,Ramdisk需要先格式化然后理能使用。那么,如果核心希望使用ramdisk该如何做呢?于是initrd产生了,initrd全称是 initial RAM disk ,它提供一种让核心可以简单使用Ramdisk的能力,简单的说,这些能力包括:

   1.      格式化一个 Ramdisk;
   2.      加载文件系统内容到Ramdisk;
   3.      将Ramdisk作为根文件系统;

我们可以将initrd形像的比作Norton Ghost备份的硬盘分区,而Linux启动阶段的Ramdisk相当于一个未格式化的硬盘分区,核心可以直接将initrd的内容释放到一个未初始化的 Ramdisk里,这个过程与Ghost恢复一个分区的过程十分相似。于是,相应的内容被加载到相应的Ramdisk中,同时,这个Ramdisk也被格式化成某种由initrd格式所表达的分区格式。

initrd与Ghost备份的分区有许多相似之处,例如,它有一定的大小,包含分区上的文件系统格式等。initrd支持的格式包括:

    *      Ext2文件系统;
    *      Romfs文件系统;
    *      cramfs文件系统;
    *      minix文件系统;

如果核心选择了Gzip支持(通常这是默认的,在init/do_mounts_rd.c中定义的BUILD_CRAMDISK宏)还可以使用Gzip压缩的initrd。相关的代码可以在核心源码 drivers/block/rd.c:identify_ramdisk_image 中找到。
制作initrd

制作initrd传统的作法是通过软盘(显然过时了,不介绍了)、ramdisk或loop设备(/dev/loop)。通过ramdisk来制作的方法比较简单(以ext2文件系统为例):

redice # mkfs.ext2 /dev/ram0
redice # mount /dev/ram0 /mnt/rd
redice # cp _what_you_like_  /mnt/rd    # 把需要的文件复制过去
redice # dd if=/dev/ram0 of=/tmp/initrd
redice # gzip -9 /tmp/initrd

这个过程也最能够解释initrd的本质,对于Linux来说,Ramdisk的一个块设备,而initrd是这个块设备上所有内容的“克隆”(由命令dd来完成)而生成的文件。核心中加载initrd相关的代码则用于完成将相反的过程,即将这一个文件恢复到Ramdisk中去。

通过loop设备来制作initrd的过程:

redice # dd if=/dev/zero of=/tmp/initrd bs=1024 count=4096 # 制作一个4M的空白文件
redice # losetup /dev/loop0 /tmp/initrd                    # 映射到loop设备上;
redice # mkfs.ext2 /dev/loop0                              # 创建文件系统;
redice # mount /dev/loop0 /mnt/rd
redice # cp _what_you_like_ /mnt/rd                        # 复制需要的文件;
redice # umount /mnt/rd
redice # losetup -d /dev/loop0
redice # gzip -9 /tmp/initrd

不过,现在已经有了一些更好的工具来完成这些工作,包括genromfs(uClinux里常用的工具),genext2fs,mkcramfs 等。这些工具提供了一些方便开发的新特性,例如,不需要上面烦索的过程,只要将文件复制到某个目录中,将其作为根目录,即可生成initrd;另一个重要的改进是,这些工具都可以以普通用户的身份来生成initrd。

未完,待续…(补充有关如何加载|ARM中如何使用initrd作为根文件系统等)
链接和参考文档
文档

    *      Linux文档中关于ramdisk的介绍,核心目录里 Documentation/ramdisk.txt;
    *      Linux文档中关于initrd的介绍,核心目录 Documentation/initrd.txt;
    *      Linux文档中关于tmpfs的介绍,核心目录 Documentation/filesystems/tmpfs.txt;
    *      How to use a Ramdisk for Linux;
资源

    *      genromfs - genromfs is a space-efficient, small, read-only filesystem originally for Linux and used by some Linux based projects.
    *      genext2fs - Simply, it generates an ext2 filesystem as a normal (i.e. non-root) user. It doesn't require you to mount the image file to copy files on it. It doesn't even require you to be the superuser to make device nodes or set group/user ids.
    *      cramfs - cramfs is a Linux filesystem designed to be simple, small, and to compress things well. It is used on a number of embedded systems and small devices.

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=596381
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP