首页 > 其他分享 >rootfs打包方式

rootfs打包方式

时间:2024-03-20 20:12:40浏览次数:21  
标签:方式 文件系统 initramfs initrd 内核 加载 打包 rootfs

参考资料: https://blog.csdn.net/weixin_43269452/article/details/131169725 https://blog.csdn.net/u012787604/article/details/121685547 https://zhuanlan.zhihu.com/p/637951209?utm_id=0 https://blog.csdn.net/m0_71272694/article/details/127028867 https://blog.csdn.net/u012247418/article/details/107727631  

initrd和initramfs的基本概念:

initrd(Initial RAM Disk)和initramfs(Initial RAM File System)都是用于在 Linux 系统引导过程中加载临时文件系统的方法,它们的区别如下:
  1. initrd
  • initrd 是最早期使用的一种方式,它是一个固定大小的内存磁盘,其中包含用于启动系统所需的程序和驱动程序。在引导过程中,内核会先加载 initrd 到内存中,然后将其挂载为根文件系统。一旦 initrd 加载完成,它的使命就完成了,此后真正的根文件系统会被挂载到系统中。
  • initrd 的缺点是固定大小和浪费空间,因为它需要预先分配一个固定大小的内存块。
  1. initramfs
  • initramfs 是 initrd 的进化版本,它是由内核动态生成的临时文件系统,可以根据系统需要加载所需的模块和文件。相比于 initrd,initramfs 更加灵活和高效,因为它只包含引导所需的文件和程序,不会浪费空间。
  • 内核会在引导过程中加载 initramfs 到内存中,并将其作为初始根文件系统。之后,initramfs 负责加载必要的驱动程序和文件,最终将真正的根文件系统挂载到系统中
  在了解initramfs之后,说明下两种rootfs打包方式:

1、rootfs与zImage分开镜像

也就是常用的配置方法,rootfs一个镜像,zImage + dtb为一个镜像,uboot一个镜像 内核配置去掉CONFIG_INITRAMFS_SOURCE宏定义  

2、rootfs打包进zImage

将 rootfs 编译进内核意味着在编译内核时将文件系统直接嵌入到内核镜像中,而不是作为一个独立的文件系统映像。这种做法通常被称为"initramfs"或"initrd",它允许将根文件系统的内容打包进内核,以便在引导时直接使用。 要实现这一点,你需要在内核配置中启用相关的选项,一般来说,需要设置 CONFIG_INITRAMFS_SOURCE 选项来指定 initramfs 的源文件或目录路径,并启用 CONFIG_RD_GZIP 或其他相关选项来启用 initramfs 支持。

标签:方式,文件系统,initramfs,initrd,内核,加载,打包,rootfs
From: https://www.cnblogs.com/lethe1203/p/18085963

相关文章

  • VUE3 十种组件通信的方式(附详细代码)
    props用途:可以实现父子组件、子父组件、甚至兄弟组件通信父组件<template><div><Son:money="money"></Son></div></template><scriptsetuplang="ts">importSonfrom'./son.vue'import{re......
  • Java中常见字符串拼接九种方式
    一、前言在Java编程中,字符串拼接是一项非常基础的操作,它涉及到了很多日常开发工作中常见的场景,例如拼接SQL语句、构建HTTP请求参数等等。因此,对于掌握好字符串拼接技巧不仅有助于提高代码效率,而且能够避免一些潜在的性能问题。下面我们就来列举出来几种方式,搭配例子!二......
  • 密码加密|jsencrypt|md5|加密解密的两种方式
    一、md5npminstallmd5二、JSEncrypt2.1介绍JSEncrypt属于RSA加密,RSA加密算法是一种非对称加密算法;2.2使用安装:npminstalljsencrypt--dev封装工具:utils/jsencrypt.jsimportJSEncryptfrom'jsencrypt/bin/jsencrypt.min'//密钥对生成http://web.cha......
  • V208实现OnlyUpdate方式的OTA
    目录与多数沁恒家的MCU一样,V208的LD文件、启动文件使用的是公共文件,故不建议直接覆盖原路径中的文件,否则会导致其他工程的编译出问题。本文以MultiCentPeri例程作为原始例程,为其添加外置BLE固定库的OTA框架。步骤一:拷贝文件。完整复制一份MultiCentPeri工程的文件夹到同一目录......
  • 远程抓包的几种方式
    远程抓包远程抓包环境Linux环境SSH抓包网络转发TCP监听转发TCP直接转发Windows环境网络设备环境远端系统为linux,一般使用tcpdump;远端系统为windows,一般使用tshark(wireshark的命令行版本,包含在wireshark安装包中);近端(分析端)为linux或者windows一般使用wire......
  • 【Vue3】组件通信以及各种方式的对比
    方式一:props「父」向「子」组件发送数据父组件:定义需要传递给子组件的数据,并使用v-bind指令将其绑定到子组件的props上。<template><child-component:message="parentMessage"/></template><scriptsetup>importChildComponentfrom'./ChildComponent.......
  • springboot项目打包时提示“程序包xxx不存在,找不到符号”
    springboot多包工程,在使用maven进行打包的时候,一直提示“程序包xxx不存在,找不到符号”,但项目是可以正常启动运行的,开始一直以为是maven哪里没有配置好导致的,后来才发现原来是springboot的maven插件导致的。xxx-parent:顶级父工程xxx-a:子项目1xxx-b:子项目2xxx-c:子项目3依赖关系......
  • 删除掉第三方jar包中的部分.class文件,并重新打包成jar包
    一、解压jar包unzipxxx.jar-d解压后目录如下,解压后放在tmpDir目录二、删除jar包里冲突的.class文件三、重新打包jar包jarcvf打包后.jar.//.//表示将当前目录下的所有目录的.class文件打进jar包......
  • [转]Python格式化字符串的4种方式
     文章目录Python格式化字符串的4种方式一:%号二:str.format三:f-Strings四:标准库模板五:总结四种方式的应用场景 Python格式化字符串的4种方式一:%号%号格式化字符串的方式从Python诞生之初就已经存在时至今日,python官方也并未弃用%号,但也并不推荐这种格式化方式......
  • 现代化方式打造CSAPP环境
    前情提要距离我上次尝试完成Csapp已是一年前,在期末周时迅速放弃了两年前的环境搭建ArchLinux本地一把梭,出于对本地环境的隔离与保护这次将使用容器化技术+Vscode搭建尽量避免对本机的影响,以及达到对环境更好的管理与备份。yay-Sdockersudouseradd-aGdocker$USER#......