Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101972271
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-14 15:56:31

作者: Keiboc  出自:
以前一直没有用initrd.昨天想尝试U disk上的linux系统。所以就用了initrd

在recomplie kernel的时候,就把ext2、ext3全部modules了。

没想到报这个错。

unable to mount root fs on unknown-block

网上说2.6.*的kernel要把ext2、ext3全部build-in.

照做了,又产生了initrd文件。

mkinitrd的用法
mkinitrd /boot/initrd-2.6.17-gentoo-r4 2.6.17-gentoo-r4

结果重启后又出现这个报错:
EXT3-fs:mounted filesystem with ordered data mode
pivotroot:pivot_root(/sysroot,/sysroot/initrd)failed:2
umount /initrd/proc failed:2
Freeing unused kernel memory:124k freed
kernel panic - not syncing: No init found. Try passing init=option to kernel.

通过error message的第一行已经知道了,系统对ext3的支持已经到位了。

一个小学语文没过关的人说ext2、ext3不能同时build-in,否则出现此报错。

报着试一试的想法,我将ext3 modules,将ext2 build-in(因为initrd为ext2,故必须build-in)

结果出现以下报错:
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:124k freed
kernel panic - not syncing:No init found.Try passing init= option to kernel

此人没出现报错,估计可能是文字表达时没说清楚,真是害死人,拖出去斩了才好。误导观众!

于是又将ext2、ext3全部build-in.

俺寻遍google、baidu.最终找到个贴子,高人说:

mkdir /initrd

failed:2后面还有个2呢!2就是出错的含义。

应该说很多问题都会提示No init found. Try passing init= option to kernel.但pivotroot出错99%是没有initrd目录造成的。可以肯定一点ext3的模块没有问题,ext3的模块可以不在内核中而被正确使用,它通过initrd进行加载的。

开始我还傻傻的以为要在initrd文件里去建initrd目录,发现还是不行,后来一想,initrd根文件系统已经挂载了,那么在挂载的情况下报错,应该在real root filesystem里解决呀。

于是乎:
mkdir /initrd

reboot.解决。
阅读(346) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~