QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2732|回复: 17

ML 的内核能不能加上 aufs 或者 unionfs 的补丁?

[复制链接]
发表于 2008-5-19 08:46:16 | 显示全部楼层 |阅读模式
aufs 可以脱离 kernel 编译,但是需要内核加补丁才能编译出来后可以被 insmod ……
  1. - sec_perm-2.6.24.patch
  2.   For linux-2.6.24 and later.
  3.   When you compile aufs as a module and enable CONFIG_SECURITY, this
  4.   patch is required.
复制代码
  1. localhost squashfs # grep CONFIG_SECURITY config-2.6.24.4-smp.mgc
  2. CONFIG_SECURITY=y
  3. CONFIG_SECURITY_NETWORK=y
  4. # CONFIG_SECURITY_NETWORK_XFRM is not set
  5. # CONFIG_SECURITY_CAPABILITIES is not set
  6. # CONFIG_SECURITY_ROOTPLUG is not set
  7. # CONFIG_SECURITY_SELINUX is not set
  8. localhost squashfs #
复制代码

应该是他导致 aufs 编译后不能 insmod ……

不知道关掉这个 CONFIG_SECURITY 后编译内核这个模块能否成功 insmod……

UnionFS 只有内核补丁,所有的东西已经整合进入内核了……貌似没有办法单独编译。
找个同版本打上补丁,编译成模块后拿出来还是不能 insmod 到 ML  自带内核。

[ 本帖最后由 jiangtao9999 于 2008-5-19 08:53 编辑 ]
 楼主| 发表于 2008-5-19 08:54:40 | 显示全部楼层
  1. Index: linux-2.6.24-rc3/security/security.c
  2. ===================================================================
  3. RCS file: /ext1/sysadm/transparent/repository/linux-2.6.24-rc3/security/security.c,v
  4. retrieving revision 1.1
  5. retrieving revision 1.2
  6. diff -u -p -r1.1 -r1.2
  7. --- linux-2.6.24-rc3/security/security.c        21 Nov 2007 13:03:11 -0000      1.1
  8. +++ linux-2.6.24-rc3/security/security.c        21 Nov 2007 13:07:55 -0000      1.2
  9. @@ -409,6 +409,7 @@ int security_inode_permission(struct ino
  10.                 return 0;
  11.         return security_ops->inode_permission(inode, mask, nd);
  12. }
  13. +EXPORT_SYMBOL(security_inode_permission);

  14. int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
  15. {
复制代码

这么简单的 patch ……
回复

使用道具 举报

 楼主| 发表于 2008-5-19 09:01:12 | 显示全部楼层
取消掉后重新编译内核一下,再编译 aufs 就能 insmod 鸟~~~
回复

使用道具 举报

 楼主| 发表于 2008-5-19 10:54:48 | 显示全部楼层
诡异,aufs 不能挂 sqlzma 的东西。
只要同时挂上他们两个相关的东西,就挂掉……不过 kernel 还正常……
回复

使用道具 举报

 楼主| 发表于 2008-5-19 11:09:31 | 显示全部楼层

不弄了!他们两个在一起就挂掉!
回复

使用道具 举报

发表于 2008-5-19 17:21:54 | 显示全部楼层
aufs的那个patch是打给aufs本身的吧,我已经打好了2.6.25.4,squashfs/aufs都正常。
回复

使用道具 举报

 楼主| 发表于 2008-5-19 18:13:08 | 显示全部楼层
aufs 有两个补丁是给内核打的,一个是解决因为一个 symbol 没有引出导致 insmod aufs.ko 会显示 undefined symbol 导致出错。一个是使用 squashfs 以及其他 loopback 设备方式挂载的时候也会有问题的补丁。
第一个问题就是楼顶的补丁,我说的第二个估计就是引起 aufs 和 squash 同时使用会崩溃的补丁。

我用 ML 的 config 编译内核,从来就没有正常编译过……

sejishikong ,你能不能编译一个可以同时工作的 sqlzma + aufs 以及内核的 rpm ??

我估计现在我只要能用上 aufs ,基本上 livUSB 就能成功了。
剩下的就是解决镜像文件设置的问题了。
回复

使用道具 举报

 楼主| 发表于 2008-5-19 20:16:54 | 显示全部楼层
我的 3 套 Linux 数据全乱了……
只好重新来过了……

基本原理目前明白了。只要 ML 的内核没问题, initrd.img 的脚本只需要改几行而已。如果在 nash 的脚本里,可以增加识别 kernel 命令行参数的东西,以及根据这个脚本分开执行两部分代码,完全可以一个 initrd 实现 liveXXX 和硬盘安装的 initrd 共用~~

不过 nash 支持不支持现在不好说,mash 自带的 mount 貌似不支持 -o loop 设备挂载?
回复

使用道具 举报

发表于 2008-5-19 21:40:13 | 显示全部楼层
改用busybox
编译服务器上有更新的内核和aufs包。
仓库里也有。

compiz-fusion的包打完了,不过不知道实际用起来怎么样。
回复

使用道具 举报

 楼主| 发表于 2008-5-19 22:01:58 | 显示全部楼层

busybox 可以考虑,不过没有特别方便的那个 mkrootdev 命令吧?
不过可以尝试混合使用……

还有就是,编译服务器是啥……
回复

使用道具 举报

 楼主| 发表于 2008-5-19 22:05:18 | 显示全部楼层
apt 里找到新的内核了。
回复

使用道具 举报

发表于 2008-5-19 22:13:51 | 显示全部楼层
linux-live用的mdev。原来2.0的live用的udevstart
回复

使用道具 举报

 楼主| 发表于 2008-5-20 18:21:27 | 显示全部楼层
sejishikong ,你没打上 sqlzma 吧……
回复

使用道具 举报

 楼主| 发表于 2008-5-20 18:29:52 | 显示全部楼层

modules.* 里包含依赖就是好啊……
不需要另外 insmod unlzma 和 sqlzma 了……
回复

使用道具 举报

 楼主| 发表于 2008-5-20 18:35:57 | 显示全部楼层
能用~我再做个 squashfs 的镜像文件试试
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-23 21:52 , Processed in 0.091150 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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