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

Fin*_*ner 13 compiling kernel initrd

我正在运行 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-genericto复制到.config我的构建目录中,以保留我原始内核的配置。我运行make oldconfig,为所有新选项选择默认值,然后构建内核。

查看每个 initrd cpio 档案中的文件大小,我看到我所有的 .ko 模块在 3.1.0 ramdisk 中的大小都比 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

谁能解释所有不必要的膨胀来自哪里?

Lek*_*eyn 16

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

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

make INSTALL_MOD_STRIP=1 modules_install
Run Code Online (Sandbox Code Playgroud)

同样,对于构建 deb 包:

make INSTALL_MOD_STRIP=1 deb-pkg
Run Code Online (Sandbox Code Playgroud)

  • 运行`make INSTALL_MOD_STRIP=1 install` 得到了我想要的。谢谢! (2认同)