You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Linux/Python/Julia/R下无误差检测挂载路径实际容量的工具或脚本

检测扩容外接硬盘的工具与脚本优化方案

一、现成工具(Linux环境优先)

这些工具专门针对扩容存储设计,无需自行编写脚本,准确性高:

  • f3(Fake Flash File System):最常用的扩容检测工具,操作简单精准。
    1. 将目标硬盘挂载到指定路径(例如/mnt/usb)
    2. 执行写入测试:f3write /mnt/usb,该命令会在挂载目录生成测试文件直到填满标称容量
    3. 执行读取验证:f3read /mnt/usb,对比写入与读取的数据,直接输出真实可使用容量
  • badblocks:Linux系统自带工具,原本用于检测坏块,也可验证真实容量(注意:会清空目标设备所有数据,请提前备份)
    执行命令:sudo badblocks -w -s -v /dev/sdX(将/dev/sdX替换为你的硬盘设备名,可通过lsblk查看),该命令会向设备写入测试数据并回读校验,扩容盘写入超过真实容量的部分会覆盖之前数据,校验时会报错
  • dd + 哈希校验:适合手动快速验证(同样会清空数据)
    1. 写入标称容量的随机数据:dd if=/dev/urandom of=/dev/sdX bs=1G count=2048(2048×1G=2TB,可根据标称容量调整)
    2. 计算写入数据的哈希值:dd if=/dev/sdX bs=1G count=2048 | sha256sum > /tmp/usb_hash.txt
    3. 重新读取数据并校验:dd if=/dev/sdX bs=1G count=2048 | sha256sum -c /tmp/usb_hash.txt,扩容盘的哈希值会不匹配

二、自定义脚本的优化方案(以Julia为例)

你的初始思路可行,可通过以下方式提升效率与准确性:

1. 用可预测序列替代随机数据

随机数据生成与校验开销大,改用可预测序列能大幅提速,且无需存储所有块的校验值:

  • 示例:每个数据块填充块编号的重复字节,或固定模式字节(如全0xAA)。回读时直接根据块位置计算预期数据,对比即可,无需提前存储校验和

2. 分离写入与校验流程

不要每次写入新块后回读所有先前块,改为:

  • 写入阶段:按chunk_size遍历标称容量写入数据块,同时记录每个块的起始偏移和生成规则/校验值到本地文件(如JSON/CSV)
  • 校验阶段:根据记录的偏移信息,逐个读取对应块并验证数据,避免重复读取,效率提升明显

3. 直接操作底层设备而非挂载点

跳过文件系统,直接写入/dev/sdX这类设备文件,能绕过扩容盘固件在文件系统层的造假逻辑,更准确检测真实物理容量。操作前需卸载挂载点,且会清空所有数据

4. 多线程并行优化

Julia支持多线程,可将数据块生成、写入、校验等步骤并行处理,比如同时生成多个块的数据,或同时读取多个块校验,大幅缩短检测时间

内容的提问来源于stack exchange,提问作者Antonello

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 18:42:17