製作 Root Filesystem 映像檔(Image File)

使用mount挂载磁盘mount: wrong fs type, bad option, bad superblock on 以及Centos7.9服务器LVM方式挂载磁盘时的问题 使用mount挂载磁盘的常见问题就是可能碰到mount point does not exist以及wrong fs type, bad option之类的错误。进行磁盘挂载前,我们要先确认linux是否已经识别磁盘,可以使用lsblk或fdisk -l查看磁盘是否已经能正常识别。如果能识别如Disk /dev/vda和Disk /dev/vdb多个,则表示正常识别。识别之后执行挂载命令:mount /dev/vdb /disk。 阅读详情

from:http://www.jollen.org/wiki/%E8%A3%BD%E4%BD%9C_Root_Filesystem_%E6%98%A0%E5%83%8F%E6%AA%94%EF%BC%88Image_File%EF%BC%89

截至目前為止,我們的檔案系統已經擁有基本的系統指令與工具。接下來,我們即可將建置完成的 root filesystem 製作成 ext2 格式的映像檔。

以下提供二種 ext2fs image file 的製作方式:

  • 土方法
  • 使用 genext2fs 工具

先說明傳統的土方法。首先,先利用dd指令做出一個空白的檔案,大小為 4M(bytes):

# dd if=/dev/zero of=ext2fs bs=1k count=4096 

我們將檔案命名為 ext2fs,接著再將 ext2fs 製作成 ext2 格式的檔案系統:

# mkfs.ext2 ext2fs
mke2fs 1.32(09-Nov-2002)
ext2fs is not a block special device.
Proceed anyway?(y,n)y 

選擇y後出現以下畫面:

Filesystem label=
OS type: Linux
Block size=1024(log=0)
Fragment size=1024(log=0)
128 inodes, 1024 blocks
51 blocks(4.98%)reserved for the super user
First data block=1
1 block group
8192 blocks per group, 8192 fragments per group
128 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override. 

到這裡我們已經做好一個檔案格式為 ext2 的空白映像檔,再來只要將先前做好的 root filesystem 全部複製到 ext2fs 映像檔「裡面」即可。

先將 ext2fs 附掛至任一空目錄,例如 mnt/:

# mkdir mnt/
# mount -t ext2 -o loop ext2fs mnt/ (指定檔案系統為 ext2) 

複製檔案系統時,我們不使用 cp 指令,而是利用 tar 來完成:

# cd install/
# tar cz * > ../install.tar.gz (將檔案系統做成tarball,同時也備份 root filesystem。)
# cd ..
# cd mnt/
# tar zxvf ../install.tar.gz (再將tarball解至映像檔) 

接著將映像檔 umount 並壓縮即可:

# cd ..
# umount mnt/
# gzip -9c ext2fs > pub/ext2fs.gz 

最後得到的 ext2fs.gz 即是完成品。請注意,若不使用 tar 來說,也應該使用 cpio 來複製檔案,避免使用 cp 指令。

使用 genext2fs

genext2fs 是一個 ext2 filesystem image file 的製作工具,可以讓我們很方便地將 root filesystem 製作成 image 檔。請由 genext2fs 的官方網站下載原始碼套件:

http://genext2fs.sourceforge.net/ 

編譯後可以取得 genext2fs 檔案,以下是將 install/ 目錄製作成 ext2fs image 檔的指令:

# genext2fs -b 8192 -i 1024 -d install/ ext2fs 

執行後,會得到檔名為 ext2fs 的 image 檔,大小為 8 MB(透過 ‘-b’ 參數指定 image file 大小);接著同樣再用 gzip 將 ext2fs 檔壓縮即可。

[ 編輯]

Resources


Buildroot根文件系统构建 文章目录Buildroot根文件系统构建一、何为buildroot?1. buildroot简介2. buildroot下载二、buildroot构建根文件系统1. 配置buildroot1. 配置 Target options2. 配置 Toolchain3. 配置 System configuration4. 配置 Filesystem images5. 禁止译 编译 Linux 内核和 uboot6. 配置 Target packages2. 编译buildroot3. buildroot根文件 阅读详情

相关推荐

嵌入式Linux启动全解析:U-Boot、内核与根文件系统的三级火箭模型

在嵌入式Linux系统开发中,系统启动是一个从底层硬件初始化到完整操作系统运行的精妙过程。其核心原理遵循经典的“三级火箭”模型:第一级Bootloader(如U-Boot)负责硬件初始化和环境搭建;第二级Linux内核进行全面的硬件驱动加载与核心子系统初始化;第三级根文件系统(rootfs)则提供用户态运行环境。这一流程的技术价值在于实现了硬件抽象与软件分层的解耦,使得嵌入式设备能够从裸机状态可靠地启动至复杂的应用生态。在实际应用场景中,开发者常需处理如**U-Boot SPL阶段DDR初始化失败**、**

weixin_34034261的博客 614

8 Buildroot 根文件系统构建

根文件系统一般也叫做 rootfs,这个是属于 Linux 内核的一部分。根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。我们要明白文件系统和内核是完全独立的两个部分。

Toutiegongzhu的博客 3306

嵌入式Linux INITRD配置与启动实战:从内核配置到U-Boot引导

在嵌入式Linux系统开发中,根文件系统的挂载是系统启动的关键环节。其核心原理在于,内核启动后需要访问一个包含基本工具和驱动的文件系统,才能完成硬件初始化并挂载最终的根文件系统。这一技术对于资源受限或启动环境不稳定的嵌入式平台具有重要价值,它能确保系统从“能启动”到“稳定启动”。INITRD(Initial RAM Disk)正是实现这一目标的核心技术之一,它作为一个临时的、内存中的根文件系统,为内核提供了必要的运行环境。在嵌入式开发中,尤其是在类似MPC8220这类老牌平台上,INITRD常与U-Boot

weixin_30780649的博客 389

buildroot Root File System

buildroot底下的root filesystem建制流程

陨石䧛的天际 500

MPC8260ADS嵌入式Linux移植实战:从U-Boot到根文件系统全流程解析

嵌入式Linux系统移植是嵌入式开发的核心环节,其本质是让为通用PC设计的操作系统在专用硬件上运行。其技术原理基于交叉编译,通过宿主机上的工具链将源代码编译为目标架构的机器码,再借助引导加载程序完成硬件初始化和内核加载。这一过程的技术价值在于,相比裸机编程或RTOS,嵌入式Linux提供了成熟的内存管理、进程调度、网络协议栈和文件系统,大幅提升了开发效率和系统功能性。其典型应用场景包括网络设备、工控系统等资源受限的专用硬件平台。本文以经典的PowerPC架构MPC8260ADS评估板为例,详细解析了从U-B

weixin_30887919的博客 337

嵌入式Linux内核烧录与启动全解析:从PowerPC Sandpoint到现代实践

嵌入式Linux系统开发中,内核烧录与启动是连接硬件与操作系统的关键环节。其核心原理在于引导加载器(如U-Boot、DINK32)负责硬件初始化、将内核镜像加载到指定内存地址,并完成控制权移交。这一过程的技术价值在于实现软件系统的硬件固化,使设备能够脱离开发环境独立上电运行,这对于工业控制、网络通信等需要高可靠性的嵌入式产品至关重要。典型的应用场景包括评估板原型验证、产品化部署以及现场设备升级。以经典的Freescale PowerPC Sandpoint平台为例,通过其内置的DINK32工具链,开发者可以

weixin_30417487的博客 370

Buildroot构建指南——根文件系统(Rootfs)

《Buildroot构建指南——根文件系统(Rootfs)》

danshiming的博客 5761

【1】概要,构建,分区,升级

node -v查看版本不要超过16,devtool modify webui-vue进入,npm i安装卡在canvas:npm install canvas@2.11.2 --canvas_binary_host_mirror=https://registry.npmmirror.com/-/binary/canvas ,继续npm i,依赖安装完后注释bb中do-compile中rm -rf node-modules。

持续更新ing... 6259

【Linux】【busybox】基于busybox的根文件系统的完善以及介绍根文件系统下的文件夹和文件与Linux内核的衔接

最直观的是就是用户日常直接交互的那一层所有文件夹是根文件系统,内核作为底层支撑,运行在后台,不直接以文件夹的形式呈现给用户。1. 内核启动↓2. 解析 bootargs 中的 root 参数↓3. 加载 initrd 到内存↓4. 执行 initrd 中的 init 脚本- 加载必要的驱动- 检测存储设备- 挂载根文件系统↓5. 切换根文件系统(pivot_root)↓6. 启动 init 进程(PID 1)↓7. init 进程执行系统初始化。

qq_73648789的博客 288

【寄存器模型】二、前门访问与后门访问

1.后门访问可以更好的完成前门访问能够完成的事情:后门访问不消耗仿真时间,且消耗的运行时间也远小于前门访问的运行时间。 2.后门访问可以完成前门访问不能完成的事:对于某些特定的场景,如网络通信系统中的一些只读计数器,当要验证计数器进位归零的场景时,前门访问无法完成写寄存器操作,只能通过消耗仿真时间来使计数器到达特定的计数值。而后门访问可以直接对只读寄存器赋一个初值......

carrotbanana的博客 9657

告别繁琐同步:Zotero与Obsidian双向联动新方案(基于Better BibTeX与MarkDBConnect)

本文详细介绍了一套基于Better BibTeX、Bibnotes Formatter和MarkDBConnect插件的Zotero与Obsidian双向联动方案。该方案通过建立智能数据通道,实现文献信息的自动同步与笔记的增量更新,解决了手动同步的繁琐问题,并支持在两大工具间无缝跳转,极大提升了科研和知识管理的工作效率。

weixin_29213827的博客 641

容器架构深度解析:从What‑Why‑How到Docker完整运行流程

本章梳理容器核心知识,先从发展、定义、价值、原理解析容器,对比容器与虚拟机差异,说明 Docker 借鉴集装箱思路统一软件运行环境;再拆解 Docker C/S 架构及客户端、守护进程、镜像、容器、仓库五大核心组件与运行逻辑;最后以 docker run 实操示例,演示组件协同完成镜像拉取、容器创建运行的完整流程。

2602_95508776的博客 521

学习笔记之——Event Camera(事件相机)调研

概述 Event Camera是一种bio-inspired sensor,对应的领域为bio-inspired vision。对于传统的相机,从某种程度上,是捕获一个静态/静止的空间,而Event Camera的目的是:敏感地捕捉运动的物体。 对于传统RGB-camera,相机传回的信息是同步的,所谓同步,就是在某一时刻t,相机会进行曝光,把这一时刻所有的像素填在一个矩阵里回传,一张照片就诞生了。一张照片上所有的像素都对应着同一时刻。至于视频,不过是很多帧的图片,相邻图片间的时间间隔...

gwpscut的博客 3万+

树莓派搭建ArduSub地面站:从写卡到视频流的完整实践指南

树莓派作为轻量级Linux嵌入式平台,凭借低功耗、强USB外设兼容性与成熟社区支持,成为水下机器人(ROV)地面站的理想伴侣计算机。其核心原理在于与Pixhawk飞控分工协作:由树莓派承担MAVLink协议桥接、H.264视频流采集与转发等非实时计算任务,释放飞控资源并提升系统可扩展性。该方案显著降低入门门槛,使高校学生与业余爱好者可在数小时内完成稳定部署。结合ardusub入门教程与树莓派写卡实操,本指南覆盖磁盘映像安装、SSH初始化、WiFi联网、companion软件栈配置及视频流调试等关键环节,兼顾

diaogan4202的博客 368

PyInstaller打包后在Win7无法运行,提示缺少`api-ms-win-core-path-l1-1-0.dll`问题解决

这个问题的关键在于Python 3.12和Windows 7之间的兼容性问题。解决方法是使用Python 3.8.8版本进行打包,确保程序能够在Windows 7系统上运行。如果你也遇到类似的问题,不妨尝试降级Python版本,看看是否能够解决。希望我的经验能够帮到你!如果你在使用PyInstaller打包时遇到其他问题,欢迎留言讨论。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 993

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2197

Docker 学习:术语、使用、Compose、Swarm

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

freeking101的博客 6167

手把手教你写上位机软件(c#、winform)

上位机软件模板

qq_34059233的博客 7万+

docker学习

docke学习

weixin_44137201的博客 1719

3步搞定.NET Core在UOS上的部署?手把手教你从零到上线!

本文详细介绍了如何在统信UOS系统上部署.NET Core应用程序的完整流程。首先,通过安装.NET Core SDK,确保UOS系统能够编译和运行C#代码。接着,创建一个简单的控制台应用,并验证其本地运行情况。最后,通过发布应用、传输文件到UOS服务器,并解决权限问题,确保应用能够在UOS上顺利运行。文章还提供了常见问题的解决方案,如依赖缺失、权限不足和服务启动失败等,帮助开发者避免常见陷阱。通过本文的指导,开发者可以轻松将.NET Core应用部署到UOS系统,并实现24/7的稳定运行。

java专栏 587

[23]-->变长SPI接口

然而,FPGA技术复杂,学习门槛较高,许多人(初学者或学生)在学习过程中面临诸多挑战。(1)模式0:SCK串行时钟线空闲是为低电平,数据在SCK时钟的上升沿被采样,数据在SCK时钟的下降沿切换,CPOL= 0,CPHA=0;(2)模式1:SCK串行时钟线空闲是为低电平,数据在SCK时钟的下降沿被采样,数据在SCK时钟的上升沿切换,CPOL= 0,CPHA=1;(3)模式3:SCK串行时钟线空闲是为高电平,数据在SCK时钟的上升沿被采样,数据在SCK时钟的下降沿切换,CPOL= 1,CPHA=1;

m0_46498597的博客 178

Docker学习笔记(全网最详细)

尚硅谷周阳老师Docker经典教程,本来是脑图,但为了增强记忆达到实践效果,就整理了下笔记,欢迎各位大佬评论指点.

LXYDSF的博客 2457

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Binwalk固件逆向分析:从原理到实战的自动化解包指南

在嵌入式安全与物联网设备研究中,固件分析是理解设备内部逻辑、发现潜在漏洞的基础环节。其核心原理在于识别二进制文件中嵌入的各类文件格式签名,如压缩包、文件系统镜像等,通过魔术数字匹配实现自动化定位。这一技术价值在于将繁琐的手动逆向工程转化为高效的自动化流程,大幅降低安全研究门槛。在实际应用场景中,研究人员常需处理包含嵌套压缩、自定义头部的复杂固件,此时借助Binwalk这类工具进行递归提取与深度控制显得尤为关键。本文聚焦于Binwalk的模块化架构与插件化设计,详解如何通过extract.conf配置文件与签

weixin_36250541的博客 490

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

新手学KVM|图形virt‑manager与命令行virt‑install创建管理虚拟机

本文面向KVM虚拟化初学者,讲解Linux下两种虚拟机部署管理方案:图形工具virt-manager与命令行virsh、virt-install。以Win7为例演示图形化上传镜像、创建虚拟机、系统安装与快照操作;同时实操命令行磁盘创建、虚拟机部署,针对无图形服务器环境,介绍VNC远程连接管理方法,覆盖KVM基础运维核心操作,适合新手入门参考。

2602_95508776的博客 791

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

docker命令及Centos8安装

目录Docker简介系统环境检查帮助命令镜像命令容器生命周期命令容器操作命令仓库命令 Docker简介 镜像(image) docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,创建数量不限 容器(container) docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建。 类似于一个简易的Linux系统 仓库(repository) 仓库是存放镜像的地方,分为私有仓库和公有仓库。 目前国外和国内均有仓库地址,如国内的阿里云。 系统环境检查 检查Linux内核版本

Orchestrator_me的博客 4134

C++复刻经典游戏实战:从环境搭建到性能优化的完整避坑指南

游戏开发是软件工程中一个综合性极强的领域,它涉及计算机图形学、数据结构、算法、操作系统和软件工程等多个核心概念。其基本原理是通过代码构建虚拟世界,处理用户输入、更新游戏状态并实时渲染输出,最终实现交互式体验。在技术价值上,游戏开发不仅能锻炼程序员对性能优化、资源管理和跨平台兼容性的深刻理解,更是将复杂系统设计与工程实践结合的典范。尤其在复刻经典游戏的应用场景中,开发者需要运用现代C++技术栈解决从底层内存管理到上层游戏逻辑的全链路问题。本文聚焦于使用C++和SDL2复刻经典RPG游戏,深入探讨了开发环境配置

weixin_30619101的博客 420
上一篇: dalivk tools
下一篇: mkimage
jackie_gnu
博客等级 码龄16年 3粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值