Linux文件系统类型[通俗易懂]

文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构; 即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统 种类:1 ext2与ext3是linux专门设计的硬盘文件系统一般称为扩展文件系统。Ext3增加了日志记录功能。fdisk 分区在终端会显示打印信息   mkfs.ext4 /de…

大家好,又见面了,我是你们的朋友全栈君。

文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构; 即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区

一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统

 

种类

1 ext2与ext3是linux专门设计的硬盘文件系统一般称为扩展文件系统。Ext3增加了日志记录功能。

fdisk 分区在终端会显示打印信息   mkfs.ext4 /dev/XXX

sfdisk [options] device 可以直接执行分区

2 swap文件系统

用于linux的交换分区,用来提供虚拟内存,一般为物理内存的2倍。由操作系统自行管理

3  vfat

是linux对DOS,windows系统下的FAT文件系统的一个统称

4  NFS文件系统

即网络文件系统,用于系统间通过网络进行文件共享,

不能建立在flash上,只能建立在硬盘上。

5  ISO 9660文件系统

光盘使用的标准文件系统,

6 jffs2文件系统

JFFS2是一个可读写的、压缩的、日志型文件系统,并提供了崩溃/掉电安全保护,克服了JFFS的一些缺点:使用了基于哈希表的日志节点结构,大大加快了对节点的操作速度;支持数据压缩;提供了写平衡支持;支持多种节点类型;提高了对闪存的利用率,降低了内存的消耗。这些特点使JFFS2文件系统成为目前Flash设备上最流行的文件系统格式,它的缺点就是当文件系统已满或接近满时,JFFS2运行会变慢,这主要是因为碎片收集的问题

它是在闪存上使用非常广泛的读/写文件系统

方法一:

mkfs.jffs2 –r rootfs –o rootfs.bin –pad=0x1000000 –e=0x20000 –n

将rootfs制作为jffs2镜像文件并拷贝到/tftpboot烧写

–pad指定最终的jffs2镜像被填充的大小,若不用该选项制作的可能不是页对其的  -e 指定擦除的大小, 

jffs2文件系统烧写

#tftp 30008000 filesys.jffs2

#nand erase 200000 800000 (根文件系统所在的分区,kernel启动的时候有显示)

#nand write 30008000 200000 800000   (nand write 下载的地址 偏移地址 大小)

方法二:

mount –t jffs2 /dev/mtdblock1 /mnt;  将块设备直接挂在成jffs2格式

tar zxvf rootfs.ta.gz  -C  /mnt

umount /dev/mtdblock1

7、ubifs文件系统

 无排序区块图像文件系统是用于固态硬盘存储设备上UBIFS 支持 write-back, 其写入的数据会被cache, 直到有必要写入时才写到flash, 大大地降低分散小区块数量并提高I/O效

mkfs.ubifs –m 2048 –c 2048 –e 126976 –r rootfs –o rootfs.bin

将rootfs制作成ubifs镜像文件rootfs.bin并拷贝到/tftpboot下下载烧写

-r 要制作的镜像的根文件系统的路径

-m 最小的I/O操作的大小

-e 擦除块的大小

-p 物理擦除块的大小

-c 最大逻辑擦除块的数量

-o 最终制作成的根文件镜像的文件名

8、yaffs文件系统

YAFFS/YAFFS2是一种和JFFSx类似的闪存文件系统,它是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。和JFFS2相比它减少了一些功能,所以速度更快,而且对内存的占用比较小。此外,YAFFS自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTDVFS,直接对文件系统操作。YAFFS2支持大页面的NAND设备,并且对大页面的NAND设备做了优化。JFFS2NAND闪存上表现并不稳定,更适合于NOR闪存,所以相对大容量的NAND闪存,YAFFS是更好的选择 

专门为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备,以固定大小的数据块进行存储的,块的大小可以是512字节、1 024字节或者2 048字节  制作yaffs文件系统 

mkyaffs2image  rootf  rootf_yaffs.bin

烧写到yaffs2根文件系统到NandFlash这种方法是不可行的

要用用mount成yaffs格式,在解压到该目录下。

 

1)启动U-boot,修改启动参数

setenv bootargs noinitrd root=/dev/mtdblock2 rootfstype=yaffs2 rw console=ttySAC0,115200 init=/linuxrc mem=64M

2)setenv bootcmd nand read.jffs2 32000000 100000 0x350000 && bootm 0x32000000

 

 

文件系统的烧写

文件系统的烧写,可以通过与内核相似的方法使用串口烧写,也可以通过挂载nfs使用mtd_debug 工具烧写,由于文件系统较大,使用第一种方式会慢一些。

串口烧写使用到的命令

loady

nand erase 0x600000 0x3a00000(目前的分区情况)

nand write 0x30001000 0x600000 0x800000(实际大小)

使用nfs烧写用到的命令

 mtd_debug erase /dev/mtd2 0 0x3a00000

 mtd_debug write /dev/mtd2 0 0x800000 ubi.img

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126007.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python 进制转换[通俗易懂]

    python 进制转换[通俗易懂]文章目录前言一、Python提供的进制转换方法1.二进制转十进制2.八进制转十进制3.十六进制转十进制4.十进制转十六进制5.十进制转二进制6.十进制转八进制二、自定义进制转换1.转十进制2.十进制转七进制总结前言十进制是我们常用的数字形式,但机器使用的却是二进制,八进制,十六进制之类的,所以进制转换是基础要求,很多编程语言提供的有进制转换的方法,下面我们开始学习一、Python提供的进制转换方法1.二进制转十进制s=’1001’print(int(s,2))结果如下:in..

  • pycharm指令_ftp登录及命令行用法

    pycharm指令_ftp登录及命令行用法“阅读本文大概需要3分钟。”相信很多人使用PyCharm来开发Python程序,但却少有人知道,PyCharm实际上有一个命令行程序。通过这个命令行程序可以帮你做很多事…

  • 显示http500内部服务器错误,http500内部服务器错误,小编教你HTTP 500 内部服务器错误怎么解决…

    显示http500内部服务器错误,http500内部服务器错误,小编教你HTTP 500 内部服务器错误怎么解决…在使用电脑的时候,出现问题是我们最不想碰到的事情了。当打开网站的时候碰到“HTTP500内部服务器错误”,这会让我们非常的心烦,有时候就是因为这些故障要折腾很久,很闹心的,下面,小编给大家带来了HTTP500内部服务器错误的解决图文。很多站长在建设网站时,经常遇到程序运行时打不开的问题,有的是因为程序出现错误,无法运行,而有的是因为服务器的原因。而系统中出现的故障是用户最不想看到的,那HTTP…

  • java web项目中hibernate导入问题解决, AbstractInterceptor

    java web项目中hibernate导入问题解决, AbstractInterceptor解决步骤如下:先说一句:修改后先保存,然后看看错误消失没?只需要导入正确的包properties->javabuildpath->Libraries->AddLibaray->Myeclipselibrary->你需要导入的包->applyimportcom.opensymphony.xwork2.Action;importcom.opensym…

  • jenkinsfile docker_docker构建自己的镜像

    jenkinsfile docker_docker构建自己的镜像前言之前我们用docker手动安装了jenkins环境,在jenkins中又安装了python3环境和各种安装包,如果我们想要在其他3台机器上安装,又是重复操作,重复劳动,那会显得很low,这里可以

  • 文件上传-文件名长度绕过白名单限制[通俗易懂]

    文件上传-文件名长度绕过白名单限制[通俗易懂]  在实际***中,当我们发现有文件上传的地方时,我们会尽可能地尝试所有的办法进行webshell的上传,只要能上传webshell,就说明本次***至少成功了一半,后续就看获得的webshell的权限情况进行下一步的操作。对于文件上传漏洞的防护来说,主要分为以下两类:白名单限制和黑名单限制,对于黑名单的限制,我们只需要寻找一些较为偏僻的可执行后缀、大小写混写以及相关操作系统的特性(如windo…

    2022年10月19日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号