LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: koolcoy

求助:内核问题

[复制链接]
发表于 2006-2-20 18:12:45 | 显示全部楼层
不是 udev 不能满足我,是 initrd 不能满足 udev .

目前,我对控制 initrd 的内容没辙, 去找点资料看看.
回复 支持 反对

使用道具 举报

发表于 2006-2-21 07:40:09 | 显示全部楼层
不是都,/dev下有2个是静态的
可以看initrd.img
initrd/dev
console null

这里是initrd.img udev相关 我想udev是做在ramdisk里面的
initrd/etc:
fstab mtab udev

initrd/etc/udev:
permissions.d rules.d scripts udev.conf

initrd/etc/udev/permissions.d:
50-udev.permissions

initrd/etc/udev/rules.d:
50-udev.rules

initrd/etc/udev/scripts:
ide-devfs.sh

这是gentoo的
我想initrd.img最主要的作用就是这个
回复 支持 反对

使用道具 举报

发表于 2006-2-21 07:54:09 | 显示全部楼层
initrd.img ,你想用来干嘛?
一般来说,initrd 是用来完成一些加载根目录之前的工作。比如 livecd 的话,就是把根目录解压出来,然后再加载。

你的目的是什么?
回复 支持 反对

使用道具 举报

发表于 2006-2-21 12:01:08 | 显示全部楼层
Post by 终极幻想
initrd.img ,你想用来干嘛?
一般来说,initrd 是用来完成一些加载根目录之前的工作。比如 livecd 的话,就是把根目录解压出来,然后再加载。

你的目的是什么?

我的理解是initrd是一个很小的根目录 用来完成最最简单的bash指令
开机然后 解压initrd.img到ramdisk 然后执行里面的linuxrc脚本 脚本里面涉及的命令
需要这个极小根目录系统的支持 比如那个PDF写的echo "hello world" 的echo命令 当然
更多的是启动udev 检测并mount光驱等(livecd)然后挂载主根系统 开始init进程
回复 支持 反对

使用道具 举报

发表于 2006-2-21 13:09:53 | 显示全部楼层
我原来翻译的两篇文章:
http://blog.21ic.com/more.asp?name=good02xaut&id=2372
http://blog.21ic.com/more.asp?name=good02xaut&id=2331
或许对你有帮助

说一下我对initrd的理解:
举个例子说,现在用的内核是2.6.12,而在配置内核的时候,对ext2的支持编译成了模块。现在我把/dev/hda3(ext2文件系统)作为rootfilesystem.
kernel /boot/vmlinuz-2.6.12 root=/dev/hda3 内核肯定无法启动,因为内核不支持ext2!

内核在挂载根文件系统时,需要用insmode 把对ext2的支持加进来。现在就矛盾了,insmod不是内核自带的程序,是存放在文件系统中的。文件系统自己还没搞定,更不会提供对insmod的访问路径。
现在如果有了initrd就不一样了,initrd可以把insmod包含进去,系统第一个挂载的root是ramdisk,里面就可以找到insmod和module。现在的内核就可以支持ext2了。然后挂载/dev/hda3,chroot什么的,就正常启动了
回复 支持 反对

使用道具 举报

发表于 2006-2-21 17:59:30 | 显示全部楼层
Post by good02xaut
我原来翻译的两篇文章:
http://blog.21ic.com/more.asp?name=good02xaut&id=2372
http://blog.21ic.com/more.asp?name=good02xaut&id=2331
或许对你有帮助

说一下我对initrd的理解:
举个例子说,现在用的内核是2.6.12,而在配置内核的时候,对ext2的支持编译成了模块。现在我把/dev/hda3(ext2文件系统)作为rootfilesystem.
kernel /boot/vmlinuz-2.6.12 root=/dev/hda3 内核肯定无法启动,因为内核不支持ext2!

内核在挂载根文件系统时,需要用insmode 把对ext2的支持加进来。现在就矛盾了,insmod不是内核自带的程序,是存放在文件系统中的。文件系统自己还没搞定,更不会提供对insmod的访问路径。
现在如果有了initrd就不一样了,initrd可以把insmod包含进去,系统第一个挂载的root是ramdisk,里面就可以找到insmod和module。现在的内核就可以支持ext2了。然后挂载/dev/hda3,chroot什么的,就正常启动了


对的 我前面就写出来了
initrd是极小的一个根区 挂载到ramdisk 执行那些需要在init启动之前的必要命令
通过linuxrc脚本和根区自带的一些极其简单的指令

我就是这么理解的
回复 支持 反对

使用道具 举报

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

本版积分规则

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