如何在Ubuntu 13.04上减小initrd.img的大小

我的最新升级到Ubuntu 13.04后,initrd.img-3.8.0-21-generic文件现在是32M。这给我升级到较新内核带来了问题,因为我只有96MB的/boot分区。我该如何减小这个文件的大小?

你不能减小内核的大小。你需要扩大启动分区。请参考http://askubuntu.com/questions/126153/how-to-resize-partitions和http://askubuntu.com/questions/24027/how-to-resize-a-ext4-root-partition-at-runtime - Takkat
感谢您的评论。我扩大引导分区的情况非常复杂 - /dev/md0 是一个96MB的raid1 /boot分区 - /dev/md1 是一个raid1,用于承载包含系统其余部分的LVM2分区。在这种情况下,我不知道如何减小/dev/md1的大小,以便为/dev/md0腾出更多空间。 - nwaltham
我正在使用grub2 - 我想唯一可能要探索的选项是在lvm中的/boot。 - nwaltham
1个回答

在`/etc/initramfs-tools/initramfs.conf`中,将`MODULES=most`改为`MODULES=dep`。initrd构建过程会自动确定所需的模块,而不是包含各种各样的东西。但请注意,这使得引导过程非常依赖于硬件,如果需要使用不同的硬件(特别是驱动器),可能无法正常工作。
此外,您可以选择更好的压缩算法,默认应该仍然是gzip,但也可以通过`COMPRESS=xz`来使用xz(或lzma2)。当然,您需要安装`xz-utils`。初始压缩时间较长,但在引导期间进行解压缩的时间不会太长。两个选项一起使用还可能略微减少引导时间。
设置完成后,请运行`sudo update-initramfs -u -k all`以使其生效。

3相对比较一些在kvm虚拟环境中以文本模式启动的13.10 amd64测试结果。(1) Modules=most,gzip: /boot/initrd.img-3.11.0-12-generic大小为16,985,839字节,启动时间为6.69秒。(2) Modules=dep,gzip: /boot/initrd.img-3.11.0-12-generic大小为2,229,559字节,启动时间为6.12秒。(3) Modules=dep,xz: /boot/initrd.img-3.11.0-12-generic大小为1,685,916字节,启动时间为6.26秒。(4) Modules=dep,lzma: /boot/initrd.img-3.11.0-12-generic大小为1,685,872字节,启动时间为6.35秒。 - Pro Backup
我可以报告一个类似的25%减少,使用xz在我的4.14 initramfs上。 - mirh