linux 文件系统
gjy938815
这个作者很懒,什么都没留下…
展开
-
jffs2文件系统——写操作 .
在ramfs系统中write过程浅析中已经大致分析了vfs中写入的过程,jffs2大致跟这个过程差不多,略有差异的是generic_file_buffered_write函数中的a_ops->prepare_write和a_ops->commit_writ,这两个函数各文件系统有差异。在jffs2文件系统中如此定义[cpp] view plaincopyprint?.r转载 2013-07-20 17:06:14 · 969 阅读 · 0 评论 -
UBIFS 文件系统分析1 - 磁盘结构 .
ubifs磁盘结构UBIFS文件系统把UBI volume划分为六个部分,分别为1. superblock area,使用LEB02. master area,使用LEB1和LEB23. log area,从LEB3开始,log area区的大小4. LPT area,跟随在log area之后,LPT的大小在创建文件系统时确定5. orpan area,在log area转载 2013-07-23 15:49:33 · 1048 阅读 · 0 评论 -
UBIFS文件系统分析5 - 文件读写 .
文件数据管理传统文件系统,如ext2通过ext2_inode的i_block成员管理文件的数据,i_block的直接块和间接块组成了一棵树,对某个逻辑地址的读取,需要在这个树上找到相应的物理块指针。UBIFS为每一片数据创建一个data node,这一片数据一般指UBIFS_BLOCK_SIZE。data node被插入到wandering tree上,通过ino+type+block转载 2013-07-23 15:55:41 · 884 阅读 · 0 评论 -
UBIFS文件系统分析7 - LPROPS .
fs/ubifs/lprops.clprops结构包含着一个list成员,类型是list_head,通过这个成员lprops链接到ubifs_info的freeable_list, frdi_idx_list, empty_list, uncat_list;如果lprops类型为LPROPS_DIRTY, LPROPS_FREE, LPROPS_DIRTY_IDX,lprops则由转载 2013-07-23 15:56:46 · 592 阅读 · 0 评论 -
UBIFS介绍 - MTD网站 .
原文地址 http://www.linux-mtd.infradead.org/doc/ubifs.htmlBig red note在了解UBIFS之前一定要注意UBIFS和任何传统的文件系统是不一样的:UBIFS不是运行在block device之上的(比如hard disk, MMC/SD卡,USB flash驱动等等)。UBIFS是运行于raw flash之上。请在开始U转载 2013-07-23 15:58:51 · 618 阅读 · 0 评论 -
UBIFS文件系统分析2 - master node管理 .
master node用来记录管理所有on-flash上位置不固定的结构。UBIFS把master node内容重复的写入LEB1和LEB2中,这样可以保证任何时刻都有一个有效的master node存在。master node大小为512 bytes,顺序的占用LEB的page,如果整个LEB都被master node写满,那么执行unmap操作,分配一个新空LEB。注意unmap LEB1转载 2013-07-23 15:50:14 · 751 阅读 · 0 评论 -
UBI介绍 .
翻译 - 来源MTD网站 http://www.linux-mtd.infradead.org/doc/ubi.htmlTable of contentsBig red noteOverviewSource codeMailing listUser-space toolsUBI headersUBI volume tableImplementation detailsM转载 2013-07-23 15:48:31 · 534 阅读 · 0 评论 -
UBIFS文件系统分析3 - 超级块管理 .
UBIFS superblock存储在volume的第一个LEB,在UBIFS运行期间superblock几乎不会改变,只有一种情况会导致superblock node被重写,就是自动resize时。之所以需要自动resize,是因为创建ubifs文件系统镜像时,并不知道将要mount的UBI bolume的大小,所以当我们将UBIFS镜像安装到UBI上时,UBI的尺寸可能大于UBIFS镜像所需要转载 2013-07-23 15:50:52 · 919 阅读 · 0 评论 -
UBIFS文件系统分析4 - 目录项管理 .
传统文件系统,多个目录项集中存放在同一物理块,读取目录项就像读取文件内容一样,物理块内容是连续的目录项,因此目录文件也是有大小区分的,子目录和文件数目越多,那么目录文件尺寸越大。而ubifs每当增加一个新的目录项,ubifs在master area中生成一个directory entry node,并把这个node插到wandering tree的某个位置,通过wandering tree保持转载 2013-07-23 15:55:09 · 920 阅读 · 0 评论 -
UBIFS文件系统分析6 - LPT分析1 .
LPT area - LEB Properties TreeLPT area包含LEB properties tree, ltab: a table of LPT area eraseblocks, 以及针对big model的saved LEB number - lsaveLPT area是一个自包含的文件系统,LPT有自己的Garbage collection系统,LPT Proper转载 2013-07-23 15:56:13 · 1090 阅读 · 0 评论 -
UBIFS设计简介 - A Brief Introduce to the Design of UBIFS .
项目闲暇,想了解下UBIFS,就先从UBIFS的设计文档翻译开始吧,以后有机会有时间能分析下UBIFS源码 flash memory文件系统需要异地更新(out-of-place updates). 这是因为flash存储在写之前必须擦除, 并且每次擦除后只能写一次。如果擦除块很小并且擦除速度很快,那么擦除块可以看作是磁盘扇区,然而事实并非如此。读取整个擦除快,擦除它然后回写更新的数据,转载 2013-07-23 15:57:59 · 683 阅读 · 0 评论 -
从ramdisk根文件和initramfs系统启动Linux
从ramdisk根文件系统启动LinuxAuthor:窦少彬 Email:mail.dsb@163.com开发环境:Fedora 12工具链:arm-linux-gcc 4.3.2 with EABI内核版本:2.6.29.4-FriendlyARM。开发板:mini2440-128M Nand FlashBootloader:u-boot-2009.转载 2013-07-26 15:53:31 · 2082 阅读 · 0 评论 -
linux下修改/dev/shm tmpfs文件系统大小+/etc/fstab 讲解 .
默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。tmpfs有以下优势:转载 2013-09-19 21:13:50 · 3015 阅读 · 0 评论 -
Ramdisk 上的 "No space left on device" 问题 .
最近将基于ramdisk启动linux内核,运行到shell后,想mount SD卡,先创建 mnt目录: #.> mkdir mnt mkdir: can't create directory 'mnt': No space left on device 于是运行df命令: #.> df Filesystem转载 2013-10-11 14:14:33 · 919 阅读 · 0 评论 -
jffs2文件系统——MTD驱动挂载 .
总所周知,jffs2是主要用到的是mtd驱动,用mtd驱动作为jffs2文件系统的工具。所以在mount jffs2之前,必须要挂载MTD驱动。MTD驱动最关键的其实是往mtd_table[]这张表里添加东西。[cpp] view plaincopyprint?platform_driver_register(&a) a.probe转载 2013-07-20 17:06:39 · 1125 阅读 · 0 评论 -
jffs2文件系统-------挂载 .
按照文件系统的惯例,如果是非rootfs的话,就需要手动挂载。如: mount -t jffs2 /dev/mtdjffs2 jffs2 (这行shell的大体意思就是将mtdjffs2这个mtd块设备,按照jffs2文件系统的格式,挂载到jffs2文件夹下)。支持这行shell的前提有两个,其一内核要支持jffs2文件系统;其二mtdjffs2这个块设备上的数据,要符合jffs2文件系统的要求转载 2013-07-20 17:05:44 · 1153 阅读 · 0 评论 -
jffs2文件系统——概述 .
jffs2文件系统一般应用于闪存设备,且存储空间不能太大(实际应用中很少用于超过128M的存储设备),且挂载时间长,因为在挂载的过程中会去扫描整个物理介质(flash),在最新的jffs2加入了摘要(summary)机制,这摘要写在擦出块的最后面(nor flash的话,擦除块可以理解成一个扇区),挂载的时候只读摘要信息,这样避免了大规模的扫描整个擦出块。 其大致原理是这样的:将fl转载 2013-07-20 17:04:54 · 691 阅读 · 0 评论 -
RAMDISK文件系统的制作 .
一、准备工作创建一个目录,用于存放各种文件,这里以/home/test/root为例。二、添加文件1. 拷贝busybox文件busybox文件生成后,拷贝busybox中_install目录下的文件到root文件夹2. 生成设备节点(这部分摘抄至易の部落阁的《基于AT91RM9200的linux移植小结》一文)# mknod console c 5转载 2013-06-26 10:05:53 · 442 阅读 · 0 评论 -
文件系统分析和制作的整个过程 .
/etc/inittab文件的作用Linux启动之后运行的第一个进程init会从/etc/inittab 文件中读取配置并做一些初始化的工作格式:id:runlevels:action:process大致的含义就是init初始化程序以一定的方式(action)在哪些运行级别(runlevels)下执行某个程序(process) id用于表示该配置项的id转载 2013-06-28 08:37:04 · 502 阅读 · 0 评论 -
根文件系统和yaffs2还有jffs2文件系统制作 .
1.最小得跟文件系统制作 根据busybox源码可知,最小的根文件系统要具备如下条件:第一.init(来源于busybox,主要是一些命令,如cp,ls等,等编译busybox时,就得到)第二./dev/console 和/dev/null(open()打开设备)第三./etc/inittab第四.配置指定的程序第五.C库(r如:标准输入,输出,错误等)--根据韦东转载 2013-06-28 08:45:06 · 514 阅读 · 0 评论 -
yaffs2文件系统制作 . .
【环境】1:Ubuntu 10.102:u-boot-2010.033:优龙FS24104:交叉编译器:arm-none-linux-gnueabi-gcc version 4.3.2第一步:在内核里添加yaffs2的支持1)下载源码tony@Ubuntu:~/ win$ sudo apt-get install gittony@Ubuntu:~/转载 2013-06-28 08:45:45 · 451 阅读 · 0 评论 -
jffs2文件系统制作
根据busybox源码可知,最小的根文件系统要具备如下条件:1./dev/console 和/dev/null(open()打开设备)2.init(来源于busybox,主要是一些命令,如cp,ls等,等编译busybox时,就得到)3./etc/inittab4.配置指定的程序5.C库(r如:标准输入,输出,错误等) 【环境】1:Ubuntu 10.102转载 2013-06-28 08:47:07 · 497 阅读 · 0 评论 -
/etc/init.d/rcS文件内容 .
#! /bin/sh#从arm9拷贝echo "Processing /etc/rcS..."PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:#runlevel=S#prevlevel=N#umask 022#export runlevel prevlevelexport PATH #从arm9拷贝# Tr转载 2013-07-01 08:33:31 · 598 阅读 · 0 评论 -
UBI FAQ and HOWTO
UBI FAQ and HOWTOTable of contentsHow do I enable UBI?How do I attach an MTD device?How do I create/delete UBI volumes?How do I run JFFS2 on top of an UBI volume?Can I run ext2 on top of转载 2013-07-16 09:50:44 · 1131 阅读 · 0 评论 -
UBI文件系统简介
UBI文件系统简介作者:刘洪涛,华清远见嵌入式学院金牌讲师。在linux-2.6.27以前,谈到Flash文件系统,大家很多时候多会想到cramfs、jffs2、yaffs2等文件系统。它们也都是基于文件系统+mtd+flash设备的架构。linux-2.6.27后,内核加入了一种新型的flash文件系统UBI(Unsorted Block Images)。这里简单介绍下UBI文件系统转载 2013-07-15 14:42:55 · 1929 阅读 · 0 评论 -
/etc/profile文件内容 .
该文件在进入shell的时候调用,也就是说这是用户相关的. # /etc/profile: system-wide .profile file for the Bourne shellsecho "Processing /etc/profile..."# 从arm9.net拷贝# Ash profile # vim: syntax=sh# No core f转载 2013-07-01 08:33:43 · 567 阅读 · 0 评论 -
mdev的基本工作原理 .
分析过mdev(udev的BusyBox简化版)源码的都知道mdev的基本原理: a、执行mdev -s命令时,mdev扫描/sys/block(块设备保存在/sys/block目录下,内核2.6.25版本以后,块设备也保存在/sys /class/block目录下。mdev扫描/sys/block是为了实现向后兼容)和/sys/class两个目录下的dev属性文件,从该dev 属转载 2013-07-01 08:32:25 · 397 阅读 · 0 评论 -
ubi and ubifs应用手记
1.配置ubi and ubifsin .config CONFIG_MTD_UBI=y CONFIG_UBIFS_FS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y CONFIG_CRC16=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOM转载 2013-07-16 15:18:31 · 834 阅读 · 0 评论 -
mkfs.jffs2使用方法
实例:mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 128KiB --pad=0x800000 -s 0x200 -n -bmkfs.jffs2: Usage: mkfs.jffs2 [OPTIONS]Make a JFFS2 file system image from an existing directory treeOptions:-p转载 2013-07-20 11:53:56 · 1163 阅读 · 0 评论 -
移植ubifs到dm368成功 .
我在用TI的dm368开发板,kernel是2.6.32.17,默认的flash文件系统是jffs2,但是jffs2在大分区下,mount速度很慢,而且占用ram较多,因此,我想使用ubifs看看性能是否会更好些。ubifs的原理和配置过程,很多网页都有介绍的,我给一个链接,大家可以看看,我就不转载了,我重点说我移植过程中遇到并解决的问题。http://bbs.chinaunix.net/转载 2013-07-20 13:38:43 · 790 阅读 · 0 评论 -
mount ubifs 挂载
第一次:(如:挂载mtd2)1、ubiformat /dev/mtd2 -q -e 02、ubiattach /dev/ubi_ctrl -m 23、ubimkvol /dev/ubi0 -s 220MiB -N app4、mount -t ubifs ubi0_0 /mnt/app/以后: (如:挂载mtd2)1、ubiattach /dev/ub转载 2014-03-13 09:04:36 · 4357 阅读 · 0 评论