Chinaunix

标题: 关于lilo向内核传递参数的问题, 请问为什么 /dev/hda1 变成了 301 ? 谢谢. [打印本页]

作者: dbhua    时间: 2011-09-20 12:38
标题: 关于lilo向内核传递参数的问题, 请问为什么 /dev/hda1 变成了 301 ? 谢谢.
各位DX,
我在学习initramfs的编写, 遇到如下的问题:
init需要知道 lilo传过来的 root 分区是什么, 然后去 mount  到 newroot. 一般是 cat /proc/cmdline,
里面应会有 root=/dev/hda1 之类的内容. 但是, 我在调试时, 发现即使在lilo配置成
....
root = /dev/hda1
...

在init进行 cat /proc/cmdline 操作的输出也会变成:
... root = 301 ...
请各位给个提示, 可能错在什么地方?

谢谢各位.
作者: fei1700    时间: 2011-09-20 12:47
root= 有传设备号的做法,比如
16进制的方式: root=1f02, 就相当于root=/dev/mtdblock2, 0x1f就是31,mtdblock的major,02是minor
10进制的方式:root=31:2,这样比较容易看出来

root=301, 就是3是major,1是minor,
#define IDE0_MAJOR                3
hda是不是就是IDE的?是的话,就没错吧
作者: dbhua    时间: 2011-09-20 12:59
谢谢你的回复. 如果我想不让它变成设备号(301),而是直接将名字(/dev/hda1)传到内核的 /proc/cmdline, 需要如何设置呢?

我看了lilo的 开发和用户文档, 也找不到具体的说法.

谢谢.
作者: dbhua    时间: 2011-09-21 16:57
本帖最后由 dbhua 于 2011-09-22 11:06 编辑

总算明白了, lilo就是这样传的.  根据major minor 直接建立一个新设备就可以了. 谢谢各位.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2