为什么我的初始 ramdisk 这么大?

为什么我的初始 ramdisk 这么大?

我运行的是 Ubuntu 11.10,它附带了内核版本3.0.0-14。我从分支下载并构建了一个内核3.1.0。安装新内核后,我发现我的/boot/initrd.img-3.1.0文件很大。它是 114MB,而我的/boot/initrd.img-3.0.0-14-generic大约是 13MB。我想摆脱臃肿,这显然是不必要的。

在构建新内核时,我复制了我的/boot/config-3.0.0-14-generic.config构建目录中,以保留原始内核的配置。我运行了make oldconfig,为所有新选项选择了默认值,然后构建了内核。

查看每个 initrd cpio 存档中的文件大小,我发现 3.1.0 ramdisk 中的所有 .ko 模块的大小都大于 3.0.0-14。我假设我的配置文件中检查了不必要的调试标志,但我没有看到 3.0.0-14 配置文件中尚未启用的任何不同之处。

/boot/config-3.0.0-14-generic的在这里: http://pastebin.com/UjH7nEqd

和我的/boot/config-3.0.1在这里: http://pastebin.com/HyT0M2k1

谁能解释所有不必要的膨胀从何而来?

答案1

make oldconfig使用,make和构建内核和模块时make install,生成的模块将在文件中包含可用的调试信息。

使用INSTALL_MOD_STRIP删除调试符号的选项:

make INSTALL_MOD_STRIP=1 modules_install

同样,构建 deb 包:

make INSTALL_MOD_STRIP=1 deb-pkg

相关内容