USB下文件系统

合集下载

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 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硬件方案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盘安装系统步骤详解

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盘和硬盘如何选择格式?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主机文件系统下的实时数据存储

嵌入式USB主机文件系统下的实时数据存储
L Ya g U n , M I Xi —u N n y , HAlS e hn
( 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盘识别原理
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文件系统的操作,以及读写性能测试

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盘的格式化:文件系统的选择与分配单元大小的设置

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原理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设备运作正常。

然后,检查您要播放的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设备的文件系统USB设备的文件系统也可能是导致音响无法识别的原因之一。

有些音响只支持特定的文件系统格式,例如FAT32或exFAT。

如果你的USB设备的文件系统与音响不兼容,音响将无法正确识别USB设备。

在这种情况下,你可以尝试将USB设备的文件系统格式化为音响支持的格式,然后再次连接到音响上。

方法四:检查音响的固件更新有时候,音响的固件可能需要更新才能正常识别USB设备。

你可以去音响的官方网站上查找最新的固件更新,并按照官方提供的步骤进行更新。

固件更新可能会修复一些与USB设备识别相关的问题。

方法五:尝试连接其他USB设备如果以上方法都没有解决问题,那么你可以尝试连接其他USB设备到音响上,看是否能够正常识别。

如果其他USB设备可以被音响正确识别,那么问题可能出在你之前连接的USB设备上。

你可以尝试重新格式化USB设备或者联系设备厂商寻求帮助。

综上所述,解决音响无法识别USB设备的方法包括检查连接、更换USB线、检查文件系统、更新音响固件以及尝试连接其他USB设备。

希望以上方法能够帮助到大家解决音响无法识别USB设备的问题,让我们能够继续享受高品质的音乐。

exfat默认分配单元

exfat默认分配单元

exfat默认分配单元exFAT是一种文件系统,专门为外部存储设备(如USB驱动器和SD卡)设计的。

exFAT文件系统的一个重要特点是其默认的分配单元大小。

分配单元是文件系统中磁盘空间分配的最小单位。

它指定了文件系统在存储文件时分配多少空间。

较大的分配单元可以提供更好的性能,但会浪费一些空间。

较小的分配单元可以更高效地使用空间,但可能会导致性能下降。

exFAT文件系统的默认分配单元大小是128 KB(131,072 bytes)。

这个分配单元大小适用于大多数情况,特别是对于大型文件和外部存储设备来说。

它提供了较好的性能和空间使用效率的平衡。

较大的分配单元可以减少磁盘寻道时间,提高读写性能。

这是因为较大的分配单元使得每个文件所需的寻道数目减少。

另外,较大的分配单元也可以减少文件系统的管理开销,从而提高整体性能。

然而,较大的分配单元可能会浪费一些磁盘空间。

如果文件的大小不是分配单元大小的整数倍,将会有一些空间被浪费。

这种浪费通常被称为"slack space"。

因此,在选择分配单元大小时,需要综合考虑性能和空间利用效率。

在某些情况下,用户可能需要使用不同的分配单元大小。

例如,如果用户需要存储大量小文件(如照片、音乐和文档),较小的分配单元大小可能更适合。

这是因为较小的分配单元可以更高效地利用磁盘空间,避免较多的浪费。

为了在exFAT文件系统中指定分配单元大小,用户可以使用特定的格式化工具或命令。

这使得用户可以根据自己的需求选择合适的分配单元大小,以获得最佳的性能和空间利用效率。

总之,exFAT文件系统的默认分配单元大小是128 KB,适用于大多数情况。

尽管用户可以根据需要选择其他分配单元大小,但默认值已经提供了较好的性能和空间利用效率的平衡。

批量格式化usb磁盘的方法

批量格式化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下载常见问题及解决⽅案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盘与计算机或其他设备之间的通信规则和数据交换方式,确保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盘的状态和工作情况。

二、连接口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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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”。

一般称的分区表即是主分区表。

一个分区表最多可包含四个分区表项,每个分区表项中标示着一个分区信息或一个扩展分区表的位置,而扩展分区表中可能还有扩展分区表,这就形成了一个链状结构,可以记录很多个分区。

相关文档
最新文档