initrd遇到的问题及initramfs相关

https://notes.z-dd.online/2025/11/12/initrd%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98%E5%8F%8Ainitramfs%E7%9B%B8%E5%85%B3/https://notes.z-dd.online/2025/11/12/initrd%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98%E5%8F%8Ainitramfs%E7%9B%B8%E5%85%B3/

initrd遇到的问题及initramfs相关
问题背景
最新在升级新驱动时遇到了一个很奇葩的问题:在客户某个版本的系统下,不管是将核外驱动包以前的老版本卸载后再安装新版本,还是直接升级该核外驱动包的新版本,从加载的驱动中读出的驱动版本一直是老的,甚至将该驱动包卸载后驱动还会加载,且为老版本,查找了一圈发现连KO都已经不存在了,奇了怪了,最后就把目光怀疑到了 **initrd**,果然在initrd里面有这个wifi驱动。

那它是怎么进去的呢?默认的initrd是没有将该wifi驱动放在里面的,后来发现居然是其他驱动的dkms包hooks脚本暴力将整个updates/dkms目录拉进了initrd ~~

下面,我们来看看这个 initrd 与 initramfs, 以下主要以 Debian/Ubuntu 系的发行版为例。

initrd与initramfs
initramfs 和 initrd 都是 Linux 启动过程中用于临时根文件系统(initial root filesystem)的机制,目的是在挂载真正的根文件系统之前加载必要的驱动、模块和工具。虽然它们目标一致,但在实现方式、历史演进和现代使用上存在关键区别。

一、基本概念对比
特性    initrd(Initial RAM Disk)    initramfs(Initial RAM File System)
出现时间    较早(Linux 2.4 时代)    较新(Linux 2.6 起成为主流)
技术基础    块设备镜像(模拟磁盘),需格式化为 ext2 等文件系统    cpio 归档 + tmpfs,直接作为内存中的文件系统
加载方式    内核将其当作一个 RAM disk 挂载    内核直接解压 cpio 到 tmpfs 中
内存效率    较低(固定大小,即使未用满也占用内存)    较高(按需分配,动态增长/收缩)
复杂度    需要文件系统驱动支持(如 ext2)    无需额外文件系统,内核原生支持 cpio
现代使用    ❌ 已基本被 initramfs 取代    ✅ 当前所有主流发行版默认使用
二、技术细节差异
1. initrd 的工作流程
Bootloader(如 GRUB)将 vmlinuz(内核)和 initrd.img 加载到内存。
内核创建一个 RAM disk 设备(如 /dev/ram0)。
将 initrd.img 解压并挂载为一个块设备上的文件系统(通常是 ext2)。
执行其中的 /linuxrc 脚本。
脚本完成后,卸载 initrd,挂载真正的根文件系统。
⚠️ 缺点: 需要内核内置对应文件系统的驱动(如 ext2),且内存浪费大。

2. initramfs 的工作流程
Bootloader 加载内核和 initramfs(通常也是叫 initrd.img,但内容是 cpio 格式)。
内核将 cpio 归档直接解压到 tmpfs(基于内存的临时文件系统)中。
执行 /init 脚本(不再是 /linuxrc)。
脚本完成必要操作(如加载加密/LVM/RAID 驱动)后,通过 switch_root 切换到真正的根文件系统。
✅ 优点:

不依赖特定文件系统;
内存使用更高效;
实现更简洁,集成度更高。
三、文件命名的“混淆”

........
作者: Shell
链接: https://notes.z-dd.online/2025/11/12/initrd%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98%E5%8F%8Ainitramfs%E7%9B%B8%E5%85%B3/
来源: DD'Notes
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

。。。 。。。


更多请关注我的公众号:

或我的博客:https://notes.z-dd.online/


内容概要:本文围绕基于Wasserstein生成对抗网络(W-GAN)的光伏场景生成程序展开研究,提出了一种利用W-GAN生成高精度、高波动性光伏出力场景的方法,以应对新能源发电中的不确定性挑战。研究通过构建生成器与判别器之间的对抗训练机制,有效捕捉光伏出力的时间序列特征与统计分布规律,生成符合实际运行条件的多样化场景数据,弥补实测数据稀缺问题。相较于传统GAN,W-GAN引入Wasserstein距离作为损失函数,显著提升了模型训练的稳定性与梯度传播的连续性,增强了生成样本的质量与多样性。文中还提供了完整的Python代码实现,便于读者复现与拓展。; 适合人群:具备一定Python编程能力、深度学习基础的研究生、科研人员,以及从事新能源电力系统规划、优化调度、不确定性建模等相关领域的工程师和技术人员。; 使用场景及目标:①用于电力系统中可再生能源出力的不确定性建模与风险评估;②支撑微电网、综合能源系统等场景下的随机优化、鲁棒优化与分布鲁棒优化研究;③为风光互补系统、储能配置、需求响应等应用提供高质量、多样化的输入场景;④帮助研究人员掌握深度学习在能源时序数据生成中的前沿应用,推动模型迁移至风电、负荷等其他场景生成任务。; 阅读建议:建议读者结合提供的Python代码进行动手实践,深入理解W-GAN的网络架构设计、损失函数构造、训练技巧及超参数调优策略,重点关注Wasserstein距离在缓解模式崩溃与梯度消失问题中的作用,并尝试将该框架拓展至多变量、多站点或多能源联合场景生成,提升模型的泛化能力与工程实用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值