【问题标题】:Using ext2 file system variant on Linux在 Linux 上使用 ext2 文件系统变体
【发布时间】:2011-11-08 07:50:54
【问题描述】:

我是内核编程的新手,我遇到了一些问题,所以我很感激一些帮助。如果之前有人问过类似的问题,我提前道歉,我没有找到任何相关的帖子,并且可以在网上找到解释,这些解释很简单,让像我这样在该领域没有经验的人能够理解。

我想试验一下我自己的 ext2 版本。 我从 kernel.org 获得了源文件,并进行了适当的更改。没什么特别的,只是为了检查一下我的想法。

现在我想将它插入我的 linux 内核(如果重要的话,ubuntu 2.6.31-14-generic-pae)。 我该怎么做?

我(显然是幼稚的)最初的想法是简单地使用它附带的 makefile(在手动设置各种标志之后,它在需要的地方有 obj-m/obj-y)并将其编译为内核模块。

但是,我在编译期间不断收到关于重新定义宏、函数的隐式声明等的错误。例如

    ext2.h:181:1: warning: "ext2_find_first_zero_bit" redefined
    balloc.c:574: error: implicit declaration of function dquot_free_block_nodirty

显然这不是要走的路。我想最坏的情况是再次编译整个内核(使用我修改过的 ext2 代码而不是原始代码),因此它使用我自己的 ext2 创建相关库,并从新映像重新启动。我很难相信这是最好的方法。

甚至可以将新的文件系统作为内核模块插入吗?

我应该把我修改后的 ext2 代码放在 /usr/src 中,并以某种方式只编译包含当前 ext2 代码的相关库吗?

无论如何,如果我能提供任何帮助,我将不胜感激。

谢谢

【问题讨论】:

  • 您当前的内核是否使用 ext2 作为模块? ://
  • 没有。 lsmod 没有列出任何与 ext2 相关的内容。我确实在 /lib 中有 libext2fs
  • 首先:如果它已经编译进入内核,你不能将它作为一个模块加载。第二:你的根文件系统需要一个不同的FS,否则你将无法启动.. 不支持ext2fs :) 第三:我不知道编译问题,你试过google吗?

标签: file kernel ext2


【解决方案1】:

搜索 ext2 并将其替换为 my_awesome_filesystem 或类似的。

【讨论】:

    猜你喜欢
    • 2012-04-14
    • 2023-04-05
    • 2016-03-19
    • 2015-07-07
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 2014-01-18
    • 2013-05-31
    相关资源
    最近更新 更多