USB下文件系统
USB设备检测的一般过程.
USB 设备检测的一般过程USB 设备检测也是通过/proc 目录下的USB 文件系统进行的。
为了使一个USB 设备能够正常工作,必须要现在系统中插入USB 桥接器模块。
在检测开始时,一般要先检测是否存在/proc/bus/usb目录,若不存在则尝试插入USB 桥接模块。
现在一般的 USB 桥接器模块有两种类型, UHCI 和 OHCI 。
在决定插入那一个桥接器模块时,可以察看 /proc/pci 文件来决定。
打开此文件,您若发现USB 节为 I/O at 0xHHHH 格式(例如出现 I/O at 0xe000 [0xe01f] ), HHHH 为 16 进制数,则桥接器类型为UHCI 。
若是它为32 bit memory at 0xHH000000 形式(例如出现 32 bit memory at 0xee000000 ),HH 为16 进制数,则桥接器类型为OHCI 。
但是若您的桥接器类型不满足上述任何一种情况,唯一的解决办法就是您尝试插入这两种模块,直到成功为止。
一般而言,UHCI 类型的桥接器它的插入模块是uhci 或 usb-uhci (由内核版本决定);而对于OHCI 类型的桥接器它的插入模块是 ohci 或 usb-ohci 。
您在正确的插入了桥接器模块之后,这时 /proc 文件系统下就会出现USB 设备目录,不过这时这个目录是空的,没有任何文件。
这时您就必须挂接usbdevfs 文件系统,然后通过此文件系统检测连接的设备。
在成功挂接usb 文件系统之后,就会生成文件/proc/bus/usb/devices ,/proc/bus/usb/drivers 和目录 /proc/bus/usb/busNo 。
挂接 usbdevfs 文件您可以通过如下操作实现:mount -t usbdevfs none /proc/bus/usb或在 /etc/fstab 上加入none /proc/bus/usb usbdevfs defaults 0 0然后通过 /proc/bus/usb/devices 文件的内容,您就可以获得连接的设备信息,包括设备标识和制造商标是等信息。
优盘格式化原理
优盘格式化原理优盘格式化原理解析什么是优盘格式化?优盘格式化指的是清除、重建和重新配置优盘(USB存储设备)的文件系统,以备将其用于存储数据之前。
通过格式化,可以擦除优盘上的所有数据,重新分配磁盘空间,并确保文件系统的正确操作。
为什么需要格式化优盘?1.清空存储空间:格式化可以彻底删除优盘上的所有文件和文件夹,清空磁盘存储空间,以便重新使用。
2.修复文件系统问题:如果优盘的文件系统损坏或发生错误,格式化可以修复这些问题,使优盘能够正常读写和存储数据。
3.删除病毒和恶意软件:格式化可以消除潜在的病毒和恶意软件,以确保优盘的安全性。
4.更改文件系统:有时需要更改优盘的文件系统,以适应特定设备或操作系统的要求。
优盘格式化原理解析优盘格式化的过程包括以下几个主要步骤:1.磁盘擦除:格式化开始时,系统会执行磁盘擦除操作。
磁盘擦除是将所有磁盘上的数据块填充为0,以确保数据无法恢复。
这可以防止旧数据泄露给未经授权的用户。
2.分区:接下来,优盘将被分成一个或多个逻辑部分,称为分区。
分区是磁盘被逻辑分割的一种方式,每个分区可以独立进行格式化和管理。
分区表记录了分区的起始位置、大小和类型等信息。
3.文件系统创建:在每个分区上,需要创建文件系统。
文件系统是一种用于组织和管理文件和文件夹的结构。
常见的文件系统类型包括FAT32、NTFS、exFAT等。
选择合适的文件系统取决于操作系统和设备的兼容性需求。
4.格式化:将文件系统应用于分区后,可以开始格式化每个分区。
格式化的过程包括在分区上创建文件系统所需的文件和目录结构,并初始化元数据表等。
格式化还为分区分配一个引导扇区,允许系统识别并访问该分区。
注意事项1.备份数据:在格式化优盘之前,务必备份重要的数据。
格式化将擦除所有数据,包括无法恢复的文件。
确保在执行此操作之前将数据复制到其他存储设备。
2.选择正确的文件系统:根据您的需求选择适当的文件系统。
不同的文件系统具有不同的特性和兼容性要求。
usbfs devnum生成原理
usbfs devnum生成原理USBFS(Universal Serial Bus File System)是一种Linux内核的文件系统,用于与Linux主机上的USB设备进行通信。
它提供了一种用户空间与内核空间之间传输数据的机制,使得用户空间应用程序可以通过读写文件的方式与USB设备进行交互。
USBFS的devnum生成原理可以从以下几个方面来分析:设备号的分配、设备号的持久化和设备号的唯一性。
首先,设备号的分配是由内核完成的。
当插入一个新的USB设备时,内核会为该设备分配一个唯一的设备号。
在USB设备的驱动程序加载之前,内核会根据设备的插入顺序给每个插入的设备分配一个设备号。
设备号是由内核根据一定算法生成的,通常是根据设备的拓扑结构和总线信息进行分配,因此设备号有时也被称为总线、设备和函数(BDF)号。
设备号的分配是动态的,当设备被拔出后,设备号会被释放,再次插入时又会重新分配。
其次,USBFS通过将设备号持久化到文件系统中实现设备号的持久化。
当USB设备插入后,内核会将该设备的设备号写入到sysfs文件系统中的相应目录中。
sysfs是Linux中的一种伪文件系统,用于表示和配置内核设备和驱动程序的信息。
在sysfs中,每个USB设备都有一个目录,该目录的名称通常是根据设备的拓扑结构和总线信息生成的。
在该目录中的一个文件中,记录了设备的设备号,用户可以通过读取该文件获取设备号,并在用户空间应用程序中使用。
最后,设备号的唯一性是由内核保证的。
USB设备的设备号在特定的USB总线上是唯一的。
当设备插入到一个USB总线中时,内核会确保为该设备分配一个唯一的设备号。
这样可以保证一个USB总线上的设备可以通过其设备号进行唯一标识。
总结来说,USBFS的devnum生成原理包括设备号的分配、设备号的持久化和设备号的唯一性。
内核通过对插入的USB设备进行分配唯一的设备号,将设备号持久化到sysfs文件系统中,并确保每个USB 总线上的设备号是唯一的。
usbmuxd硬件方案
usbmuxd硬件方案usbmuxd是一个开源的软件,用于管理iOS设备与计算机之间的通信。
它允许通过USB连接访问iOS设备的文件系统、调试控制台和其他功能。
在本文中,我们将介绍usbmuxd的基本原理、硬件方案,并探讨其在设备管理和开发领域的应用。
1. usbmuxd概述usbmuxd是一个运行在iOS设备和计算机之间的守护进程,使用USB传输数据。
它通过在iOS设备上创建一个虚拟端口,将计算机连接到iOS设备的服务和应用程序。
这样,计算机可以通过usbmuxd与iOS设备通信,实现文件传输、数据备份、安装应用等功能。
2. usbmuxd硬件方案为了实现usbmuxd的功能,需要采用一些硬件方案。
下面是一个典型的usbmuxd硬件方案的示例:(图示设备连接示意图)2.1 iOS设备作为usbmuxd的端点设备,iOS设备需要具备以下硬件特性:- USB接口:用于与计算机建立物理连接。
- 虚拟端口:usbmuxd通过虚拟端口与计算机通信,因此iOS设备需要支持虚拟端口功能。
- 文件系统:usbmuxd通过USB传输文件,因此iOS设备需要具备可读写的文件系统。
2.2 计算机作为usbmuxd的控制端设备,计算机需要具备以下硬件特性:- USB接口:用于与iOS设备建立物理连接。
- 操作系统支持:计算机的操作系统需要支持usbmuxd,并提供相应的驱动程序或接口。
- 开发工具:为了方便开发人员使用usbmuxd,计算机需要安装相应的开发工具和库。
3. usbmuxd的应用由于usbmuxd提供了与iOS设备的通信接口,它在设备管理和开发领域具有广泛的应用。
3.1 设备管理usbmuxd可以用于管理大量的iOS设备,使其能够与计算机进行有效的通信和操作。
例如,在移动设备管理(MDM)和移动应用开发中,usbmuxd可以用于批量安装应用、备份设备数据、远程控制设备等。
3.2 应用开发对于开发人员而言,usbmuxd是一个强大的工具,可以用于调试和测试iOS应用。
U盘安装系统步骤详解
U盘安装系统步骤详解第一步:准备工作1.要开始U盘安装系统,首先需要准备一个容量足够大的U盘,一般来说8GB以上的U盘就可以满足安装的需求。
第二步:格式化U盘1.将U盘插入电脑的USB接口,确保电脑能够识别到U盘。
2.打开计算机资源管理器,找到U盘的驱动器号码,以便在后续的步骤中使用。
3.运行U盘格式化工具,选择U盘对应的驱动器号码。
4.在格式化设置中,选择文件系统为FAT32,这是大多数系统兼容的文件系统。
5.点击开始或格式化按钮,等待格式化过程完成。
第三步:创建启动盘3.在工具中,选择将系统安装到U盘,通常会有一个选择目标U盘的选项。
确保选择的是刚刚格式化过的U盘。
4.可能还有其他选项,如分区格式、文件系统等,根据个人需求选择相应的选项。
5.点击开始或创建按钮,等待启动盘创建过程完成。
这个过程可能需要一些时间,具体时间取决于U盘的速度和系统镜像的大小。
第四步:设置电脑启动项1.将U盘插入要安装系统的电脑的USB接口。
2. 打开电脑,并连续按下F2、F12、Delete等键,进入电脑的BIOS设置界面。
不同品牌的电脑可能有不同的快捷键,请参考电脑的说明手册。
3.在BIOS设置界面中,找到启动选项,并将U盘的驱动器号码移到最前面,使之成为首选启动项。
4.保存设置并退出BIOS界面。
第五步:安装系统1.重启电脑,系统将会从U盘启动。
2.根据具体操作系统的安装界面,选择相应的语言、时区、键盘布局等选项。
3.接下来,会有一系列的安装步骤,如选择安装位置、分配磁盘空间、输入用户名和密码等。
根据自己的需求进行选择和填写。
4.等待系统安装完成,这个过程可能需要一些时间。
5.安装完成后,电脑将会重新启动。
此时可以将U盘拔出。
总结:U盘安装系统是一种方便快捷的安装系统的方法。
通过准备工作、格式化U盘、创建启动盘、设置电脑启动项和安装系统这五个步骤,可以成功地安装一个新的操作系统。
使用U盘安装系统可以免去了磁盘盒、光驱等设备的依赖,非常适合在没有光驱的轻薄本电脑上使用。
U盘和硬盘如何选择格式?FAT32,exFAT,NTFS,HFS和APFS有何区别?
U盘和硬盘如何选择格式?FAT32,exFAT,NTFS,HFS和APFS有何区别?U盘或移动硬盘是我们随身携带的存储设备,作为便携式外部存储设备。
要记住的一件重要事情是在开始格式化过程之前,一定要备份好重要数据。
在格式化U盘或者硬盘,应该选择哪种格式 - FAT32、NTFS或是HFS+等?还是其他什么?此外,让我们一次一个回答这些问题。
我应该选择哪种文件系统来格式化USB?在格式化USB驱动器时,您应该选择哪种格式 - FAT还是NTFS?还是其他什么?此外,如何将USB驱动器的格式大小从FAT更改为NTFS到exFAT或FAT32?让我们一次一个回答这些问题。
FAT32文件系统的好处注意:不能创建大于32GB的分区,不能写入大于4GB的单个文件。
•由于写入操作较少,执行USB的速度更快。
•减少内存使用量。
•快速磁盘扫描。
•与几乎所有操作系统兼容。
•较少的空间专用于文件系统数据,以允许更多的可用空间来容纳其他数据。
exFAT文件系统的好处- U盘最佳格式,可以在Windows和Mac OS上使用。
•能够创建大于32GB的分区。
•更好的磁盘空间管理。
•能够读/写大于4GB的文件。
因此,如果您的USB闪存驱动器容量大于32GB,则应选择NTFS 或exFAT。
除此之外,您应该选择适合您工作的格式。
例如,如果您在多个操作系统上使用U盘或者移动硬盘,那么使用exFAT会更好。
NTFS文件系统的优势,Windows系统上使用•更好的磁盘空间管理。
•减少空间浪费。
•通过文件加密提高可靠性和安全性。
•小数据集群。
•压缩数据以节省磁盘空间。
•能够为单个文件和文件夹创建权限。
•能够读取/写入大于32GB的文件,最大分区大小。
NTFS格式的硬盘如果想在Mac上写放入,可以安装第三方软件,例如Tuxera NTFS for MAC或者硬盘公司提供的驱动程序也行,还有其它第三方软件等等Windows上如何格式化U盘或者硬盘?打开“我的电脑”中显示的USB驱动器,然后右键选择“格式化”。
嵌入式USB主机文件系统下的实时数据存储
( ol e f o ue d noma o , H f nv r t o cn lg, H fi 30 9 hn) C l g mp t a fr t n eeU i sy f eh ooy ee2 0 0 ,C ia e oC rn I i i e i T
K e or yw ds: fl y tm ; m a sso a l s ; CBW ; CSW ; cuse i es se s t r gec a s l tr
0 引 言
随 着 移 动 数 据 存 储 领 域 的 日益 增 长 , 嵌 入 式 系 统 中 实 在
MB R区 又 称 为 主 引 导 记 录 , 后 为 6 字 节 的磁 盘 分 区表 (i 其 4 dk s prt ntb , T 。 对 某 些 u盘 来 说 , 于 不 需 要 从 u盘 启 ati l DP ) ioห้องสมุดไป่ตู้a e 由
现 US B主 机 功 能 , 以实 现 对 US B存 储 设 备 的 控 制 和 使 用 的 需 求 变 得 日益 迫 切 。 嵌 入 式 系 统 下 开 发 直 接 读 写 u盘 驱 动 的 在 主 要 难 点 是 在 软 件 方 面 , 及 的协 议较 多 , 下 到 上 必 须 完 成 涉 从 US B主 机 控 制 器 驱 动 程 序 、 B核 心 驱 动 程 序 、 s Soa e US Mas t g r
f rs me e e d d US h s y t m e l e f es se o o mb d e B— o t se t r a i l y t m. Th tu t r fF T 1 n eh b r r h e i n fa f mb d e l s o z i e s cu e o A a d t i e a c y d sg me o r 6 h l e e d df e i
u盘识别原理
u盘识别原理
U盘(USB驱动器)的识别原理主要涉及到以下几个方面:
1.硬件识别:当将U盘插入计算机的USB接口时,计算机会检测到新设备的插入。
USB接口会发送电流给U盘,U盘内部的电路会响应并与计算机进行通信。
2.设备描述和握手:U盘内部的电路会向计算机发送设备描述信息,也就是USB描述符。
这些描述符包含了U盘设备的厂商ID、产品ID、设备版本等信息。
计算机根据这些信息来识别U盘并确定其是存储设备。
3.设备驱动程序加载:计算机在识别出U盘后,会加载对应的设备驱动程序。
设备驱动程序是用来控制U盘与计算机进行数据交互的软件。
通过驱动程序,计算机能够与U盘进行文件的读写操作。
4.文件系统的识别:在成功加载设备驱动程序后,计算机会读取U盘中的分区表和文件系统信息。
分区表记录了U盘上分区的位置和大小,而文件系统则决定了U盘上文件的组织方式。
根据这些信息,计算机能够正确地访问和操作U盘中的文件。
总的来说,U盘的识别原理涉及到硬件的握手和通信,设备驱动程序的加载以及对文件系统的识别和解析。
这些步骤的顺利完成,才能使得计算机能够正常地读写U盘中的数据。
OpenWrt中对USB文件系统的操作,以及读写性能测试
OpenWrt中对USB⽂件系统的操作,以及读写性能测试1. 查看usb存储在启动⽇志中的信息# dmesg[ 5.720000] usbcore: registered new interface driver usbfs[ 5.730000] usbcore: registered new interface driver hub[ 5.740000] usbcore: registered new device driver usb[ 5.740000] ehci_hcd: USB 2.0'Enhanced' Host Controller (EHCI) Driver[ 5.750000] ehci-platform: EHCI generic platform driver[ 5.760000] ehci-platform ehci-platform: EHCI Host Controller[ 5.760000] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1[ 5.770000] ehci-platform ehci-platform: irq 3, io mem 0x1b000000[ 5.800000] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00[ 5.800000] hub 1-0:1.0: USB hub found[ 5.810000] hub 1-0:1.0: 2 ports detected[ 5.810000] ohci_hcd: USB 1.1'Open' Host Controller (OHCI) Driver[ 5.820000] ohci-platform: OHCI generic platform driver[ 5.820000] ohci-platform ohci-platform: Generic Platform OHCI controller[ 5.830000] ohci-platform ohci-platform: new USB bus registered, assigned bus number 2[ 5.840000] ohci-platform ohci-platform: irq 14, io mem 0x1c000000[ 5.910000] hub 2-0:1.0: USB hub found[ 5.910000] hub 2-0:1.0: 2 ports detected[ 6.140000] usb 1-1: new high-speed USB device number 2 using ehci-platform[ 6.720000] init: - preinit -[ 7.250000] ar71xx: pll_reg 0xb8050010: 0x11110000[ 7.250000] eth0: link up (1000Mbps/Full duplex)[ 7.270000] random: procd urandom read with 11 bits of entropy available[ 10.540000] jffs2: notice: (383) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found. [ 10.570000] mount_root: loading kmods from internal overlay[ 11.460000] SCSI subsystem initialized[ 11.460000] uhci_hcd: USB Universal Host Controller Interface driver[ 11.470000] usb-storage 1-1:1.0: USB Mass Storage device detected[ 11.480000] scsi host0: usb-storage 1-1:1.0[ 11.490000] usbcore: registered new interface driver usb-storage[ 11.740000] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab[ 11.760000] block: extroot: not configured[ 11.760000] mount_root: switching to jffs2 overlay[ 11.800000] eth0: link down[ 11.820000] procd: - early -[ 11.820000] procd: - watchdog -[ 12.490000] scsi 0:0:0:0: Direct-Access Generic- SD/MMC 1.00 PQ: 0 ANSI: 0 CCS[ 12.560000] procd: - ubus -[ 13.170000] sd 0:0:0:0: [sda] 30220288512-byte logical blocks: (15.4 GB/14.4 GiB)[ 13.200000] sd 0:0:0:0: [sda] Write Protect is off[ 13.200000] sd 0:0:0:0: [sda] Mode Sense: 03000000[ 13.200000] sd 0:0:0:0: [sda] No Caching mode page found[ 13.210000] sd 0:0:0:0: [sda] Assuming drive cache: write through[ 13.240000] sda: sda1[ 13.250000] sd 0:0:0:0: [sda] Attached SCSI removable disk2. ⽤fdisk对usb storage进⾏分区root@WNDR3800:~# fdisk /dev/sdaWelcome to fdisk (util-linux 2.25.2).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.# 查看磁盘信息Command (m for help): pDisk /dev/sda: 14.4 GiB, 15472787456 bytes, 30220288 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x00000000Device Boot Start End Sectors Size Id Type/dev/sda1 8192302202873021209614.4G 7 HPFS/NTFS/exFAT# 删除分区Command (m for help): dSelected partition 1Partition 1 has been deleted.# 创建新分区, 直接回车, 回车Command (m for help): nPartition typep primary (0 primary, 0 extended, 4free)e extended (container for logical partitions)Select (default p): pPartition number (1-4, default 1): 1First sector (2048-30220287, default 2048):Last sector, +sectors or +size{K,M,G,T,P} (2048-30220287, default 30220287):Created a new partition 1 of type 'Linux' and of size 14.4 GiB.# 保存Command (m for help): wThe partition table has been altered.Calling ioctl() to re-read partition table.Re-reading the partition table failed.: Device or resource busyThe kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8). # 重启root@WNDR3800:~# reboot3. 使⽤ext4格式化# 查看命令参数root@WNDR3800:~# mkfs.ext4Usage: mkfs.ext4 [-c|-l filename] [-b block-size] [-C cluster-size][-i bytes-per-inode] [-I inode-size] [-J journal-options][-G flex-group-size] [-N number-of-inodes][-m reserved-blocks-percentage] [-o creator-os][-g blocks-per-group] [-L volume-label] [-M last-mounted-directory][-O feature[,...]] [-r fs-revision] [-E extended-option[,...]][-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]# 格式化root@WNDR3800:~# mkfs.ext4 -b 4096 -L Ext4U01 /dev/sda1mke2fs 1.42.12 (29-Aug-2014)Creating filesystem with 3777280 4k blocks and 944704 inodesFilesystem UUID: 355a69cf-7a07-4752-a97d-f81a6956c786Superblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208Allocating group tables: doneWriting inode tables: doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: 2/116done# 完成# 如果要设置为swap分区mkswap /dev/sda1Setting up swapspace version 1, size = 523235840 bytes4. 重启后(让其⾃动mount), 查看⽂件系统, 如果df没有-T参数, 可以直接⽤mount命令查看格式root@WNDR3800:~# df -h -TFilesystem Type Size Used Available Use% Mounted onrootfs rootfs 12.1M 3.5M8.6M29% //dev/root squashfs 2.3M 2.3M0100% /romtmpfs tmpfs 61.5M264.0K 61.3M0% /tmp/dev/mtdblock5 jffs2 12.1M 3.5M8.6M29% /overlayoverlayfs:/overlay overlay 12.1M 3.5M8.6M29% /tmpfs tmpfs 512.0K 0512.0K 0% /dev/dev/sda1 ext4 14.1G 36.0M13.3G 0% /mnt/sda1[root@TIMEPLUG_CF37:/root]#mountrootfs on / type rootfs (rw)/dev/root on /rom type squashfs (ro,relatime)proc on /proc type proc (rw,noatime)sysfs on /sys type sysfs (rw,noatime)tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)/dev/mtdblock7 on /overlay type jffs2 (rw,noatime)overlayfs:/overlay on / type overlayfs (rw,noatime,lowerdir=/,upperdir=/overlay)tmpfs on /dev type tmpfs (rw,relatime,size=512k,mode=755)devpts on /dev/pts type devpts (rw,relatime,mode=600)/dev/sda1 on /mnt/sda1 type ext4 (rw,relatime,data=ordered)/dev/mtdblock6 on /mnt/mtdblock6 type squashfs (ro,relatime)5. 性能测试. 需要hdparm, 如果没有的话, 通过opkg install hdparm安装root@WNDR3800:~# hdparm -Tt /dev/sda/dev/sda:Timing cached reads: 256 MB in2.01 seconds = 127.67 MB/secTiming buffered disk reads: 44 MB in3.09 seconds = 14.24 MB/sec以及ddroot@WNDR3800:/mnt/sda1# time dd count=128 bs=1M if=/dev/zero of=test.test128+0 records in128+0 records outreal 0m 28.65suser 0m 0.00ssys 0m 0.74s计算⼤致的写⼊为 128/28.64=4.47MB/sUpdate 2017-10-08: 使⽤unitek(优越者)某款2.5⼨usb3.0硬盘盒挂载时出现错误导致被挂载为只读, 具体错误为Thu Oct 518:57:152017 kernel: [ 19.904000] EXT4-fs (sda1): mounting ext3 file system using the ext4 subsystemThu Oct 518:57:152017 kernel: [ 19.968000] sd 0:0:0:0: [sda] Invalid command failureThu Oct 518:57:152017 kernel: [ 19.972000] sd 0:0:0:0: [sda]Thu Oct 518:57:152017 kern.warn kernel: [ 19.976000] Result: hostbyte=0x00 driverbyte=0x08Thu Oct 518:57:152017 kernel: [ 19.980000] sd 0:0:0:0: [sda]Thu Oct 518:57:152017 kern.warn kernel: [ 19.984000] Sense Key : 0x5 [current]Thu Oct 518:57:152017 kernel: [ 19.988000] sd 0:0:0:0: [sda]Thu Oct 518:57:152017 kern.warn kernel: [ 19.992000] ASC=0x24 ASCQ=0x0Thu Oct 518:57:152017 kernel: [ 19.992000] sd 0:0:0:0: [sda] CDB:Thu Oct 518:57:152017 kern.warn kernel: [ 19.996000] cdb[0]=0x2a: 2a 080000384800000800Thu Oct 518:57:152017 kern.err kernel: [ 20.000000] end_request: critical target error, dev sda, sector 14408Thu Oct 518:57:152017 kern.err kernel: [ 20.008000] Buffer I/O error on device sda1, logical block 1545Thu Oct 518:57:152017 kern.warn kernel: [ 20.016000] lost page write due to I/O error on sda1Thu Oct 518:57:152017 kern.err kernel: [ 20.020000] JBD2: Error -5 detected when updating journal superblock for sda1-8.Thu Oct 518:57:152017 kern.warn kernel: [ 20.028000] EXT4-fs warning (device sda1): ext4_clear_journal_err:4637: Filesystem error recorded from previous mount: IO failure Thu Oct 518:57:152017 kern.warn kernel: [ 20.040000] EXT4-fs warning (device sda1): ext4_clear_journal_err:4638: Marking fs in need of filesystem check.Thu Oct 518:57:152017 kern.warn kernel: [ 20.056000] EXT4-fs (sda1): warning: mounting fs with errors, running e2fsck is recommendedThu Oct 518:57:152017 kernel: [ 20.068000] EXT4-fs (sda1): recovery completeThu Oct 518:57:152017 kernel: [ 20.072000] sd 0:0:0:0: [sda] Invalid command failureThu Oct 518:57:152017 kernel: [ 20.076000] sd 0:0:0:0: [sda]Thu Oct 518:57:152017 kern.warn kernel: [ 20.080000] Result: hostbyte=0x00 driverbyte=0x08Thu Oct 518:57:152017 kernel: [ 20.084000] sd 0:0:0:0: [sda]Thu Oct 518:57:152017 kern.warn kernel: [ 20.088000] Sense Key : 0x5 [current]Thu Oct 518:57:152017 kernel: [ 20.092000] sd 0:0:0:0: [sda]Thu Oct 518:57:152017 kern.warn kernel: [ 20.096000] ASC=0x24 ASCQ=0x0Thu Oct 518:57:152017 kernel: [ 20.100000] sd 0:0:0:0: [sda] CDB:Thu Oct 518:57:152017 kern.warn kernel: [ 20.100000] cdb[0]=0x2a: 2a 080000384800000800Thu Oct 518:57:152017 kern.err kernel: [ 20.108000] end_request: critical target error, dev sda, sector 14408Thu Oct 518:57:152017 kern.err kernel: [ 20.112000] Buffer I/O error on device sda1, logical block 1545Thu Oct 518:57:152017 kern.warn kernel: [ 20.120000] lost page write due to I/O error on sda1Thu Oct 518:57:152017 kern.err kernel: [ 20.124000] JBD2: Error -5 detected when updating journal superblock for sda1-8.Thu Oct 518:57:152017 kern.err kernel: [ 20.132000] Aborting journal on device sda1-8.Thu Oct 518:57:152017 kernel: [ 20.136000] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts:以及Thu Oct 518:57:172017 kern.crit kernel: [ 22.264000] EXT4-fs error (device sda1): ext4_journal_check_start:56: Detected aborted journalThu Oct 518:57:172017 kern.crit kernel: [ 22.272000] EXT4-fs (sda1): Remounting filesystem read-onlyThu Oct 518:57:192017 daemon.err block: /dev/sda1 is already mounted on /mnt/sda1在更换为其他硬盘盒(硬盘不变)后, 错误消失.。
U盘的格式化:文件系统的选择与分配单元大小的设置
U盘的格式化:⽂件系统的选择与分配单元⼤⼩的设置FAT32存放的⽂件不能超过4GexFAT⽂件系统是微软引⼊的⼀种适合于闪存的⽂件系统,为了解决FAT32不⽀持4G或更⼤⽂件的问题⽽推出的。
对于闪存,NTFS⽂件系统不适合使⽤,exFAT更为适⽤。
对于磁盘则不太适⽤。
之前太年轻,为了制作⼀个PE盘+U盘混合使⽤其中需要存放超过4G的Win10镜像所以使⽤了NTFS⽂件系统最终导致⼩⽂件的复制速度只有⼏百kb/s只能压缩后再存放⼤⽂件的速度还好,可以达30MB/s不过相对来说,使⽤体验还是极差!NTFS的U盘会经常性地导致资源管理器崩溃甚⾄导致系统死机,不得不重启...⽐如,就在我写下这句话的前⼀分钟...综合考虑,U盘最好使⽤exFAT系统(后续:不少⼿机的OTG功能不⽀持exFAT的⽂件系统如果没有⼤⽂件要保存,还是⽼⽼实实⽤FAT吧其实还可以把U盘分为两个区,每个区为不同的⽂件系统这样就兼顾了存放⼤⽂件+OTG读取两个功能⾄于分配单元⼤⼩,⼀般来说,分配单元越⼤,速度越快,但占⽤空间也更多不过我试了⼀下,差别不⼤,所以我就⽤最⼤的单元了,也不差这点空间?(后续:对于⼤⽂件,⼏乎可以忽略emm..⼩⽂件⽐如docx这类的⽂件,如果很多的话,占⽤空间是⾮常恐怖的快速格式化是最⽅便的,与格式化的区别仅在于可以恢复数据。
此外,USB接⼝也会导致U盘传输性能的差异:USB2.0最⾼速度在20MB/S左右USB3.0最⾼可达100MB/S(读取)⽽写⼊最⾼⼀般在30MB/S此外,再换回FAT+exFAT格式后,发现U盘不发热了之前⽤NTFS格式的时候,即便U盘不使⽤,插着也会发烫!。
usb configfs原理
usb configfs原理USB ConfigFS (Configuration File System) 是一个用于配置和管理USB 设备的Linux 内核功能。
USB ConfigFS 原理基于linux 的user-ioctl 接口和文件系统配置几个关键点进行设备驱动的通信和管理。
USB ConfigFS 的运行原理如下:步骤1:创建USB Function 实例USB ConfigFS 中的Function 是USB 设备的功能模块。
首先需要在/config/usb_gadget/ 目录中创建一个gadget 实例。
Gadget 是一个虚拟的USB 设备,它可以向主机模拟一个真实的USB 设备。
可以通过向/config/usb_gadget/ 目录写入数据来创建一个gadget 实例:1/ 创建一个gadget 实例的根目录:shellmkdir /config/usb_gadget/g12/ 配置gadget 的属性:g1 目录中有很多属性文件用于配置gadget 实例,例如idVendor, idProduct, bcdDevice 等。
可以将这些属性值写入到相应的文件中:shellecho 0x1234 > /config/usb_gadget/g1/idVendorecho 0x5678 > /config/usb_gadget/g1/idProductecho 0x0100 > /config/usb_gadget/g1/bcdDevice3/ 创建一个Function 实例:在gadget 实例下创建一个Function 实例,可以通过创建一个目录和一个名为"function" 的符号链接来实现。
Function 的类型由链接指向的目标文件决定:shellmkdir /config/usb_gadget/g1/functions/acm.gs0ln -s /config/usb_gadget/g1/functions/acm.gs0 \/config/usb_gadget/g1/function步骤2:配置USB Function 属性和设置Function 实例具有自己的属性,可以通过写入属性文件来配置Function。
电视机无法播放USB文件的解决方法
电视机无法播放USB文件的解决方法现如今,电视机已经成为家庭娱乐的重要组成部分,而其中播放USB文件是让许多人感到愉悦的功能之一。
然而,有时我们可能会遇到电视机无法播放USB文件的问题,这让人感到非常困扰。
本文将介绍一些解决这一问题的方法,帮助您享受更好的观看体验。
一、检查USB设备及文件格式首先,我们需要确保USB设备本身没有故障。
您可以将USB设备插入电脑并尝试播放其中的文件,如果在电脑上可以正常播放,说明USB设备运作正常。
然后,检查您要播放的USB文件的格式是否被电视机所支持。
常见的电视机支持的文件格式有MP4、MKV、AVI等。
如果您的USB文件格式不被支持,您可以尝试将其转换为电视机可播放的格式。
二、更新电视软件及固件例如,有些USB设备只能在更新的软件版本中正常播放。
您可以尝试在电视设置菜单中查找软件更新选项,如果有新的软件版本可供下载,那么您可以尝试更新软件以解决问题。
此外,电视固件的更新也可能解决无法播放USB文件的问题。
您可以通过电视品牌官方网站或联系客服获取最新的固件更新信息。
三、优化USB设备的文件系统有时,电视机无法读取USB设备是因为其文件系统不兼容。
大多数电视机支持FAT32和NTFS文件系统,您可以尝试将USB设备的文件系统格式化为这两种中的一种。
需要注意的是,格式化会清空USB设备上的所有数据,请确保提前备份好您重要的文件。
四、检查电视机USB接口的工作状态电视机的USB接口也可能出现故障,导致无法播放USB文件。
您可以尝试将USB设备插入电视机的其他USB接口,看是否能够正常播放。
如果其他接口可以播放,那么说明问题可能出现在特定的接口上。
您可以考虑将电视机送修或者更换电视机。
五、尝试使用媒体播放器如果您的电视机无法播放USB文件,您还可以考虑使用独立的媒体播放器来解决问题。
媒体播放器通常支持更多的文件格式,且功能更为强大,可以提供更好的观看体验。
您只需将USB设备插入媒体播放器,然后将媒体播放器与电视机通过HDMI线连接即可。
解决音响无法识别USB设备的方法
解决音响无法识别USB设备的方法音响是我们日常生活中常用的电子设备之一,它可以为我们提供高品质的音乐享受。
然而,有时候我们可能会遇到音响无法识别USB设备的问题,这给我们的使用带来了一定的困扰。
那么,接下来我将为大家介绍几种解决音响无法识别USB设备的方法。
方法一:检查USB设备和音响连接首先,我们需要检查USB设备和音响之间的连接是否正常。
确保USB设备的插头已经插入音响的USB接口,并且插紧。
有时候,插头没有插紧或者插入不正确,会导致音响无法正确识别USB设备。
方法二:更换USB线如果检查连接后问题依然存在,那么我们可以考虑更换USB线。
有时候,USB线本身可能存在问题,导致音响无法正常识别USB设备。
尝试使用另一根可靠的USB线连接音响和USB设备,看是否能够解决问题。
方法三:检查USB设备的文件系统USB设备的文件系统也可能是导致音响无法识别的原因之一。
有些音响只支持特定的文件系统格式,例如FAT32或exFAT。
如果你的USB设备的文件系统与音响不兼容,音响将无法正确识别USB设备。
在这种情况下,你可以尝试将USB设备的文件系统格式化为音响支持的格式,然后再次连接到音响上。
方法四:检查音响的固件更新有时候,音响的固件可能需要更新才能正常识别USB设备。
你可以去音响的官方网站上查找最新的固件更新,并按照官方提供的步骤进行更新。
固件更新可能会修复一些与USB设备识别相关的问题。
方法五:尝试连接其他USB设备如果以上方法都没有解决问题,那么你可以尝试连接其他USB设备到音响上,看是否能够正常识别。
如果其他USB设备可以被音响正确识别,那么问题可能出在你之前连接的USB设备上。
你可以尝试重新格式化USB设备或者联系设备厂商寻求帮助。
综上所述,解决音响无法识别USB设备的方法包括检查连接、更换USB线、检查文件系统、更新音响固件以及尝试连接其他USB设备。
希望以上方法能够帮助到大家解决音响无法识别USB设备的问题,让我们能够继续享受高品质的音乐。
exfat默认分配单元
exfat默认分配单元exFAT是一种文件系统,专门为外部存储设备(如USB驱动器和SD卡)设计的。
exFAT文件系统的一个重要特点是其默认的分配单元大小。
分配单元是文件系统中磁盘空间分配的最小单位。
它指定了文件系统在存储文件时分配多少空间。
较大的分配单元可以提供更好的性能,但会浪费一些空间。
较小的分配单元可以更高效地使用空间,但可能会导致性能下降。
exFAT文件系统的默认分配单元大小是128 KB(131,072 bytes)。
这个分配单元大小适用于大多数情况,特别是对于大型文件和外部存储设备来说。
它提供了较好的性能和空间使用效率的平衡。
较大的分配单元可以减少磁盘寻道时间,提高读写性能。
这是因为较大的分配单元使得每个文件所需的寻道数目减少。
另外,较大的分配单元也可以减少文件系统的管理开销,从而提高整体性能。
然而,较大的分配单元可能会浪费一些磁盘空间。
如果文件的大小不是分配单元大小的整数倍,将会有一些空间被浪费。
这种浪费通常被称为"slack space"。
因此,在选择分配单元大小时,需要综合考虑性能和空间利用效率。
在某些情况下,用户可能需要使用不同的分配单元大小。
例如,如果用户需要存储大量小文件(如照片、音乐和文档),较小的分配单元大小可能更适合。
这是因为较小的分配单元可以更高效地利用磁盘空间,避免较多的浪费。
为了在exFAT文件系统中指定分配单元大小,用户可以使用特定的格式化工具或命令。
这使得用户可以根据自己的需求选择合适的分配单元大小,以获得最佳的性能和空间利用效率。
总之,exFAT文件系统的默认分配单元大小是128 KB,适用于大多数情况。
尽管用户可以根据需要选择其他分配单元大小,但默认值已经提供了较好的性能和空间利用效率的平衡。
批量格式化usb磁盘的方法
批量格式化usb磁盘的方法格式化USB磁盘是指将USB存储设备中的数据清除,并重新建立文件系统,使其能够被计算机正常识别和使用。
对于需要批量格式化多个USB磁盘的情况,我们可以利用一些工具和命令来实现这一目的。
下面将介绍几种常用的批量格式化USB磁盘的方法:方法一:使用磁盘管理工具进行批量格式化1. 连接所有需要格式化的USB磁盘到计算机上,确保它们都被识别并显示在磁盘管理工具中。
2. 打开计算机的磁盘管理工具,一般可以通过在开始菜单中搜索“磁盘管理”来找到。
3. 在磁盘管理工具中,找到需要格式化的USB磁盘,右键点击磁盘,选择“格式化”选项。
4. 在弹出的格式化对话框中,选择所需的文件系统(如FAT32、NTFS等)、分配的簇大小等格式化参数,然后点击“开始”按钮开始格式化。
5. 等待格式化过程完成,重复以上步骤对其他USB磁盘进行格式化。
方法二:使用命令行工具进行批量格式化1. 打开命令提示符(CMD)窗口,可以通过在开始菜单中搜索“cmd”来找到。
2. 在命令提示符窗口中,输入命令“diskpart”并按下回车键,进入磁盘分区工具。
3. 输入命令“list disk”,列出所有磁盘信息,找到需要格式化的USB磁盘的磁盘号。
4. 依次输入命令“select disk X”(X为需要格式化的USB磁盘的磁盘号)、“clean”(清除磁盘数据)、“create partition primary”(创建主分区)、“formatfs=ntfs quick”(快速格式化为NTFS文件系统)等命令完成格式化过程。
5. 重复以上步骤对其他USB磁盘进行格式化。
方法三:使用第三方格式化工具进行批量格式化1. 下载并安装支持批量格式化的第三方格式化工具,如Rufus、HP USB Disk Storage Format Tool等。
2. 打开格式化工具,选择需要格式化的USB磁盘,设置格式化参数(如文件系统、簇大小等)。
USB下载常见问题及解决方案
USB下载常见问题及解决⽅案USB下载常见问题及解决⽅案⼀、问题简述本说明列举出了昆仑通态mcgsTpc嵌⼊式⼀体化触摸屏/⼯控机系列产品在使⽤USB下载服务的过程中,较常遇到的问题,并提供了详细的问题处理⽅案。
⼆、适⽤对象1.硬件产品本说明适⽤于昆仑通态⽣产的mcgsTpc嵌⼊式⼀体化触摸屏/⼯控机系列产品,具体适⽤型号如下:TPC7062K、TPC7062KS、TPC7063K。
适⽤接⼝:TPC7062K、TPC7062KS的USB2 接⼝为提供USB下载服务的端⼝;TPC7063K 的USB1和USB2 接⼝均为提供USB下载服务的端⼝。
其他型号适⽤情况敬请电话咨询:400-610-70622.软件版本本说明适⽤于昆仑通态MCGS嵌⼊版组态软件标准版本:MCGSE 6.5(01.0030)(含)以上版本。
具体适⽤版本包括:MCGSE 6.5(01.0030)、MCGSE 6.5(01.0031)、MCGSE 6.5(01.0032)、MCGSE 6.8(01.0001)、MCGSE6.8(01.0002)。
3.电脑配置操作系统:Windows 2000/Windows XP/Windows Vista/ Windows Server 2003兼容USB1.1及以上规范的PC机三、常见问题1.如何使⽤USB通讯⽅式进⾏下载服务?使⽤USB下载服务需要进⾏以下操作步骤:1.1使⽤USB通讯线连接PC机和TPC;(⼀端为偏平接⼝,⼀端为微型⽅⼝) (两端均为偏平接⼝)图1 TPC7062K/KS适⽤图2 TPC7063K 适⽤1.2在下载配置对话框中选择“连机运⾏”,连接⽅式选择“USB 通讯”,如下图3所⽰。
图3 下载配置1.3确保TPC开机并进⼊运⾏环境,即TPC进⼊⼯程下载画⾯或者⼯程运⾏状态;1.4在下载配置对话框点击“通讯测试”按钮,通讯测试正常后,点击“⼯程下载”。
2.为什么USB下载总是不成功?请检查是否是以下原因:2.1 USB驱动没有安装或者安装失败可通过以下⽅式查看确认:⽤USB通讯线连接好PC机和TPC,右键单机PC机上“我的电脑”,打开“属性”窗⼝,在“硬件”属性页选择“设备管理器”。
u盘版本协议
u盘版本协议U盘版本协议U盘是一种常见的便携式存储设备,广泛应用于文件传输和数据存储。
在U盘的设计和生产过程中,版本协议起着至关重要的作用。
版本协议定义了U盘与计算机或其他设备之间的通信规则和数据交换方式,确保U盘的正常工作和数据的安全传输。
一、USB接口U盘通常采用USB接口,因为USB接口广泛应用于各种设备,并提供了高速数据传输和热插拔功能。
USB接口分为多个版本,包括USB1.0、USB2.0、USB3.0和USB4.0。
每个版本都有不同的传输速率和功能特性。
版本协议需要明确指定U盘所支持的USB接口版本,以确保U盘与计算机或其他设备的兼容性。
二、文件系统U盘在存储数据时需要采用一种文件系统,常见的文件系统有FAT32、NTFS、exFAT等。
文件系统决定了U盘中数据的组织方式和存储规则。
版本协议应明确规定U盘所支持的文件系统类型,以确保U盘的兼容性和数据可读性。
三、命令协议U盘与计算机或其他设备之间的通信是通过一系列的命令来实现的。
版本协议需要定义U盘所支持的命令集和命令格式,以及每个命令的功能和参数。
常见的命令包括读取文件、写入文件、创建文件夹、删除文件等。
版本协议还需要规定命令的执行顺序和错误处理方式,以确保U盘的正常工作和数据的安全性。
四、加密协议为了保护U盘中的数据安全,版本协议中通常包含了加密协议。
加密协议定义了U盘中数据的加密方式和密钥管理方式。
常见的加密算法包括AES、DES、RSA等。
版本协议应规定U盘所支持的加密算法和密钥长度,以及加密和解密的过程和操作方式。
加密协议的设计需要考虑到数据的安全性和性能的平衡,确保U盘在数据传输过程中不会泄露敏感信息。
五、固件升级U盘的固件是指内置在U盘中的软件程序,用于控制U盘的各种功能和操作。
版本协议应包含固件的升级方式和升级过程,以便用户可以根据需要更新U盘的功能和修复可能存在的漏洞。
固件升级需要注意兼容性和可靠性,确保升级过程不会导致U盘的损坏或数据的丢失。
u盘的组成结构
u盘的组成结构一、外壳U盘的外壳通常由塑料或金属材料制成,用于保护内部电路不受损坏。
外壳的形状和大小各异,常见的有方形、圆形、椭圆形等。
外壳上通常还有一些标识和指示灯,用于显示U盘的状态和工作情况。
二、连接口U盘的连接口通常是USB接口,用于将U盘与电脑或其他设备连接。
USB接口有不同的规格,如USB 2.0、USB 3.0、USB Type-C等。
不同规格的USB接口具有不同的传输速度和兼容性。
三、存储芯片U盘的存储芯片是U盘的核心部件,用于存储数据。
存储芯片通常采用闪存技术,如NAND闪存。
根据存储芯片的容量和性能不同,U 盘的价格和性能也会有所差异。
四、控制器U盘的控制器是连接存储芯片和USB接口的桥梁,负责管理U盘的各项操作和数据传输。
控制器通常由一颗专用的控制芯片组成,具有存储管理、错误校正、数据加密等功能。
五、电路板U盘的电路板上集成了存储芯片、控制器和其他电子元件,用于实现U盘的各项功能。
电路板上还有一些电阻、电容、电感等元件,用于稳定电流和电压,保证U盘的正常工作。
六、固件U盘的固件是指存储在控制器内部的软件程序,用于控制U盘的工作流程和数据传输。
固件可以升级,以提升U盘的性能和兼容性。
七、驱动程序U盘作为一种外部存储设备,通常需要安装驱动程序才能在电脑上正常使用。
驱动程序可以使操作系统能够识别U盘并进行读写操作。
八、操作系统U盘的操作系统是指U盘内部的文件系统,用于组织和管理存储在U 盘中的数据。
常见的U盘文件系统有FAT32、NTFS、exFAT等。
U盘的组成结构可以分为外壳、连接口、存储芯片、控制器、电路板、固件、驱动程序和操作系统等部分。
每个部分都起着重要的作用,共同构成了一个完整的U盘。
通过了解U盘的组成结构,我们可以更好地理解U盘的工作原理和性能特点,为合理使用和保护U 盘提供参考。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
USB下文件系统如果你开发过USB相关项目,理解USB的一些基本概念,例如设备描述符、配置描述符、子类规范等,那么开发U盘只要概念清晰应该不难。
以下是我开发过程中的几个相关步骤:Ø 保证USB芯片正常工作,用其他USB成功项目验证硬件连接及固件的正确性Ø 按MassStorage协议Bulk-Only模式提供描述符,使PC机控制面板上设备类型出现MassStorageDeviceØ 响应SCSI指令集中Inquiry命令,可以出现盘符Ø 实现FAT16文件系统Ø 处理SCSI命令集中READ命令及其他UFI命令,可以访问盘符Ø 处理SCSI命令集中WRITE命令Ø U盘开发成功开发U盘有三个工具软件应该必备:l USBVIEW察看设备描述符,端点测试等;l BUSHOUND截取USB总线数据,可分析UFI命令及U盘返回的数据流;l 串口助手可实时了解U盘所收命令流及程序流程由于每个人知识面不同,我想实现上面的几个步骤遇到的问题也不一样。
对我最大的困惑是实现FAT16文件系统,直到在微软网站找到它的白皮书才算解惑。
这里简介一下方便大家有的放矢。
USB组织定义了海量存储设备类(MassStorageClass)的规范,这个类规范包括四个独立的子类规范,即:l USBMassStorageClassControl/Bulk/Interrupt(CBI)Transportl USBMassStorageClassBulk-OnlyTransportl USBMassStorageClassA TACommandBlockl USBMassStorageClassUFICommandSpecification。
前两个子规范定义了数据/命令/状态在USB上的传输方法。
Bulk-Only传输规范仅仅使用Bulk端点传送数据/命令/状态,CBI传输规范则使用Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态传送。
后两个子规范则定义了存储介质的操作命令。
ATA命令规范用于硬盘,UFI命令规范是针对USB移动存储。
Windows95OSR2和Windows98开始支持FAT32文件系统,它是对早期DOS的FAT16文件系统的增强,由于文件系统的核心--文件分配表FA T由16位扩充为32位,所以称为FAT32文件系统。
在一逻辑盘(硬盘的一分区)超过512兆字节时使用这种格式,会更高效地存储数据,减少硬盘空间的浪费,一般还会使程序运行加快,使用的计算机系统资源更少,因此是使用大容量硬盘存储文件的极有效的系统。
本人对Windows98下的FAT32文件系统做了分析实验,总体上与FAT16文件系统变化不大,现将有关变化部分简介如下:(一)FAT32文件系统将逻辑盘的空间划分为三部分,依次是引导区(BOOT区)、文件分配表区(FAT区)、数据区(DATA区)。
引导区和文件分配表区又合称为系统区。
(二)引导区从第一扇区开始,使用了三个扇区,保存了该逻辑盘每扇区字节数,每簇对应的扇区数等等重要参数和引导记录。
之后还留有若干保留扇区。
而FAT16文件系统的引导区只占用一个扇区,没有保留扇区。
(三)文件分配表区共保存了两个相同的文件分配表,因为文件所占用的存储空间(簇链)及空闲空间的管理都是通过FAT实现的,FAT如此重要,保存两个以便第一个损坏时,还有第二个可用。
文件系统对数据区的存储空间是按簇进行划分和管理的,簇是空间分配和回收的基本单位,即,一个文件总是占用若干个整簇,文件所使用的最后一簇剩余的空间就不再使用,而是浪费掉了。
从统计学上讲,平均每个文件浪费0.5簇的空间,簇越大,存储文件时空间浪费越多,利用率越低。
因此,簇的大小决定了该盘数据区的利用率。
FAT16系统簇号用16位二进制数表示,从0002H到FFEFH个可用簇号(FFF0H到FFFFH另有定义,用来表示坏簇,文件结束簇等),允许每一逻辑盘的数据区最多不超过FFEDH(65518)个簇。
FAT32系统簇号改用32位二进制数表示,大致从00000002H到FFFFFEFFH个可用簇号。
FAT表按顺序依次记录了该盘各簇的使用情况,是一种位示图法。
每簇的使用情况用32位二进制填写,未被分配的簇相应位置写零;坏簇相应位置填入特定值;已分配的簇相应位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的值为FFFFFF0FH,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇号,这样,正好将文件占用的各簇构成一个簇链,保存在FAT表中。
0000000H、00000001H两簇号不使用,其对应的两个DWORD位置(FAT表开头的8个字节)用来存放该盘介质类型编号。
FAT表的大小就由该逻辑盘数据区共有多少簇所决定,取整数个扇区。
(四)FAT32系统一簇对应8个逻辑相邻的扇区,理论上,这种用法所能管理的逻辑盘容量上限为16TB(16384GB),容量大于16TB时,可以用一簇对应16个扇区,依此类推。
FAT16系统在逻辑盘容量介于128MB到256MB时,一簇对应8个扇区,容量介于256MB 到512MB时,一簇对应16个扇区,容量介于512MB到1GB时,一簇对应32个扇区,容量介于1GB到2GB时,一簇对应32个扇区,超出2GB的部分无法使用。
显然,对于容量大于512MB的逻辑盘,采用FAT32的簇比采用FAT16的簇小很多,大大减少了空间的浪费。
但是,对于容量小于512MB的盘,采用FAT32虽然一簇8个扇区,比使用FAT16一簇16个扇区,簇有所减小,但FAT32的FAT表较大,占用空间较多,总数据区被减少,两者相抵,实际并不能增加有效存储空间,所以微软建议对小于512M的逻辑盘不使用FAT32。
另外,对于使用FAT16文件系统的用户提一建议,硬盘分区时,不要将分区(逻辑盘)容量正好设为某一区间的下限,例:将一逻辑盘容量设为1100M(稍大于1024M),则使用时其有效存储容量比分区为950M的一般还少,因其簇大一倍,浪费的空间较多。
还有,使用FDISK等对分区指定容量时,由于对1MB的定义不一样(标准的二进制的1MB为1048576B,有的系统将1MB理解为1000000B,1000KB等),及每个分区需从新磁道开始等因素,实际分配的容量可能稍大于指定的容量,亦需注意掌握。
(五)根目录区(ROOT区)不再是固定区域、固定大小,可看作是数据区的一部分。
因为根目录已改为根目录文件,采用与子目录文件相同的管理方式,一般情况下从第二簇开始使用,大小视需要增加,因此根目录下的文件数目不再受最多512的限制。
FAT16文件系统的根目录区(ROOT区)是固定区域、固定大小的,是从FAT区之后紧接着的32个扇区,最多保存512个目录项,作为系统区的一部分。
(六)目录区中的目录项变化较多,一个目录项仍占32字节,可以是文件目录项、子目录项、卷标项(仅跟目录有)、已删除目录项、长文件名目录项等。
目录项中原来在DOS 下保留未用的10个字节都有了新的定义,全部32字节的定义如下:(1)0--7字节文件正名。
(2)8--10字节文件扩展名。
(3)11字节文件属性,按二进制位定义,最高两位保留未用,0至5位分别是只读位、隐藏位、系统位、卷标位、子目录位、归档位。
(4)12--13字节仅长文件名目录项用,用来存储其对应的短文件名目录项的文件名字节校验和等。
(5)14--15字节24位二进制的文件建立时间,其中的高5位为小时,次6位为分钟。
(6)16--17字节16位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期。
(7)18--19字节16位二进制的文件最新访问日期,定义同(6)。
(8)20--21字节起始簇号的高16位。
(9)22--23字节16位二进制的文件最新修改时间,其中的高5位为小时,次6位为分钟,后5位的二倍为秒数。
(10)24--25字节16位二进制的文件最新修改日期,定义同(6)。
(11)26--27字节起始簇号的低16位。
(12)28--31字节32位的文件字节长度。
其中第(4)至(8)项为以后陆续定义的。
对于子目录项,其(12)为零;已删除目录项的首字节值为E5H。
在可以使用长文件名的FAT32系统中,文件目录项保存该文件的短文件名,长文件名用若干个长文件名目录项保存,长文件名目录项倒序排在文件短目录项前面,全部是采用双字节内码保存的,每一项最多保存十三个字符内码,首字节指明是长文件名的第几项,11字节一般为0FH,12字节指明类型,13字节为校验和,26--27字节为零。
(七)以前版本的Windows和DOS与FAT32不兼容,不能识别FAT32分区,有些程序也依赖于FAT16文件系统,不能和FAT32驱动器一道工作。
将硬盘转换为FAT32,就不能再用双引导运行以前版本的Windows(Windows95[Version4.00.950]、WindowsNT3.x、WindowsNT4.0和Windows3.x)。
磁盘结构综述1.硬盘结构硬盘的内部是由圆形金属片堆叠起来的,每个盘片的两面都有一个磁头(Head)负责读写这个磁面(Side),在每个磁面上划分了一圈一圈的同心圆,叫做柱面(Cylinder)对于软盘通常称之为磁道,在每个柱面中又划分了若干段,称之为扇区(Sector)。
由于技术的发展,硬盘的密度越来越大,使得硬盘的实际盘片数越来越少,对磁盘操作的柱面、磁头、扇区被硬盘控制器内部转换,已经不是实际的柱面、磁头、扇区了。
由于最早时磁盘存取系统估计不足,传输数据时只给扇区留了6位,柱面留了10位,磁头留了8位。
也就是说,柱面最大只能为1023。
但是大硬盘的柱面远大于这个数,所以后来就采用将柱面数减少,将磁头数增加的方式来满足磁盘寻址的要求,对于实际地址的转换在BIOS中进行,这叫逻辑块寻址方式(LogicalBlockAddressing,LBA)硬盘中有关柱面、磁头、扇区的数据都是以此为基准的。
2.分区结构众多的文件数据存放在磁盘上,需要有组织,这就形成了文件系统。
但是各个操作系统的文件系统都不尽相同,为了划分管理文件系统,在现在的PC机上都采用通用的分区结构。
分区机构是这样的:硬盘的以一个扇区(就是0柱面0磁头1扇区)叫主引导扇区(MainBootRecord,MBR),存放着引导程序和主分区表(MainPartitionTable)和结束标志“55AA”。
一般称的分区表即是主分区表。
一个分区表最多可包含四个分区表项,每个分区表项中标示着一个分区信息或一个扩展分区表的位置,而扩展分区表中可能还有扩展分区表,这就形成了一个链状结构,可以记录很多个分区。