解析FAT16文件系统】的更多相关文章

引导扇区的信息如下: 1.  偏移地址00H,长度3,内容:EB 3C 90 跳转指令. 2.  偏移地址03H,长度8,内容:4D 53 44 4F 53 35 2E 30 为厂商标志和os 版本号,这里是MSDOS5.0. 3.  偏移地址0BH,长度2,内容:00 02.注意这里数据的布局,高地址放高字节,低地址放低字节(数据为小端格式组织),所以数据应该是0200,即512.表示的意思是,该磁盘每个扇区有512个字节.有的可能是1024.2048.4096. 4.  偏移地址0DH,长度…
有必要说明一下,以下对FAT16系统的介绍,很多都是参考文献.由于FAT16系统一般在U盘.MMC卡.SD卡以及一些小型存储设备上使用比较多,以后把这些小型存储设备统称为存储卡,这里仅局限于对存储卡的介绍,但很有针对性,而且比较全面. 参考来源:http://www.sjhf.net/pdf/fat.pdf 1.1 存储卡的结构 FAT16文件系统把存储卡的划分为几个区,包括DBR扇区.保留扇区.FAT表1.FAT表2.根目录和数据区,具体结构如图1-1所示,其实保留扇区包含MBR扇区,这里把D…
有了之前读写block的基础之后,准备弄个文件系统,之前没有接触过这东西,所以有很多都晕晕的,但是看到fat的源代码之后还是挺有信心的,因为之前一直过uboot,所以这个文件当然是小巫见大巫了.首先来分析一下对应我的SD的FAT16的相关信息吧(暂且就这么称吧,因为我也不是很了解). 一.引导扇区段 拿比较简单的FAT16文件系统来分析,格式化为FAT16,然后使用Winhex软件打开我的磁盘驱动器.先贴上一张图 这上面可以发现很多有用的信息,首先我们了解一下基本知识,对于我的SD卡来说,从上面…
从8月8号开始,连续一个月利用每天下班时间和周末的时间终于初步完成了一个电子工程师的电路板名片,就像U盘一样,不过这个FLASH只有64KB的大小,用的单片机是C8051F320,是一个USB型的单片机.这次获取的教训是一开始想好要做什么事,无论如何要坚持下来,也许困难有很大,但是和困难磨磨突然会发现原来眼前的困难也是有解决的办法的,突然的豁然开朗. 整体结构如下: 我打算把自己所做的按照我自己调试的过程写下来,会连续发几篇博客,欢迎关注我哦.FAT16文件系统是在最后才搞出来,趁热打铁,把它作…
源:电子工程师名片——FAT16文件系统 从8月8号开始,连续一个月利用每天下班时间和周末的时间终于初步完成了一个电子工程师的电路板名片,就像U盘一样,不过这个FLASH只有64KB的大小,用的单片机是C8051F320,是一个USB型的单片机.这次获取的教训是一开始想好要做什么事,无论如何要坚持下来,也许困难有很大,但是和困难磨磨突然会发现原来眼前的困难也是有解决的办法的,突然的豁然开朗. 整体结构如下: 我打算把自己所做的按照我自己调试的过程写下来,会连续发几篇博客,欢迎关注我哦.FAT16…
[操作系统]C语言编写的FAT16文件系统 这是操作系统的期末课程设计作业之一,主要功能是在物理内存中虚拟出一个1M大小的FAT16的文件系统,然后把它读入内存中,进行具体的文件操作,具体的实用性不大,主要目的是为了练习C语言,帮助理解文件系统的特点,代码如下: #include <stdio.h> #include <malloc.h> #include <string.h> #include <time.h> #define BLOCKSIZE 1024…
 很久以来,就想写一篇关于ext 家族文件系统的文章,源于我刚工作的时候,曾经一不小心rm -rf,误删除了很多文件,当时真想有个数据恢复软件能帮我把数据回复了.当然学习数据恢复,首先要学习文件系统.最近工作原因,好长时间没看学习Linux kernel 相关的东西,感觉面目可憎.扯远了,开始我们的ext2 文件系统的探索之旅.       那些介绍ext2特征的套话我就不说了,任何一本靠谱的linux教程中都可以找到,我们直接单刀直入,开始探索.       首先生成一个ext2文件系统.我在…
http://blog.chinaunix.net/uid-24774106-id-3266816.html 很久以来,就想写一篇关于ext 家族文件系统的文章,源于我刚工作的时候,曾经一不小心rm -rf,误删除了很多文件,当时真想有个数据恢复软件能帮我把数据回复了.当然学习数据恢复,首先要学习文件系统.最近工作原因,好长时间没看学习Linux kernel 相关的东西,感觉面目可憎.扯远了,开始我们的ext2 文件系统的探索之旅.       那些介绍ext2特征的套话我就不说了,任何一本靠…
  上一遍博文的重点其实将ext2整体的组织框架,我们知道了ext2文件系统由块组组成,每个块组里面的组织形式.我们甚至直接把超级块和组描述符里面的内容,用十六进制形式展现了出来.这篇博文主要讲述如何mke2fs生成合适需要的ext2 文件系统,基本就是参数选择的问题.        mke2fs 常用的几个参数有:       1)    -b     block-size .       块大小是ext2文件系统比较重要的一个参数,目前只支持1024.2048和4096.上篇博文讲到了其中的…
SD卡已经看了两天了,主要是因为测试出来的卡容量不对,所以一直找原因,最终还是发现了,总比不过是单位上面出现了问题,或许是之前没有接触到SD的缘故吧,所以对其中的一些寄存器很不了解,一切都是重新开始,对照这寄存器手册,理解程序,修改程序.一步步还是总结一下! 首先关于SD卡的协议是有必要了解的,我今天花了一上午的课堂时间来理解这个SD卡的协议,就是基于这个文档的,这个文档很适合入门SD协议的(个人认为).http://download.csdn.net/detail/king_bingge/52…
NTFS文件系统详细分析 第一部分 什么是NTFS文件系统 想要了解NTFS,我们首先应该认识一下FAT.FAT(File   Allocation   Table)是“文件分配表”的意思.对我们来说,它的意义在于对硬盘分区的管理.FAT16.FAT32.NTFS是目前最常见的三种文件系统.   FAT16:我们以前用的DOS.Windows   95都使用FAT16文件系统,现在常用的Windows   98/2000/XP等系统均支持FAT16文件系统.它最大可以管理大到2GB的分区,但每个…
阅读此文,必须具备知识点:<Linux 查看磁盘分区.文件系统.使用情况的命令和相关工具介绍><实例解说 fdisk 使用方法><合理规划您的硬盘分区><Fedora / Redhat 软件包管理指南> 如果您想加载一个分区(文件系统),首先您得确认文件系统的类型,然后才能挂载使用,比如通过mount 加载,或者通过修改 /etc/fstab来开机自动加载:如果您想添加一个新的分区,或者增加一个新的硬盘,您要通过分区工具来添加分区,然后要创建分区的文件系统,…
挂接命令(mount)首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的.命令格式:mount [-t vfstype] [-o options] device dir其中: 1.-t vfstype 指定文件系统的类型,通常不必指定.mount 会自动选择正确的类型.常用类型有:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntfs文件系统:ntf…
FAT16是比较简单的文件系统,相比NFTS等文件系统,该系统的学习比较easy,容易上手,同时对于数据存储的机理以及数据的恢复有一定的帮助.FAT文件系统有一定的弊端,不能支持太大的数据存储. FAT16 文件系统包括五部分:DBR,FAT1,FAT2,FDT以及DATA. 对于FAT16文件系统,最为重要的为DBR分区.DBR起始于FAT16文件系统的NO.1 sector. 想象一下计算机启动时,受限由BIOS读入主引导的MBR内容,以确定逻辑驱动器的开始抵制,然后调入活动分区的DBR,由…
u盘文件系统主要有FAT32.NTFS两种 ● FAT32文件系统 FAT32使用4个字节(也就是32位)的空间来表示每个扇区(Sector)配置文件的情形,故称之为FAT32.FAT16的分区容量上限是2047MB,而FAT32的分区容量下限是512MB,不同操作系统的上限不同,例如Win2000最大支持32GB FAT32分区,而WinXP最大可达2TB FAT32分区. FAT32相比FAT16,优点如下: 可支持大于2GB的分区.最大可达2TB,即便是目前最大容量的硬盘都能支持,更别说U…
作者:北南南北 来自: LinuxSir.Org 摘要:本文对新增硬盘,切割硬盘,创建硬盘分区,为硬盘分区创建文件系统,以及加载文件系统的流程做总结性论述:主要是为初学者弄清楚这一操作过程:本文涉及fdisk.mkfs.mount ... ... 等工具:对/etc/fstab 进行了解说:还有磁盘扫描工具fsck 等介绍: 阅读此文,必须具备知识点: <Linux 查看磁盘分区.文件系统.使用情况的命令和相关工具介绍> <实例解说 fdisk 使用方法> <合理规划您的硬盘…
挂载概念 在windows操作系统中,挂载通常是指给磁盘分区(包括被虚拟出来的磁盘分区)分配一个盘符. 在linux操作系统中,它指将一个设备(通常是存储设备)挂接到一个已存在的目录上.(这个目录可以不为空,但挂载后这个目录下以前的内容将不可用.) 需要理解的是,linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录.我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备. 命令格式: mount [-t vf…
[转自] http://www.sjhf.net/Article/sjhfdoc/200404/1.html 一.硬盘的物理结构:     硬盘存储数据是根据电.磁转换原理实现的.硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中.硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来.当系统向硬盘写入数据时,磁头中“写数据”电流产生磁场使盘片表面…
一.硬盘结构 1.硬盘的逻辑结构 硬盘的大小是使用"磁头数×柱面数×扇区数×每个扇区的大小"这样的公式来计算的.其中磁头数(Heads)表示硬盘总共有几个磁头,也可以理解成为硬盘有几个盘面,然后乘以二:柱面数 (Cylinders)表示硬盘每一面盘片有几条磁道:扇区数(Sectors)表示每条磁道上有几个扇区:每个扇区的大小一般为 512Byte.扇区也是磁盘的最小存贮单位. 2.硬盘接口 IDE 硬盘接口(Integrated Drive Electronics,并口,即电子集成驱动…
背景 FAT32作为一个文件系统,有着广泛的应用.在安装操作系统时,许多个人用户默认都选择FAT32文件系统,因此,了解FAT32文件系统下的文件.目录的管理方式就显得非常必要了. FAT32文件系统与FAT16文件系统有着较大的区别.其中,FAT32采用4字节共32位来表示文件的FAT项,因此,一个FAT32文件系统管理的分区最多可管理的簇数目为:2^32= 4294967296,若选择4K大小的簇,则该分区的最大容量可达:16384G. FAT32文件系统分布图 DBR及保留扇区:DBR的含…
LINUX命令总结 标签: LINUX命令总结 2014-01-27 15:54 41039人阅读 评论(1) 收藏 举报  分类: linux(1)  版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip2.从Linux上远程显示Windows桌面安装rdesktop包3. 手动添加默认网关 以root用户,执行: route add d…
运维工程师必会的109个Linux命令 版本1.0 崔存新 更新于2009-12-26 目录 1 文件管理 6 1.1 basename 6 1.2 cat 6 1.3 cd 7 1.4 chgrp 7 1.5 chmod 8 1.6 chown 9 1.7 comm 10 1.8 cp 10 1.9 cut 11 1.10 dd 12 1.11 diff 13 1.12 dir 14 1.13 dos2unix 16 1.14 egrep 17 1.15 fgrep 17 1.16 file…
USB Mass Storage类规范概述        USB Mass storage Device协议即海量存储设备协议适用于硬盘,U盘等大容量存储设备.协议使用的接口端点有BulkIn.BulkOut和Interrupt端点.该设备类又包含6个独立的子类以及3种传输协议. Bulk- Only 传输规范仅仅使用Bulk 端点传送数据/命令/状态,CBI 传输规范则使用Control/Bulk/Interrupt 三种类型的端点进行数据/命令/状态传送. 我们手中的U盘就是遵循SCSI协议…
这一节主要把在实现“linux模拟U盘功能”过程中的一些调试过程记录下来,并加以解析. 一.背景知识     1.USB Mass Storage类规范概述        USB 组织在universal Serial Bus Mass Storage Class Spaceification 1.1版本中定义了海量存储设备类(Mass Storage Class)的规范,这个类规范包括四个独立的子类规范,即:        1. USB Mass Storage Class Control/B…
linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Linux上远程显示Windows桌面 安装rdesktop包 3. 手动添加默认网关 以root用户, 执行: route add default gw 网关的IP 想更改网关 vi /etc/sysconfig/network-scripts/ifcfg-eth0 更改GATEWAY  /etc/in…
对于新手学习,mount 命令,一定会有很多疑问.其实我想疑问来源更多的是对linux系统本身特殊性了解问题. linux是基于文件系统,所有的设备都会对应于:/dev/下面的设备.如: [chengmo@centos5 dev]$ ls | grep -E  "^(sd|hd)"hdcsdasda1sda2sdbsdb1 sd*代表scic硬盘 因此,需要进行设备访问时候,我们需要进行系统挂载(mount). 那么mount到底能够挂载那些设备呢. 我们可以看一下. 一.mount可…
对于新手学习,mount 命令,一定会有很多疑问.其实我想疑问来源更多的是对linux系统本身特殊性了解问题. linux是基于文件系统,所有的设备都会对应于:/dev/下面的设备.如: [chengmo@centos5 dev]$ ls | grep -E  "^(sd|hd)"hdcsdasda1sda2sdbsdb1 hd* 代表普通硬盘; sd*代表scic硬盘 a*代表基本盘(主盘) b*代表 从属盘(副盘) 1*代表第一分区 2*代表第二分区 因此,需要进行设备访问时候,我…
常见分区加载方法: mount挂载iso文件: #mkdir /mnt/iso1 #mount –o loop linuxsetup.iso /mnt/iso1 在linux 不需要虚拟光驱,就可以直接读取iso文件了. mount挂载squashfs压缩文件系统: #mkdir /mnt/src-squashfs #sudo mount -t squashfs -o loop src-cd/casper/filesystem.squashfs  /mnt/src-squashfs/  #挂载原…
[注意]:命令[compgen -b]可以列出所有当前系统支持的命令. 109个Linux命令 目录 1       文件管理... 5 1.1          basename. 5 1.2          cat 5 1.3          cd. 5 1.4          chgrp. 5 1.5          chmod. 6 1.6          chown. 7 1.7          comm.. 7 1.8          cp. 7 1.9        …
Linux命令 目录 1       文件管理... 5 1.1          basename. 5 1.2          cat 5 1.3          cd. 5 1.4          chgrp. 5 1.5          chmod. 6 1.6          chown. 7 1.7          comm.. 7 1.8          cp. 7 1.9          cut 8 1.10        dd. 8 1.11        di…