LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: goldeagle

kernel 2.6.0 编译方法(给新手)

[复制链接]
发表于 2004-1-21 15:17:28 | 显示全部楼层

我该怎么做??

编译方法中写到:如果重新启动后出现 kernel panic 错误或者显示应该修改 init 信息,则基本都是 kernel 语句错误。
应该如何处理?
我在编译2.6以后重启
出现以下消息,然后停止不动了,我该怎么办?
Mounting root filesystem
mount:error 19 mounting ext3
Pivotroot:pivot_root(/sysroot,/sysroot/initrd)failed:2
Umount /initrd/proc failed:2
freeing unused kernel memory:232k freed
Kernel panic:No init found.Try passing init=option to kelnel.
发表于 2004-1-21 21:30:21 | 显示全部楼层

回复: 我该怎么做??

最初由 yves 发表
编译方法中写到:如果重新启动后出现 kernel panic 错误或者显示应该修改 init 信息,则基本都是 kernel 语句错误。
应该如何处理?
我在编译2.6以后重启
出现以下消息,然后停止不动了,我该怎么办?
Mounting root filesystem
mount:error 19 mounting ext3
Pivotroot:pivot_root(/sysroot,/sysroot/initrd)failed:2
Umount /initrd/proc failed:2
freeing unused kernel memory:232k freed
Kernel panic:No init found.Try passing init=option to kelnel.


You must build ext3 filesystem into kernel but not modules.
发表于 2004-1-31 17:29:17 | 显示全部楼层

楼主,新问题!

ls /boot后是有两个文件,我想问一下,vmlinuz.2.6.0是什默类型的文件,是可执行文件吗?我也出现kernel panic错误!
发表于 2004-2-1 01:02:12 | 显示全部楼层

回复: 楼主,新问题!

最初由 zhawuxi 发表
ls /boot后是有两个文件,我想问一下,vmlinuz.2.6.0是什默类型的文件,是可执行文件吗?我也出现kernel panic错误!


vmlinuz是压缩的内核二进制可执行文件
ls -F /boot

通常ext3编译成模块而又没有配置好modprobe.conf正常加载的话,就会出现kernel panic的错误,最好还是把主要的几个文件系统编译进内核。

还有出现init字眼,另外一种可能是找不到根分区/,看看root=<根分区>的参数有没有设置好。
发表于 2004-2-1 17:24:51 | 显示全部楼层
[root@zjnx linux-2.6.1]# make install
  HOSTCC  scripts/modpost.o
  HOSTLD  scripts/modpost
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
  CHK     include/linux/compile.h
Kernel: arch/i386/boot/bzImage is ready
sh /usr/src/linux-2.6.1/arch/i386/boot/install.sh 2.6.1 arch/i386/boot/bzImage System.map ""
/lib/modules/2.6.1 is not a directory.
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2
这是什么原因啊?
发表于 2004-2-1 21:49:04 | 显示全部楼层
最初由 再见理想 发表
[root@zjnx linux-2.6.1]# make install
  HOSTCC  scripts/modpost.o
  HOSTLD  scripts/modpost
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
  CHK     include/linux/compile.h
Kernel: arch/i386/boot/bzImage is ready
sh /usr/src/linux-2.6.1/arch/i386/boot/install.sh 2.6.1 arch/i386/boot/bzImage System.map ""
/lib/modules/2.6.1 is not a directory.
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2
这是什么原因啊?

一般不用手工建立/lib/modules/2.6.1的。
如果你编译了模块,make install之前必须要make moudules_install,要不干脆make modules_install install。
发表于 2004-2-2 16:55:30 | 显示全部楼层

还是出错?

kernel panic : no init found ,try passing init = option to kernel
我修改了grub.conf的root都不行啊?
我是这样装的,我装在hdc上的,我怎样设置啊?
 楼主| 发表于 2004-2-2 17:52:31 | 显示全部楼层
root=/dev/hdc(n)
例如 root=/dev/hdc3
发表于 2004-2-3 11:33:43 | 显示全部楼层

谢谢楼主,但还是不行?

n是指hdc的第一个扩展分区,是吗?
"通常ext3编译成模块而又没有配置好modprobe.conf正常加载的话,就会出现kernel panic的错误,最好还是把主要的几个文件系统编译进内核。":这句话应该怎么去做?
发表于 2004-2-3 12:20:49 | 显示全部楼层

回复: 谢谢楼主,但还是不行?

最初由 zhawuxi 发表
n是指hdc的第一个扩展分区,是吗?
"通常ext3编译成模块而又没有配置好modprobe.conf正常加载的话,就会出现kernel panic的错误,最好还是把主要的几个文件系统编译进内核。":这句话应该怎么去做?


具体原理我还说不清楚,不过依据我的经验,出现kernel panic的原因有二。
一是通用的ext2,ext3,ramfs文件系统没有在配置内核make menuconfig时选择编译进内核;二是新内核在挂载/proc方面和fedora启动脚本的冲突,造成LABEL=/不能在/etc/fstab中使用,这时要改成设备名/dev/hdaX(X是你的根分区在Linux中的编号)。
其实最好还是用自己的lfs来试验新内核,这样很多奇怪的问题都可以避免。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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