U盘的扇区大小可以修改吗?

标签 c embedded usb

我知道U盘的簇大小是可以改变的,那我们也可以改变扇区大小吗??

最佳答案

扇区大小不是 ATA/SATA/SCSI/等设备中的可配置参数,根据我的经验,USB 闪存驱动器实现其中一种协议(protocol)。扇区大小 由设备本身报告,但是,即使您可以将其设置为 512 以外的其他值,您也可能会在假设扇区的驱动程序或文件系统包中的某处遇到潜在错误大小为 512。

使用像 512 这样的扇区大小是有实际原因的,例如,可以更快更有效地寻址更大的扇区(不仅在时间上,而且在大小/空间上)。这些设备的吞吐量也更好,例如 512。考虑一下,如果您可以将扇区大小设置为 16 字节,与使用 16 字节扇区相比,您可能会浪费更少的空间半满 512 字节扇区的数量,但设备的吞吐量可能会更差。事实上,写入一个 16 字节的扇区只比写入一个 512 字节的扇区快一点点。另一方面,由于与传输多个扇区相关的开销,写入 32 个 16 字节扇区(总共写入 512 字节)可能比写入单个 512 字节扇区花费更长的时间。

如果您担心 512 字节扇区会浪费空间,我建议您购买更大的 USB 闪存盘。

关于U盘的扇区大小可以修改吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16281231/

相关文章:

python - 使用Python直接向USB发送信号

c - 如何创建一个未定义长度的数组? (在 C 中)

c - 是什么, "passing argument 2 of ' strstr' 从没有强制转换的整数生成指针,"在 C 中的意思是

c - 如何通过更改其成员的顺序找到所有可以变得更小的结构

c - BeagleBone 上的段错误 SIGSEGV 错误

c - AVR 中断配置

windows - CreateFile 无法在 Windows 中打开 HID 设备

c++ - 使用预处理器部分处理文件

c - 启用优化后 GCC 未报告结构存储大小错误

linux - 禁用特定的USB设备