首页 > 其他分享 >Openwrt编译后生成的固件区别

Openwrt编译后生成的固件区别

时间:2024-10-27 18:00:05浏览次数:5  
标签:引导 img efi gz squashfs 编译 固件 Openwrt

Openwrt编译后生成的固件区别

2024-07-02

固件格式:

  • kernel:内置最简文件系统的Linux内核,适用于首次安装或故障恢复

  • sysupgrade:从本来就是openwrt的固件基础上升级,或者无刷机引导限制的机器上直接刷入此格式文件

  • factory:用于从设备的原厂固件刷入factory,再刷入breed之类不死使用

  • ext4 :可以扩展磁盘空间大小

  • squashfs :可以使用 重置功能(恢复出厂设置)

  • efi : efi引导,非BIOS引导(优先使用efi固件,无法启动时再换无efi固件)

  • rootfs :不带引导,可自行定义用grub或者syslinux来引导

  • combined :带引导

  • .img :物理机使用

  • .vmdk 虚拟机 ESXi/VMware 使用

  • .qcow2 :虚拟机 PVE 使用

  • .vdi :虚拟机 VirtualBox 使用

  • .vhdx :虚拟机 Hyper-V 使用

  • .tar:容器 Docker、LXC 使用

make menuconfig命令后,配置界面Openwrt configuration-->Target images中可以配置自己所需的固件版本,可以同时配置多个,将会生成对应的固件版本

Openwrt编译后生成的固件区别

常见编译固件介绍

1. ext4-combined-efi.img.gz

  • 使用可读写的ext4分区,没有squashfs的只读文件系统

  • 根分区可以使用更大的驱动器(e.g. SSD/SATA/mSATA/SATA DOM/NVMe/etc)进行扩展

  • 没有故障安全模式和出厂重置等功能,这些功能需要squashfs的支持

  • 自带引导分区和根分区以及主引导记录 (MBR) 区域以及更新的 GRUB2

  • 支持efi引导

2. ext4-combined.img.gz

  • 同1,但不支持efi引导

3. ext4-rootfs.img.gz

  • 只有根分区的镜像,重新安装不会覆盖引导分区和主引导记录 (MBR),

  • 由于不带引导分区,首次安装需要自行使用grub或者syslinux来引导

  • 使用ext4分区

4. kernel.bin

  • 独立的内核

5. squashfs-combined-efi.img.gz

  • squashfs是个只读的文件系统, 相当于windows的ghost, 支持故障安全模式和出厂重置等功能

  • 包含一个只读的根文件系统和一个存储设置以及安装软件可读写的分区

  • 组合模式,只有不到100MB的空间来存储额外的包和配置,并且无法扩展根分区

  • 支持efi引导

6. squashfs-combined.img.gz

  • 同5,但不支持efi引导

7. squashfs-rootfs.img.gz

  • 没有查到这个是做什么,有知道的大佬可以说下

8. rootfs.tar.gz

  • 所有的文件都在根目录下

  • 不带引导,需要自行使用grub或者syslinux来引导

建议:

  • 需要扩展分区使用: ext4-combined-efi.img.gzext4-combined.img.gz

  • 不需要扩展分区使用: squashfs-combined.img.gzsquashfs-combined-efi.img.gz

标签:引导,img,efi,gz,squashfs,编译,固件,Openwrt
From: https://www.cnblogs.com/gnz48/p/18508676

相关文章

  • 编译器的实现是用C好还是C++
    标题:编译器的实现是用C好还是C++在探讨编译器的实现时,是否选择C语言或C++取决于多个因素,包括性能需求、团队熟悉度、以及项目的特定需求。C语言以其运行时性能和底层操作的直接性著称,是许多传统编译器如GCC的选择。C++提供了更高级的抽象和面向对象的特性,使得大型项目的组织和维......
  • Windows 10上编译FFmpeg以支持NVIDIA GPU加速
    目录一、引言二、使用NVDIA加速的准备工作三、编译FFmpeg四、使用FFmpeg五、常见问题及解决方案六、总结一、引言        FFmpeg是一个强大的多媒体处理工具,它支持音频、视频和流媒体的录制、转换和流式传输。NVIDIAGPU提供了强大的计算能力,通过CUDA和NVENC......
  • C项目要怎么缩短编译时间
    在处理C项目时,为缩短编译时间可以采取以下措施:1.优化代码结构,减少不必要的编译依赖;2.使用并行编译技术;3.优化编译器设置;4.利用增量编译和预编译技术;5.合理配置硬件资源。通过这些方法,我们可以显著减少C项目的编译时间,从而提高开发效率。1.优化代码结构项目的代码结构是影响编......
  • 《LLVM编译器原理与实践》新书推荐(已出版)
    《LLVM编译器原理与实践》,机械工业出版社出版,已于2024年10月出版。在京东、淘宝天猫、当当等网上都有出售。内容全面详实,实战实践示例多。全面阐述了LLVM原理、尤其突出LLVM实践实战技术,是目前网上全面解析LLVM的最新书籍,内容紧跟LLVM新时代和新潮流。本书内容经过机械工业出版社......
  • 网易博客旧文----zlib在windows上的编译
    zlib在windows上的编译2013-01-3117:38:29|分类:编程资料|标签:|举报|字号大中小订阅因为要进行zip方面的开发,因此需要对于zlib库进行研究,需要编译一个库来使用,同时可以跟踪zlib代码实现,发现问题。首先从http://www.zlib.net/下载了最新的源代码,版本是1.2.7解压后......
  • 【Linux学习】(6)编译器gcc/g++
    前言本节重点:掌握gcc/g++编译器的使用,并了解其过程,原理一、Linux编译器-gcc/g++使用1.gcc/g++的基本使用在前面我们学习了vim,知道如何在Linux中编写代码。但又是如何编译代码的?——在Linux中我们编译代码使用的是gcc/g++。gcc只能用来编译C语言,g++即可编译C也可编译......
  • 【C语言】预处理(预编译)详解(上)(C语言最终篇)
    文章目录一、预定义符号二、#define定义常量三.、#define定义宏四、带有副作用的宏参数五、宏替换的规则六、宏和函数的对比1.宏的优势2.函数的优势3.宏和函数的命名约定一、预定义符号  学习本篇文章的内容推荐先去看前面的编译和链接,才能更好地理解和吸收,文章......
  • 【Linux探索学习】第八弹——Linux工具篇(三):Linux 中的编译器 GCC 的编译原理和使用详
    #1024程序员节|征文#Linux下的vim编辑器:【Linux探索学习】第七弹——Linux的工具(二):Linux下vim编辑器的使用详解-CSDN博客前言:在上一篇我们学习了如何在Linux环境下直接用vim编辑器来进行编辑代码,今天我们来学习如何运行我们所编辑的代码,运行代码就需要编译器,也就是我们下......
  • GNU编译器(GCC)原理简介
    GNU编译器(GCC)原理简介  GNU编译器(GCC,GNUCompilerCollection)是GNU工具链的关键组件,与GNU、Linux相关项目的标准编译器。它设计之初仅用来处理C语言的(也被称为GNUC编译器),紧接着扩展到C++、Objective-C/C++、Fortran、Java、Go等编程语言。目前,GCC已经被以知道各种指令集体......
  • wpf XAML编译成BAML的过程
    XAML编译成BAML的过程xaml编译成baml,baml是一种压缩文件,为了提高加载速度构造函数中的InitializeComponent()加载baml编译过程在编译过程中,XAML文档最终被转换成BAML(二进制应用程序标记语言)作为资源嵌入到程序集中。当应用程序运行时,会从构造函数的实现方法中提取BAML......