+ -
当前位置:首页 → 问答吧 → 安装Gentoo出错,请大虾出手看看,可怜我的P3编译了2天2夜啊

安装Gentoo出错,请大虾出手看看,可怜我的P3编译了2天2夜啊

时间:2009-01-08

来源:互联网

下面是我的fstab和启动信息,启动到那里就停止了,只能强行关机。
上传的图像
fstab.jpg (40.3 KB, 75 次查看)
boot.jpg (66.3 KB, 94 次查看)

作者: Untitled   发布时间: 2009-01-08

我不知道,但是帮你顶一下

作者: hihi110   发布时间: 2009-01-08

用genkernel all再编次内核吧

作者: peter_l   发布时间: 2009-01-08

估计是内核的问题,可能有些模块选错了,我以前也碰到过这种情况,重新编了内核搞定的.

作者: feiyuw   发布时间: 2009-01-08

那我想办法贴出了我的内核编译的conf文件,我用make menuconfig / make modules_install编译的内核。P3/815E/i752的系统。

作者: Untitled   发布时间: 2009-01-08

用genkernel --menuconfig all 来编译 自己编译的话 除非你知道怎么选你的硬件

作者: yclwll   发布时间: 2009-01-08

贴个fdisk 的信息

作者: sheep204   发布时间: 2009-01-09

fdisk:

/dev/hda1 /boot reiserfs3.6
/dev/hda2 / reiserfs3.6
/dev/hda3 /usr reiserfs3.6
/dev/hda4 swap

作者: Untitled   发布时间: 2009-01-09

看样子像硬盘控制器的驱动有问题,留意内核选项scsi sata部分

作者: pxbfeiniao   发布时间: 2009-01-09

另外建议,楼主到archlinxu版,找人要个archlinux的内核,用来启动。(arch默认能产生一个fallback的initrd.img,里面集成了很多启动所需的模块)

作者: pxbfeiniao   发布时间: 2009-01-09

对内核不了解的话最好用genkernel

以后可以自己慢慢调整

一开始装系统的话还是稳定为主

作者: kimux   发布时间: 2009-01-09

你有用uvesafb嗎?我也是同样的错误就改用vesafb了。

后来我把uvesafb编成module,在开机后modprobe也有这个stack overflow的问题,但起码不会因为影响到重要的swapper而kernel panick。反正vesafb也用得很开心就没有心情去弄uvesafb了。

试试kernel parameter只用一个root=/dev/sd??看能不能开机。

作者: mathfeel   发布时间: 2009-01-09

重新编译内核之后已经可以启动,make menuconfig一个一个选项仔细对照了一遍。

作者: Untitled   发布时间: 2009-01-10

引用:
作者: pxbfeiniao
另外建议,楼主到archlinxu版,找人要个archlinux的内核,用来启动。(arch默认能产生一个fallback的initrd.img,里面集成了很多启动所需的模块)
arch的内核可以用,但是initrd不行,因为里面有arch的启动脚本,而没有gentoo的。

作者: coderoar   发布时间: 2009-01-10

引用:
作者: coderoar
arch的内核可以用,但是initrd不行,因为里面有arch的启动脚本,而没有gentoo的。
试了再说话!
你理解有误,initrd中的脚本只负责内核态的事物,一旦进入用户态,/sbin/init就接管了控制权。

作者: pxbfeiniao   发布时间: 2009-01-10

引用:
作者: pxbfeiniao
试了再说话!
试了,不行。

的确,在说话前我并没有尝试。但是,我知道那不行,因为我试着读过、改过genkernel和mkinitrdcpio的代码,起码知道initrd的大致结构。那么你呢?

引用:
作者: pxbfeiniao
initrd中的脚本只负责内核态的事物,一旦进入用户态,/sbin/init就接管了控制权。
看来是你理解有误,核心态是特权状态,只有操作系统(包括驱动程序)才能运行在核心态,使用CPU支持的特权指令,无限制地对系统存储、外部设备进行访问。

而用户态属于非特权状态。initrd里的程序一般包括一个init脚本、一个很小的shell(gentoo中是busybox,功能较强,arch里是基于klibc的"sh",只有几个命令)、以及像modprobe这样的必备工具。这些程序都是普通的程序,只能运行在用户态,不能使用特权指令,只能通过调用系统API来实现那些需要特权的功能。

这一部分启动的具体过程是:
1. 运行initrd上的init脚本,进行挂载根分区前的准备
2. 加载根分区,启动initrd上的基于klibc的kinit(Arch)或根分区上的/sbin/init(Gentoo)

此时,在Gentoo里就会显示
代码:
INIT: version *.** booting
而Arch里是
代码:
"Arch Linux\n"
printhl "${C_H2}http://www.archlinux.org"
printhl "Copyright 2002-2007 Judd Vinet"
printhl "Copyright 2007-2008 Aaron Griffin"
printhl "Distributed under the GNU General Public License (GPL)"

作者: coderoar   发布时间: 2009-01-10

那就怪了,别说archulinux的内核,opensuse,mandriva,ubuntu等发行版的内核都可以启动gentoo(不要奇怪,我的电脑上有7,8个发行版).

我说使用archlinux的内核,包括三部分:/boot/vmlinuz26 ,/boot/kernel26.img,/lib/modules/2.6.xx-ARCH
你确定你用的archlinux的内核包含这三部分?mkinitcpio配置正确?

至于内核态,用户态,就算我理解有误吧!

作者: pxbfeiniao   发布时间: 2009-01-10

用archlinux最新的内核作了试验(2.6.27.10),成功!
上传的图像
2009-01-10-145100_640x162_scrot.png (132.7 KB, 15 次查看)

作者: pxbfeiniao   发布时间: 2009-01-10

OK,一个bug。这是由于我的根分区在lvm上。其实arch也在lvm上,但就啥事没有
代码:
IP-Config: no devices to configure
Waiting 0 s before mounting root device...
kinit: cannot open root device dm-3(254,3)
kinit: init not found!
Kernel panic - not syncing: Attempt to kill init!
必须在initrd里的init脚本里添加一行,让它停一下,等udevd配置好lvm,之后才能正确启动。

代码:
~ $ uname -a
Linux * 2.6.27-ARCH #1 SMP PREEMPT Sun Dec 21 09:13:30 UTC 2008 x86_64 Intel(R) Core(TM)2 Duo CPU T8100 @ 2.10GHz GenuineIntel GNU/Linux
~ $ lsb_release 
LSB Version:    n/a
~ $ lsb_release -a
LSB Version:    n/a
Distributor ID: Gentoo
Description:    Gentoo Base System release 2.0.0
Release:        2.0.0
Codename:       n/a

作者: coderoar   发布时间: 2009-01-10

热门下载

更多