72 yaffs文件系统挂载慢 sync不起作用

【计算机组成】闪存Flash寿命问题以及如何解决Flash寿命问题 回答这个问题的时候,我们不仅回答如上的如何提高闪存寿命中的要点,同时也可以回答将数据写入硬盘、磁带等磁性存储介质中(注意:不能写入内存中,内存属于易失真的存储介质,断电后数据消失)。如果还有其他的要点,欢迎各位朋友评论区交流。分享一个前几天面试,面试官问的问题:数据向Flash写,数据一多,写入FLASH次数过多,坏掉了怎么办? 阅读详情

1 引言

        最近在开发过程中遇到了一个问题:Linux在启动时挂载根文件系统时很慢很慢!

        每次开机都是这样,项目中使用的是yaffs文件系统,理论上第一次启动时,会扫描完整的rootfs的flash区域建立索引,第二次启动就不会再扫描一次。但是实际情况是系统启动每次都扫描一遍,着实让人费解。

        经过排查探究,最后发现是自己的一个知识缺漏点,由于操作流程不正确,才导致每次启动都要扫描一遍flash,因此特此记录。

2 现象

        linux版本:4.3

        文件系统:yaffs

        flash类型:nandflash

        系统启动后会将文件系统挂载为只读文件系统,但由于某些需求会更改文件系统的内容,因此会对文件系统remount为可读可写,操作完之后会设置会只读。

        在上述流程中,虽然我们在增删、更新文件系统数据内容后,有调用sync命令,想将文件数据及时回写到磁盘中,但由于我们增删文件后,立马设置文件系统为只读,之后才进行的sync操作,使得sync命令实际并未产生预期相符的结果,导致yaffs文件系统的checkpoint信息并未更新,而文件系统内容实际是有更改的,系统起电后发现现存文件系统信息与实际算出来的不匹配,所以系统重启都要扫描一遍flash,从而导致该问题。

        因此,通过本次经验得知,如果要更新yaffs文件系统的checkpoint信息,那么调用snyc命令时一定要注意此时文件系统是否为可写状态!!!!

        下面是我错误的操作流程。

#我的错误流程
mount -o remount,rw /
cp /tmp/xxx /bin/
mount -o remount,ro /
sync
sync

        正确的操作流程应该如下:

#正确流程
mount -o remount,rw /
cp /tmp/xxx /bin/
sync
sync
mount -o remount,ro /

需要注意:文件系统在可写状态下,执行sync才能更新checkpoint信息!!否则sync不起作用。

over!

ISP-全局色调映射(GTM)算法简单实现 色调映射算法,色彩空间转换LAB 阅读详情

相关推荐

内存管理(二)——内存分段

内存分段

weixin_43844995的博客 2693

yaffs2文件系统的工作流程和checkpoint机制

本文主要讲解一下一个具体的文件系统,yaffs2文件系统,当然针对需要深入研究的人或者说对文件系统完全不了解的读者可以先看一下以下两篇推荐文章。 http://www.ibm.com/developerworks/cn/linux/l-vfs/ 解析 Linux 中的 VFS 文件系统机制 http://www.cnblogs.com/yuyijq/archive/2013/02/24/2923855.html Linux虚拟文件系统(VFS) 像...

boyemachao的专栏 2361

华为eNSP Pro实战:NE/CE设备SSH远程配置避坑指南

本文针对华为eNSP Pro用户在模拟多台NE路由器或CE交换机时遇到的浏览器卡顿问题,提供了详细的SSH远程配置避坑指南。通过对比浏览器与SSH客户端的资源占用和操作体验,文章详细阐述了为NE和CE设备配置SSH服务的关键步骤、命令差异及常见错误排查方法,旨在帮助用户提升实验效率,实现稳定高效的远程管理。

weixin_29196891的博客 223

Yaffs Direct Interface

Yaffs Direct Interface的部分内容翻译记录

小树的博客 970

Vivado时序违例debug

显示了数据路径延迟。例如,对于违例路径,若布线延迟超过50%,说明该延迟是导致时序不能收敛的主要因素,因此可围绕降低布线延迟这一靶心达到时序收敛。对于跨时钟域路径,Requirement数值会有所变化,但如果数值为0.1,显然是不合理的。目的时钟路径单元,时钟从adc0_bufg/O输出,到达PLLE4_ADV,经过BUFGCE输出,最终到达SRLC32E移位寄存器,对应。源时钟路径单元,时钟从adc0_bufg/O输出,到达PLLE4_ADV,经过BUFGCE输出,最终到达FDRE触发器,对应。

weixin_44513618的博客 1618

上海市大数据中心笔试模拟试卷

为帮助考生熟悉上海市大数据中心笔试的题型、考点及答题逻辑,以下整理了一份的模拟试卷,涵盖大数据专业知识、行政职业能力测试(行测)、公共基础知识(含上海本地政策)三大核心模块,并附详细答案解析。

一叶之秋的博客 1815

UBIFS介绍 - MTD网站

原文地址 http://www.linux-mtd.infradead.org/doc/ubifs.html Big red note 在了解UBIFS之前一定要注意UBIFS和任何传统的文件系统是不一样的:UBIFS不是运行在block device之上的(比如hard disk, MMC/SD卡,USB flash驱动等等)。UBIFS是运行于raw flash之上。请在开始U

kickxxx的专栏 2万+

在 Ubuntu 22.04 上配置 SonarQube 与 CI/CD 流水线实现自动化代码审查

本文详细介绍了在Ubuntu 22.04系统上配置SonarQube并与CI/CD流水线集成的完整流程,实现自动化代码审查。从环境准备、数据库配置到核心参数调优,再到与Jenkins和GitHub Actions的深度集成,提供了实战技巧和性能优化建议,帮助团队提升代码质量监控效率。

weixin_28829325的博客 260

linux系统挂载磁盘慢,arch开机速度竟然是挂载磁盘拖慢了。。

该楼层疑似违规已被系统折叠隐藏此楼查看此楼全程21秒,挂载分区的秒数真是。。。是磁盘太菜了吗Startup finished in 4.804s (kernel) + 17.037s (userspace) = 21.841s6.596s media-E.mount6.322s media-D.mount6.259s dev-sda7.device3.971s media-C.mount3.96...

weixin_36012152的博客 307

STM32驱动MG996R舵机的PWM控制与闭环原理

舵机是一种典型的模拟闭环伺服系统,其核心是通过电位器反馈实现角度位置的自动校正。工作原理基于负反馈控制:目标PWM脉宽决定期望角度,电位器输出实时反馈实际角度,控制电路计算偏差并驱动电机消除误差。该机制赋予舵机强带载能力与抗干扰性,是机器人、云台、智能执行器等场景的关键执行单元。在嵌入式开发中,STM32通过定时器生成标准20ms周期、0.5–2.5ms脉宽的PWM信号,需严格遵循电气规范,并解决PA15引脚SWJ复用冲突、定时器重映射及CCR精度计算等关键问题。本文深入解析MG996R舵机控制全流程,涵盖

weixin_42600407的博客 562

Simulink仿真状态空间中状态变量时域响应

起因 今天老师留了一道关于状态空间变量响应的题,于是想用simulink仿真,一开始使用state-space模块,但是发现它只能输出y,没办法显示状态变量的变化情况。然而状态变量之间的关系都可以表示为一阶微分方程组,因此我们考虑在Simulink中搭建微分方程组来求解这个问题。 微分方程组 x1˙=x2x2˙=−4x1−5x2+1(1)\dot{x_1}=x_2\\ \dot{x_2}=-4x_...

ZYunfei的博客 7450

linux flash 存储寿命,FLASH延长写寿命算法

NOR(或非)和NAND(与非)是市场上两种主要的Flash闪存,sNORFLASH 和CPU之间不需要其他电路控制,NOR flash可以芯片内执行程序,而NAND FLASH 和CPU 的接口必须由相应的控制电路进行转换, NAND FLASH 以块的方式进行访问,不支持芯片内执行。NAND FLASH 比NOR FLASH 容量大,价格低, NAND flash中每个块的最大擦写次数为100...

weixin_35286433的博客 1070

YOLO + SubspaceAD:一张良品图,检出所有未知缺陷

当YOLO遇上子空间建模,工业质检正迎来从“见多识广”到“举一反三”的质变时刻。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 496

nuc970-yaffs2文件系统启动的配置工作

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34280237的博客 1227

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

yaffs2 启动挂载流程

1.概述 yaffs2是yaffs的改进,主要是为了支持2KB pagesize的Nand Flash。本文主要探究yaffs2在linux中的初始化以及挂载过程。 2.初始化过程 linux要使用yaffs2文件系统,或者说要支持yaffs文件系统,首先要再内核配置环节选择支持yaffs(当然如果内核源码内没有yaffs,还需要完成移植的过程)。 首先看到yaffs_vfs.c这

Be a bad guy!的专栏 5025

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

flash启用数据同步功能,防止文件掉电丢失

(1)在操作文件的地方,调用具有同步功能的函数,如fsync函数,这样只在操作对应文件时才会写入。 (2)修改../x80文件,将          mount -t ubifs ubi1_0 /xxx           修改为:          mount -t ubifs -o sync ubi1_0 /xxx 修改成这样后,以后每次操作/xxx的数据都会实时写入flash中

Atago_的博客 1534

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

uni-app中创建组件以及组件中生命周期函数

一点睛 在uni-app中,可以通过创建一个后缀名为vue的文件,即创建一个组件成功,其他组件可以将该组件通过import的方式导入,再通过components进行注册即可。 二代码 1创建test.vue组件 <template> <view id="myview"> 这是test组件{{num}} </view> </template> <script> export default { data() { ...

实践求真知 2814

Android/Linux 磁盘写入缓存/等待时间 参数修改

Linux系统当进行文件写操作时,并不会将数据立马写入磁盘,而是写写到缓存,等待达到占用内存一定比例或超过一定时间才会批量将这些缓存数据写入磁盘,这样可以减少IO操作,提升性能和磁盘寿命。如果数据还没来得及写入磁盘发生硬件掉电,这些数据就会丢失。应用可以调用sync实时将内容写入磁盘避免丢失。排查丢失问题可以在断电前执行sync命令,看能不能复现,若无法复现,说明就是缓存没有及时写入磁盘导致。 ...

u013463707的专栏 2687

【FLASH】STM32内部Flash模拟EEPROM磨损均衡算法--存储设备擦写均衡自带掉电保护接口-如何在同等存储空间下增加FLASH寿命呢?往下看-STM32F334实现FLASH擦写均衡

erase_flash:这里的长度其实无效,这里需要提供的是擦除一页的接口,这里也许会有人说NAND Flash,最小擦除单位为1块,也就是64页,怎么办呢?ReadAddr:读地址,由于查找最后一块有效数据地址随着分区的大小,查找时间会相应的变长,所以在系统上电初始化的时候将最后一块有效数据块首地址记录,之后就不用再从子分区0查找了,提高系统执行效率,这个保留在这,暂未实现,后面的版本会加入。打个比方:周一到周五的菜单,每天固定三个菜,要进行存储的话,就需要提供五组数据,那么日期就是ID,用来区分周几。

qq_53828053的博客 4617

基于FREERTOS 的YAFFS2文件系统掉电处理

确保数据及时同步到闪存、处理掉电前的紧急操作、手动调用文件系统sync函数、硬件电容备份等。同时,还要注意在FreeRTOS中任务的优先级设置,确保紧急任务在掉电中断时优先执行。

bifudoph的博客 668

NandFlash驱动和Yaffs文件系统的移植

2.6的内核自带了NandFlash驱动,移植起来就非常方便在arch/arm/mach-s3c2410/devs.c中添加#include #include #include static struct mtd_partition nand_partitions[] = { [0] = {  .name = "nanduser",  .size = SZ_64M,  .offset = 0,

ARM Linux and soul 2323

Yaffs文件系统学习

底层则通过Linux提供的MTD接口实现,该层由驱动工程师开发,不同的驱动和设备对应不同的MTD控制块,MTD1、MTD2、MTD3...此函数返回了这个chunk的ECC状态(无ECC纠错/有ECC纠错/ECC无法纠正),将状态反馈给上层,Yaffs文件系统对此chunk做针对性处理。即此函数为驱动MTD的上一层。Linux驱动中有字符设备、块设备、网络设备三大设备,其中开发难度也是递增的,网络设备>块设备>字符设备。垃圾回收机制:通过淘汰低质量块(如频繁出错的老化块),降低未来ECC错误的概率。

qq_39645539的博客 381

MTD系列 - linux中yaffs2文件系统挂载

<br />/*<br /> 题记:<br />  上一篇文章《android平台上linux启动时init进程解析init.rc文件分析.txt》中跟踪了nand分区上的yaffs2文件系统在系统初始化时最上层的表现,调用到libc库函数mount()为止。对于我关心的几个分区可以将其罗列一下:<br />  mount(“/dev/block/mtdblock4”,  “/system”,   “yaffs2”, 0          , NULL);<br />  mount(“/dev/bl

zgolee的专栏 1万+

yaffs android,android_yaffs文件系统移植问题解决

linux内核版本:2.6.36.1OS:ubuntu 10.4开发板:友善mini2440bootloader: supervivi在输入make zImage后,出现如下错误:fs/yaffs2/yaffs_fs.c:310: warning: initialization from incompatible pointer typefs/yaffs2/yaffs_fs.c:380: warn...

weixin_32938207的博客 307

uboot中yaffs2命令使用

uboot中yaffs2文件系统的支持 yaffs2文件系统,是针对nand的的文件系统,在uboot原生代码库中就有支持,yaffs2文件系统源码相对独立,方便移植。 uboot对yaffs2的支持可以通过以下宏来控制 #define CONFIG_YAFFS2 uboot中使用yaffs2的相关命令如下 ydevconfig- configure yaffs mount poin...

boysic的博客 3250
上一篇: 71 Linux 应用程序 permission denied问题
下一篇: 73 【转载】关于USB最大传输速率的文章记录
Chasing_Chasing
博客等级 码龄10年 233粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值