initrd解压和相关制作

基于TDOA的chan算法(定位算法) Chan算法原理 TDOA(TDOA,the time differences of arrival,到达时间差),Chan算法是TDOA定位方法的一个很好用的方法。 Chan算法是非递归双曲线方程组解法,具有解析表达式解,主要特点是:在测量误差服从理想高斯分布时,它的定位精度高、计算量小,并且可以通过增加已确定点的数量来提高算法精度。 该算法的推导前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。二维情况下,可分为只有三个点参与定 阅读详情

什么是初始 RAM 磁盘?
初始 RAM 磁盘(initrd)是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd 与内核绑定在一起,并作为内核引导过程的一部分进行加载。内核然后会将这个 initrd 文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。
initrd 中包含了实现这个目标所需要的目录和可执行程序的最小集合,例如将内核模块加载到内核中所使用的 insmod 工具。
在桌面或服务器 Linux 系统中,initrd 是一个临时的文件系统。其生存周期很短,只会用作到真实文件系统的一个桥梁。在没有存储设备的嵌入式系统中,initrd 是永久的根文件系统。


initrd的作用

目的在于提供开机过程中所需要的最重要核心模块,以使系统开机过程可以顺利完成。

 

查看initrd-xx-xx.img虚拟文件系统内容:

[root@localhost boot]# ll initrd-2.6.18-194.el5.img

-rw------- 1 root root 2629986 02-09 09:52 initrd-2.6.18-194.el5.img

[root@localhost boot]# cp initrd-2.6.18-194.el5.img /tmp/

[root@localhost boot]# pwd

/boot

[root@localhost boot]# cd /tmp/

[root@localhost tmp]# ls

initrd-2.6.18-194.el5.img

[root@localhost tmp]# file initrd-2.6.18-194.el5.img

initrd-2.6.18-194.el5.img: gzip compressed data, from Unix, last modified: Thu Feb  9 09:52:35 2012, max compression

[root@localhost tmp]# mv initrd-2.6.18-194.el5.img initrd-2.6.18-194.el5.img.gz

[root@localhost tmp]# gunzip initrd-2.6.18-194.el5.img.gz

[root@localhost tmp]# file initrd-2.6.18-194.el5.img

initrd-2.6.18-194.el5.img: ASCII cpio archive (SVR4 with no CRC)

[root@localhost tmp]# mkdir initrd

[root@localhost tmp]# cd initrd

[root@localhost initrd]# cpio -i <../initrd-2.6.18-194.el5.img

11762 blocks

[root@localhost initrd]# ls

bin  dev  etc  init  lib  proc  sbin  sys  sysroot

[root@localhost initrd]# tree ../

../

|-- initrd

|   |-- bin

|   |   |-- dmraid

|   |   |-- insmod

|   |   |-- kpartx

|   |   |-- modprobe -> /sbin/nash

|   |   `-- nash

|   |-- dev

|   |   |-- console

|   |   |-- mapper

------省略------

[root@localhost initrd]#

或者直接使用命令zcat initrd-2.6.18-194.el5.img | cpio -i


制作initrd文件

[root@localhost test]# ls

[root@localhost test]# mkinitrd initrd_$(uname -r)  $(uname -r)

//mkinitrd [-v] [--with=模块名称] initrd 文件名 核心版本

[root@localhost test]# ls

initrd_2.6.18-194.el5

[root@localhost test]# file initrd_2.6.18-194.el5

initrd_2.6.18-194.el5: gzip compressed data, from Unix, last modified: Sun Mar 25 19:49:36 2012, max compression

[root@localhost test]# mkinitrd -v --with=8139too initrd_$(uname -r)_test $(uname -r) | grep 8139too

//加入8139模块,生成initrd文件之后即可移入boot中使用了

Looking for deps of module 8139too: mii

Using modules:  /lib/modules/2.6.18-194.el5/kernel/drivers/usb/host/ehci-hcd.ko /lib/modules/2.6.18-194.el5/kernel/drivers/usb/host/ohci-hcd.ko /lib/modules/2.6.18-194.el5/kernel/drivers/usb/host/uhci-hcd.ko /lib/modules/2.6.18-194.el5/kernel/fs/jbd/jbd.ko /lib/modules/2.6.18-194.el5/kernel/fs/ext3/ext3.ko /lib/modules/2.6.18-194.el5/kernel/drivers/scsi/scsi_mod.ko /lib/modules/2.6.18-194.el5/kernel/drivers/scsi/sd_mod.ko /lib/modules/2.6.18-194.el5/kernel/drivers/scsi/scsi_transport_spi.ko /lib/modules/2.6.18-194.el5/kernel/drivers/message/fusion/mptbase.ko /lib/modules/2.6.18-194.el5/kernel/drivers/message/fusion/mptscsih.ko /lib/modules/2.6.18-194.el5/kernel/drivers/message/fusion/mptspi.ko /lib/modules/2.6.18-194.el5/kernel/drivers/ata/libata.ko /lib/modules/2.6.18-194.el5/kernel/drivers/ata/ata_piix.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-mem-cache.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-mod.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-log.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-region_hash.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-message.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-raid45.ko /lib/modules/2.6.18-194.el5/kernel/drivers/net/mii.ko /lib/modules/2.6.18-194.el5/kernel/drivers/net/8139too.ko

copy from `/lib/modules/2.6.18-194.el5/kernel/drivers/net/8139too.ko' [elf32-i386] to `/tmp/initrd.mD7411/lib/8139too.ko' [elf32-i386]

Adding module 8139too

[root@localhost test]#


参考:http://www.ibm.com/developerworks/cn/linux/l-initrd.html

如何将 Fiori Elements Object Page Header 工具栏里按钮用 JavaScript 代码设置成禁用状态 本文介绍了如何在SAP Fiori Elements应用中动态控制Object Page工具栏按钮的可用状态。通过UI5 Inspector工具分析发现,这些按钮的enabled属性都双向绑定到/ui/enabled模型字段。在StatusExt.controller.js中,通过获取按钮ID前缀拼接完整控件ID,使用setEnabled(false)方法即可禁用按钮。关键点包括:1)使用extensionAPI获取视图ID前缀;2)注意事件回调中的this上下文绑定;3)通过修改模型字段可同步更新所有绑定 阅读详情

相关推荐

VSCode连接SAP ABAP开发环境

本文介绍了使用VSCode连接ABAP开发环境的详细步骤。首先通过SICF或SMICM事务码获取ABAP连接地址,然后安装ABAP remote filesystem插件。提供了两种创建连接的方法:通过命令面板逐步配置(输入服务器地址、账号、系统标识等)或直接编辑JSON配置文件。最后通过命令面板选择已创建的连接即可完成连接,连接成功后可在VSCode左侧工作区查看ABAP系统内容进行开发。JSON配置方式更为简便推荐。整个流程帮助开发者摆脱复杂的Eclipse配置,实现快速便捷的ABAP开发环境搭建。

weixin_45293769的博客 2212

linux 2.6.24 编译,2.6.24内核编译 initrd-2.6.24.img分析

initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前, bootloader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。第一阶段启动的目的是为第二阶段的启动扫清一切障爱,最主要的是加载根文件系统存储介质...

weixin_31833039的博客 458

poincare截点

poincare映射定义比较抽象,简单理解就是每个原始周期取一个点,表现在程序中的思路如下: 以激励的周期T0为poincare的原始周期,设置1个周期取m个点,取N个周期设置T0/m为ode45的步长,每个周期的 i*m个点处取一个点(i=0.0-1.0),把这些点画出来就行了。有几个点就是几倍周期。 (注意:ode45算法是变步长的算法,所以一定要之前自己设置步长,我在这个地方吃了很大一个亏...

小树 3007

编译升级linux内核版本initrd,(原创)RHEL/CentOS 5.5上编译安装升级Linux 2.6.35.1新内核...

昨天偶去Linux内核网站(www.kernel.org)上逛时,发现最新的Linux Kernel稳定版已经是2.6.35.1,近来内核版本更新好快哦。下图中的stable就是稳定版的意思:于是决定找个时间编译升级下CentOS 5.5的内核,CentOS 5.5所带的内核还是2.6.18.x系列,有点老了。因为之前偶编译过LFS与Gentoo,编译内核有一些经验了,所有这次还比较顺利。本次编译...

weixin_29501693的博客 259

泰森多面体Voronoi 3D-V5.0 功能介绍

Abaqus Voronoi3D

qq_34840441的博客 3364

3DMax高效建模与人工智能:一场颠覆传统创作的效率革命

AI与3DMax的结合,不仅是工具效率的升级,更是一场创作范式的革命。从“手动雕刻”到“智能共生”,设计师的角色正从执行者转向决策者。正如网友所言:“AI不是替代人类,而是赋予凡人以神笔。”在这场变革中,唯有拥抱技术、深耕创意,方能在数字艺术的浪潮中立于潮头。参考文献与工具推荐技术原理:火星时代资讯《人工智能和三维建模》工具实测:哔哩哔哩《tyDiffusion 3dsMax应用》9、Tripo AI官网教育案例:原创论文《人工智能技术介入三维动画课程建设》

m0_46478534的博客 3009

linux引导initrd流程解析

因此early_initrd()函数在start_kernel()–>setup_arch()–>parse_early_param();unpack_to_rootfs()调用decompress()解压initrd, 不断调用flush_buffer()流式的获取到解压结果,使用状态机处理cpio格式的结果。init/do_mounts.h 文件中根据是否支持RAMDISK(即是否定义了CONFIG_BLK_DEV_RAM宏)定义不同的函数。2.2 根据initrd的物理地址填充initrd虚拟地址。

Austin_2020的博客 1108

YOLOv12改进策略【Neck】| CGA Fusion:内容引导的注意力融合模块,空间权重引导的多模态特征自适应融合

本文记录的是利用CGA Fusion 模块改进 YOLOv12 的多模态融合部分。(Content-Guided Attention Fusion)通过内容引导注意力生成空间权重,引导高低层特征的自适应融合。本文利用模块,通过内容引导注意力生成空间权重,自适应地融合两个模态的特征,在特征融合阶段实现跨模态语义对齐与噪声抑制,增强对不同模态互补特征的利用能力,从而提升模型在多模态场景下的检测鲁棒性与准确性。DEA-Net: Single image dehazing based on detail-enhan

Limiiiing的博客 433

制作initrd(1):向initrd内部更新驱动模块

从centos到ubuntu,grub从grub1进化到grub2,其配置文件的内容也跟着发生了巨大的变化。但是配置文件中有几项参数一直变化不大:linux root和initrd,一直指向内核镜像 根设备和initrd镜像的路径。就算换到uboot上,依然能见到这三项参数,其重要性可见一斑。3个参数以内核镜像最重要,而initrd却是时有时无的参数。     虽然initrd的存在感不强,但却

lixiangminghate的专栏 8855

激光雷达点云可视化:Open3D与PCL实战

激光雷达点云可视化:Open3D与PCL实战 ,人工智能,计算机视觉,大模型,AI,该文围绕激光雷达点云可视化,介绍了Open3D与PCL的实战应用。先阐述点云基础概念、特点及可视化意义,接着讲解Open3D的简介、环境配置,以及其在点云读取、显示、颜色设置、下采样和滤波等方面的实战操作,还介绍了PCL的基础、环境配置及相关实战,包括点云读取、显示、颜色设置、下采样和滤波,同时对比了两者的易用性、功能覆盖、性能和适用场景,给出综合实战案例与常见问题解决方法,为点云可视化处理提供了全面指导。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 12万+

122、Android Camera HAL3 框架:Request、Result、Metadata 的异步管道模型

本文深入剖析了Android Camera HAL3框架中的异步管道模型,围绕Request、Result和Metadata三个核心要素展开。作者通过实际案例(黑屏闪退问题)切入,揭示了异步模型中常见的帧序错乱陷阱。文章详细阐释了三个角色的交互机制,指出HAL3采用生产者-消费者模式的关键特征:Request与Result一一对应但不保证顺序。针对开发实践,总结了三个必须加锁的场景和回调函数的锁使用禁忌,并给出解决帧序问题的具体方案(独立帧号生成器)。最后提出五项经验性建议,强调异步模型带来的灵活性与复杂性

sundong_81的博客 213

linux initrd 制作及使用

linux initrd 制作及使用使用Ramdisk作为根文件系统,也就是INITRD一, RamdiskRam Disk 就是将内存中的一块区域作为物理磁盘来使用的一种技术。使用时内核配置:两个选项:第一个设定Ramdisk个数,默认16个;第二个是设定Ramdisk的大小,设定16MDevice Drivers --->[*] Block devices -...

weixin_33796205的博客 235

openlayers6/7 行政区划裁剪 只显示某个区域 示例为天地图

openlayers6/7 行政区划裁剪 只显示某个区域 示例为天地图。

qq_36287830的博客 3101

img镜像文件制作

Img镜像文件制作说明: 如果已经有镜像文件,直接把已有镜像文件dd到cf卡上插到设备上启动,如果没有镜像文件,可以直接起小系统,直接用启动的系统制作(已有镜像文件实质跟这个一样,都是用起来的系统); 创建一个文件夹,用于挂载硬盘第二分区(镜像文件一般有2个分区,第1分区里的东西用不到,第二分区放kernel、initrd.gz(该文件会在启动时解压,解压出来的文件即为根目录下文件)); 将initrd.gz文件解压重定向,重定向的文件夹root中内容即跟系统跟目录下的一样; 想添加什么东西到镜像文

草原狼的专栏 2556

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android arm vm,Android arm linux kernel启动流程(一)

虽然这里的Arm Linux kernel前面加上了Android,但实际上还是和普遍Arm linuxkernel启动的过程一样的,这里只是结合一下Android的Makefile,讲一下bootimage生成的一个过程。这篇文档主要描述bootimage的构造,以及kernel真正执行前的解压过程。在了解这些之前我们首先需要了解几个名词,这些名词定义在/Documentation/arm/Po...

weixin_36214783的博客 309

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

initrd.img相关

initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前, bootloader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。第一阶段启动的目的是为第二阶段的启动扫清一切障爱,最主要的是加载根文件系统存储介质...

digitalkee的博客 2156

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Linux内核学习(3) 最小系统制作2 busybox制作initrd.img和根文件系统

busybox制作initrd.img和根文件系统 参考书籍:《深度探索Linux操作系统 系统构建和原理解析》 参考博客:https://blog.youkuaiyun.com/mao0514/article/details/51248738 (一)开发环境介绍 1.使用win7_64的笔记本安装Virtualbox虚拟机,笔记本cpu为i5-2450m。虚拟机上安装Ubuntu16.04系统作为编译环境,...

xiaoshixiu的专栏 6069

initramfs和initrd的异同

转载地址:https://blog.youkuaiyun.com/z1026544682/article/details/88364725 一、简介 (1) initrd 在早期的linux系统中,一般只有硬盘或者软盘被用来作为linux根文件系统的存储设备,因此也就很容易把这些设备的驱动程序集成到内核中。但是现在的嵌入式系统中可能将根文件系统保存到各种存储设备上,包括scsi、sata,u-disk等等。因此把这些设备的驱动代码全部编译到内核中显然就不是很方便。 为了解决这一矛盾,于是出现了基于ram..

Eliot_shao的专栏 1698

linux镜像文件作用,initrd镜像文件的作用与制作

by falcon 2008-04-19如果自己制作过嵌入式Linux文件系统,那么应该比较了解initrd映像文件是个什么东西了?initrd即initial RAM disk,在内核解压之后,在真正的root filesystem被启动之前,它被加载到内存中,做一些系统初始化的操作,比如加载内核模块,挂载新的root文件系统等[1,2]。initrd本身是一个文件,内核启动时可以把它展开成一个...

weixin_32322859的博客 1148

initrd/initramfs文件制作及解压

MKINITRAMFS(8)系统管理MKINITRAMFS(8) 名称 mkinitramfs-用于生成initramfs image的低级工具 概要 mkinitramfs [option]... -o outfile [version] mkinitramfs -h 描述 mkinitramfs脚本生成一个initramfs映像。initramfs是压缩的cpio归档文件。可以将归档文件与相应的Linux内核一起用于同一体系结构的不同机器中。 mkinitramfs用于高级用途。在您的本

qq_42138566的博客 7950

initrd遇到的问题及initramfs相关

最新在升级新驱动时遇到了一个很奇葩的问题:在客户某个版本的系统下,不管是将核外驱动包以前的老版本卸载后再安装新版本,还是直接升级该核外驱动包的新版本,从加载的驱动中读出的驱动版本一直是老的,甚至将该驱动包卸载后驱动还会加载,且为老版本,查找了一圈发现连KO都已经不存在了,奇了怪了,最后就把目光怀疑到了 **initrd**,果然在initrd里面有这个wifi驱动。那它是怎么进去的呢?Bootloader 加载内核和 initramfs(通常也是叫 initrd.img,但内容是 cpio 格式)。

DD'Notes 854

Linux的INITRAMFS 与 INITRD

1. INITRAMFS 和 INITRD(INITRAMDISK) 是什么? RAMFS 和 RAMDISK 都是内存文件系统,他们有着小巧快速的特点。INIT前缀表示其包含有效“init”可执行文件,可以作为启动的root文件系统。INITRAMDISK出现较早,在使用nor flash和2.4kernel盛行的时期很流行。RAMFS出现也很早,但INITRAMFS是2.6版本kerne...

mndscc的博客 715

53 initrd/initramfs 相关

呵呵 这里主要是 探究一下 根文件系统 相关的东西以及 附加了一些 系统启动的相关信息。

970655147的专栏 598

深入 initrd

Linux 初始启动 RAM 磁盘 (initrd) 是一个块设备,在操作系统中以镜像形式存在,在系统启动过程中被挂载到 RAM 中,以支持两阶段启动模型。挂载完成后,initrd 会被卸载,内存也会被释放。然后,利用分区和引导数据的信息,加载引导加载程序(例如 GRUB)的初始部分,该部分负责加载 GRUB 的第二阶段,而 GRUB 的第二阶段负责加载操作系统内核并切换到其执行。从第一行消息可以看出,在系统启动阶段,内核尝试解包根文件系统映像(如 initramfs),以初始化文件系统。

2501_93209230的博客 915

initramfs/initrd

initramfs概述 initramfs与initrd类似,也是初始化好了且存在于ram中的,可以压缩也可以不压缩。但是目前initramfs只支持cpio包格式,它会被populate_rootfs->unpack_to_rootfs(&__initramfs_start, &__initramfs_end - &__initramfs_start, 0)函数(解压缩、)解析、安装。 initramfs与initrd区别 (1) Linux内核只认cpio格式的initra

M120674的专栏 1023
上一篇: Linux dmidecode备忘
下一篇: shell贪婪匹配
kumu_Linux
博客等级 码龄14年 68粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值