编辑

编辑

我想了解 USB 闪存驱动器的页大小、扇区大小、块大小(如果适用)。有没有办法让我用 Ubuntu 检查那些?

mount /dev/sda1 /mnt
?
umount /dev/sda1

编辑

我有兴趣编写可能在主机端提供更多覆盖范围的测试。我想测试小于、等于和大于闪存部分的页面大小以及主机端的 DRAM 和/或 eMMC 的页面大小的写入。

如何找到 USB 闪存、设备 DRAM 和设备 eMMC 的物理(非虚拟)页面大小?

答案1

我不确定这有那么重要。你可以fdisk -l /dev/sda;然而,通常/dev/sda是您的硬盘或SSD磁盘,USB记忆棒将是例如/dev/sdi(然后运行fdisk -l /dev/sdi)。dmesg插入棒后立即进行检查以找出答案。

注意:很多时候/dev/sda是你的系统盘。

从 USB 闪存盘安装文件系统后,您可以运行FSSTAT(1)如果你有那个(例如fsstat /dev/sdi1)并且还有df(1)

实际上,您很可能不需要,也无法可靠且忠实地获取 USB 记忆棒的页面、扇区、块大小。

但是,您最好在以下情况下使用不要太小的缓冲区:阅读(2)-ing 或写(2)-他们。我建议使用 32Kbytes 或 64Kbytes 缓冲区进行 USB key I/O 操作。如果您正在浏览文件系统,则大部分数据实际上都在页面缓存(并且可能会在sync某个umount时间被刷新)。

你可能不能轻松找到设备的物理页面大小(特别是,因为硬件可能没有提供任何查询它的方法)。如果这很重要,请深入了解硬件的完整技术规格(如果您需要签署保密协议才能获得它们,我不会感到惊讶)。

您可能会考虑使用命令来查询硬件:hwinfolsusb,等等...(但我相信它们没有给出您想要的,因为硬件本身缺乏这样的功能)

您可以简单地使用各种缓冲区大小(例如,从 512 字节到 1 兆字节的 2 的幂)对 I/O 操作进行基准测试

相关内容