如题。
我为什么要定制?
首先就是原始的livecd不适合我,他觉得自己普适了,也满足他自己的意图了,可用户(我)的呢?
体积偏大!
还进入安装界面!
启动过程满满的各种服务、消息,欺负用户(我)不懂是吧?!
还有,我就想当做vm环境中的急救live盘,你给我整这么多没用的干嘛!!!
...
定制的基调?
肯定得有宿主环境,目前肯定是linux,而且,最好就是livecd本身!
最小化的工具包,livecd自身满足才好 :-)
基于livecd本身,如果重头构建,sB才这样!
尽量保持原汁原味,能不动就不动,能少修改就少修改,能改一处就不改多出。
最小size!最小size!最小size! (能做到最小size,才能说明你做到极致了)
定制的技术研究方向or指南?
initrd 内存盘是一切的开始,往往这只是开始,你不需要定制什么,只是看看他最初干了什么。几乎所有的initrd不会做什么特别特殊的动作,这是行规!看他的目的是看它最后会挂载那个目录为realroot——真实的root根目录——以及调用哪个init而已。
接上一步,你找到realroot以及真实的init吗,对于livecd,或者说对于ubuntu及其衍生物,都是casper。
然后,后续就是研究casper了! 不同的livecd,casper的实现结构可能不同、组织方式也不同。但万变不离其宗(变多了,会被骂,而且官方也不一定搞得定),casper要提供一个完整的可以作为根/的环境并且提供可以执行的init环境。完整的根/环境显而易见,完整的init环境,随版本(【派系和时间】)的不同而不同。对于ubuntu livecd,只是从20.04后才提供livecd方式,那只有systemd了。而且...... 所有这几年的各种linux发行版,都是systemd!
systemd!
systemd!
sysemd!
有了以上知识,后续就基本上就是,获取这个root(根)环境,chroot进去,定制呗!
todo,或说难点?
想让自己定制的livecd或者说所有的livecd具有普世行,关键的问题是解决驱动加载问题 ..............
通常的initrd仅仅带有基本的设备驱动——最最关键的是网卡及存储(硬盘、软盘、usb盘)的驱动——、及基本的文件系统驱动——ext3、ext4——!
todo ...