技术解析

大家怎么创建 initramfs ? ( 小巧的)
0
2021-06-22 12:25:34
idczone
我之前的帖子: https://www.v2ex.com/t/501949#reply53

问题是解决了,少了 initramfs,灵活性还是差了些

( 不使用 initramfs 首先要确保相关驱动 built-in, /usr 和 /是在同一个分区,而我比较喜欢讲 /usr 和 /单独分区 )

mkinitrd/mkinitramfs 制作出来的体积也大,刚好我看到 busybox 似乎也可以( 正在看文档 )

先发贴子,看看大家的方法
你用的是什么发行版,busybox 是必须的

一般来说发行版的工具生成的 initramfs 灵活性是最好的,但体积比较大,对于现代计算机来说都不是什么问题,所以我平时也不管了。你想折腾的话也可以。
生成的工具不同发行版有不同的默认工具,有的基于当前载入模块进行探测的。想减少体积就从这些模块入手吧,这些模块占 initramfs 的大部分。不过我建议交给生成工具去探测就好,不满意改改配置和生成参数一般都会比较小的了,前提是工具是探测载入模块生成 initramfs 的。
至于打 initramfs 里面的可执行程序的主意,减不了多少,还会导致起不来,强关伤硬盘。busybox 的话是属于这里面的,一般还有另一套是用 systemd 的,这两种是二选一的。
可以参考一下 archwiki 的 https://wiki.archlinux.org/index.php/Mkinitcpio

omit_dracutmodules+="bootchart dash modsign busybox network lvmmerge btrfs dm dmraid dmsquash-live-ntfs lvm mdraid crypt-gpg cifs iscsi iscsi biosdevname masterkey i18n rootfs-block terminfo kernel-modules fs-lib usrmount crypt nfs"
no_kernel="yes"
/etc/dracut.conf.d/default.conf 的一行,半年前用来折腾 zfs 的,主要是去除不要的模块,我使用源代码发行版就是因为特别需要去掉不需要的。再补一句:dracut。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服