免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7110 | 回复: 17
打印 上一主题 下一主题

内核编译后,如何放到iso镜像中? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-27 21:19 |只看该作者 |倒序浏览
目前,Linux的定制已经搞完了。
现在的问题是,如果我想把内核编译后的文件放到新系统中,并且修改grub.conf,开机启用新内核,应该如何实现呢?

我想的是,将内核编译后生成的文件全部收拢打包,然后%post后面解压。

现在就是不知道怎么收拢编译内核后的文件,请斑竹指点指点。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2009-11-27 21:22 |只看该作者
羊头试试tar打包,放在%post里面解压.
参考cactiez的做法.

论坛徽章:
0
3 [报告]
发表于 2009-11-27 21:26 |只看该作者
原帖由 chenyx 于 2009-11-27 21:22 发表
羊头试试tar打包,放在%post里面解压.
参考cactiez的做法.


对啊,我就准备打包的,只是现在遇到的问题是,如何收拢内核编译后的文件。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
4 [报告]
发表于 2009-11-27 21:30 |只看该作者

回复 #3 marsaber 的帖子

这倒是个问题.
不知道发行版是怎么打包成rpm的.

论坛徽章:
0
5 [报告]
发表于 2009-11-27 21:31 |只看该作者

回复 #4 chenyx 的帖子

对啊,做成rpm包也是一种不错的想法,但是貌似还要解决依赖性等等,目前还是看好tar包的。

论坛徽章:
0
6 [报告]
发表于 2009-11-27 21:36 |只看该作者
原帖由 chenyx 于 2009-11-27 21:22 发表
羊头试试tar打包,放在%post里面解压.
参考cactiez的做法.


实际上Linux为什么叫做跨平台呀?如果能很好的理解这个问题那么这个实现方式之一就可以很好体现了

有参考的是CUOS-L7的版本在一张iso中集成了2.6.30的内核稳定实现了Netfilter对Layer7的支持;至于Layer7是什么大家可以到网络版去看看;

在这个实现中是在一台物理主机上编译好2.6.30的内核,然后将内核对应的文件及模块文件夹做版本rpm包,这个方式对于大多数人似乎是存在操作问题,那么可以使用简单方式就是将lib下的文件以及boot下的内核引导文件以tar下来
然后使用

  1. %post
  2. #加载光驱
  3. export CDROM_LIST="$(dmesg | grep '\(CD\|DVD\)*ROM' | awk -F':' '{print $1}' | grep -v ' ' | sort | uniq)"
  4. export CDROM_MOUNT_POINT="/mnt"
  5. for dev_cdrom in ${CDROM_LIST}
  6. do
  7.     if [ -e /dev/${dev_cdrom} ]; then
  8.          
  9.         mount /dev/${dev_cdrom} ${CDROM_MOUNT_POINT}
  10.         if [ X"$?" == X"0" ]; then
  11.                          break
  12.         else
  13.                          continue
  14.         fi
  15.     else
  16.  # Try to mount next device.
  17.         continue
  18.     fi
  19. #释放压缩包版本
  20. tar -xf ${CDROM_MOUNT_POINT}/src/kernel-2.6.30.tar.gz -C / >/dev/null 2>&1
  21. done
复制代码

论坛徽章:
0
7 [报告]
发表于 2009-11-27 21:37 |只看该作者
原帖由 chenyx 于 2009-11-27 21:30 发表
这倒是个问题.
不知道发行版是怎么打包成rpm的.


rpmbuild 最简单的方式就是chroot环境下 做对应路径的cpio的文件压缩

论坛徽章:
0
8 [报告]
发表于 2009-11-27 21:41 |只看该作者

回复 #6 kns1024wh 的帖子

我在那个镜像里没有看见kernel-2.6.30.tar.gz啊。
只看见一个kernel-2.6.18****的rpm包。

论坛徽章:
0
9 [报告]
发表于 2009-11-27 21:42 |只看该作者
确认一下,你的那个l7包里,到底是rpm包?还是tar包?

论坛徽章:
0
10 [报告]
发表于 2009-11-27 21:43 |只看该作者
如果是tar包,是如何实现的?
如果是rpm包,又是如何实现的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP