QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2205|回复: 17

如何把 1GB 弄成 700mb~

[复制链接]
发表于 2008-5-11 12:51:25 | 显示全部楼层 |阅读模式
啊,很明显很实际的。

总所周知了吧。
mgc-2.1 总是出 dvd 版本而不出 cd 版本了。

总结了一下,部分来自 opensuse project 的建议(opensuse 那边的开发者很棒哦......)。

1.只保留一种桌面环境:KDE
2.一种语言包数量:使用 magic_rpm_clean.sh 脚本能去掉大部分
3.可以通过网络上的源补充完整
4.去除发行版中可选的部分
5.去除应用程序中的可选部分:需要细化分包,可以省下很多空间
6.减少字体数量:文泉驿正黑体已经可以满足了
7.从软件中拆出语言包/非中文语言支持组件/文档包
8.弱化软件包依赖关系:需要实际的测试
9.减小引导系统大小
10.减少静态库数量
11.减少库的数量

以上这些都是在不降低功能优势的前提下能做到的。

至于合理分配组合各个软件也是应该考虑的,一些具有重复功能的软件和不实用的软件去除。

最后说一句:文件压缩。lzma 似乎是好的,bzip2 次之。
发表于 2008-5-11 14:14:01 | 显示全部楼层
其他的都还说,但是换文件压缩方式就要更改rpm的代码了,比较复杂。
回复

使用道具 举报

发表于 2008-5-11 17:56:34 | 显示全部楼层
这两天在弄livecd,打了lzma补丁的squashfs怎么也通不过。现在只好用gzip来压缩了。不过好像压缩速度gzip要比lzma快不少。
回复

使用道具 举报

发表于 2008-5-11 20:15:26 | 显示全部楼层
gzip 最快,压缩率最低,sejishikong 你还是用 bzip2 吧……
回复

使用道具 举报

发表于 2008-5-13 16:07:22 | 显示全部楼层
内核只支持gzip的。
回复

使用道具 举报

发表于 2008-5-13 16:20:42 | 显示全部楼层
没有 bzip2 的 patch?
回复

使用道具 举报

发表于 2008-5-13 17:39:43 | 显示全部楼层
好像是没有,以前有2.4的。
回复

使用道具 举报

发表于 2008-5-13 17:40:59 | 显示全部楼层
squashfs + lzma 编译过了……

ubuntu 8.04 chroot 到 Gentoo 。
gentoo 的当前内核是  linux-2.6.23-gentoo-r5 ,但我尝试编译的是 linux-2.6.25-gentoo-r3 。

先修改
LzmaVer = lzma457
我下载的已经是 457 了,但 Makefile 还是无耻的 443

lzma 和 squ 3.3 两个目录打的补丁不能省下。

linux-2.6.25-gentoo-r3 自带了 3.3 ,打上 sqlzma2k-3.3.patch 后拷贝带的两个 .h 文件到内核的 fs/squashfs 里面就能编译成功了。
我想这个内核应该可以支持 lzma 的 squ 镜像了吧……

最新版的 squ 3.3 已经不自带源代码了,估计是在内核补丁里包含了源代码,需要修改 squlzma 的 Makefile ,把
SqFs = ${Squashfs}/kernel-patches/${KVer}/fs/squashfs
改为内核源代码目录才行。

我编译时,这里也要修改……
#KDir = /lib/modules/$(shell uname -r)/build
KDir = ${Sqlzma}/linux-2.6.25-gentoo-r3/
当然,如果 sejishikong 安装了准备好的内核,这里貌似不需要修改了。

之后 make ,没有出错。
除了:
  WARNING: Symbol version dump /root/squashfs/src/linux-2.6.25-gentoo-r3/Module.symvers
           is missing; modules will have no dependencies and modversions.

因为我没有完整编译测使用的内核……

没地方装 ML 了……
回复

使用道具 举报

发表于 2008-5-13 17:41:54 | 显示全部楼层
PS:我是另外拷贝内核源代码到 squlzma 工作目录的。
回复

使用道具 举报

发表于 2008-5-13 17:45:51 | 显示全部楼层
忘了说了:
lzma 需要自建目录解压缩。命名规则要参考 Makefile 。
sqlzma 直接解压缩到工作目录就行了,这个 Makefile 要在 squ3.3 和 lzmaXXX 上面一级。
回复

使用道具 举报

发表于 2008-5-13 17:50:36 | 显示全部楼层
测试了一下,编译出来的 squ-tools 可以生成镜像文件并且解压缩,挂载没试验,我的 ubuntu 貌似不支持 lzma 的 squ 镜像……
回复

使用道具 举报

发表于 2008-5-13 17:53:21 | 显示全部楼层
压缩:
ubuntu src # squashfs3.3/squashfs-tools/mksquashfs squashfs3.3 test.squ
Parallel mksquashfs: Using 1 processor
Creating little endian 3.1 filesystem on test.squ, block size 131072.
lzmadic 131072
[==============================================================================================================] 41/41 100%
Exportable Little endian filesystem, data block size 131072, compressed data, compressed metadata, compressed fragments, duplicates are removed
lzmadic 131072
Filesystem size 403.04 Kbytes (0.39 Mbytes)
        19.07% of uncompressed filesystem size (2113.43 Kbytes)
Inode table size 589 bytes (0.58 Kbytes)
        30.46% of uncompressed inode table size (1934 bytes)
Directory table size 558 bytes (0.54 Kbytes)
        45.44% of uncompressed directory table size (1228 bytes)
Number of duplicate files found 0
Number of inodes 63
Number of files 40
Number of fragments 16
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 23
Number of uids 2
        unknown (1000)
        root (0)
Number of gids 0
ubuntu src #

解压缩:
ubuntu asdasd # ../squashfs3.3/squashfs-tools/unsquashfs ../test.squ

created 40 files
created 23 directories
created 0 symlinks
created 0 devices
created 0 fifos
ubuntu asdasd #
回复

使用道具 举报

发表于 2008-5-13 17:58:05 | 显示全部楼层
我在magic上这个也是可以编译通过的,但squashfs.ko模块无法加载。
回复

使用道具 举报

发表于 2008-5-13 18:02:02 | 显示全部楼层
不可能吧?
按理上说编译成功就应该能加载了啊……
回复

使用道具 举报

发表于 2008-5-13 18:35:57 | 显示全部楼层
有个问题:为什么要编译成为模块,而不是直接编译进内核呢?
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-27 10:42 , Processed in 0.105939 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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