Linux检查U盘的物理健康状况

时间:2020-01-09 10:41:19  来源:igfitidea点击:

如何检查Linux操作系统中U盘的物理状态?
如何在Linux中检查USB闪存盘?
您能告诉我Linux命令来测试和检测USB闪存或笔式驱动器中的坏扇区吗?

本教程说明如何在Linux中检查U盘的健康状态并获取状态,以便了解其是否无法修复。

Linux检查U盘

在Linux中检查U盘的物理状况的过程:

  • 将U盘插入Linux系统。
  • 要测试和检测USB闪存或笔式驱动器中的坏扇区,请运行:badblocks -w -s -o error.log/dev/sdX
  • 要对USB闪存驱动器进行错误检查,可以使用f3write和f3read命令,这是Windows操作系统中h2testw应用程序的替代方法。

让我们详细查看所有命令和示例。

Linux命令检查U盘的物理状态

首先,在Linux下找出您的U盘或闪存驱动器名称,运行:

lsblk

警告:这将破坏U盘/记忆棒上以前存储的所有数据。
确保在Linux下选择正确的USB设备名称。

插入U盘后,运行以下命令在设备上搜索坏块:

sudo badblocks -w -s -o error.log /dev/sda

其中的选项如下:

  • -w:使用写模式测试通过在设备的每个块中写入一些模式,读取每个块并比较内容来扫描坏块。
  • -s:显示扫描进度。
  • -o error.log:将坏块列表写入当前工作目录中的error.log文件。

使用cat命令查看error.log:

cat error.log

F3工具

f3是一个简单的工具,可以测试闪存卡的容量和性能,以查看它们是否符合要求的规格。

如何在Linux上安装F3工具

首先,请确保您已在Linux上安装并运行了编译器。
如果没有,请参见以下教程:

  • Ubuntu Linux安装GNU GCC编译器和开发环境
  • Debian Linux安装GNU GCC编译器和开发环境
  • CentOS/RHEL 7:安装GCC(C和C ++编译器)和开发工具

使用wget命令下载文件:

wget https://github.com/AltraMayor/f3/archive/v7.2.tar.gz

在Linux上解压缩tar包,运行:

tar xvf v7.2.tar.gz

编译:

make

安装它:

make install

使用f3read/f3write测试性能

使用以下两个命令。
首先,f3write将大文件写入已安装的U盘盘。
例如,我的/dev/sda挂载在/mnt /:

f3write /mnt/

接下来,f3read将检查闪存盘是否完全包含写入的文件:

f3read /mnt/

零数据丢失表明我的U盘工作正常。

在Linux上使用f3probe进行快速容量测试

如果您认为自己购买了伪造的闪存驱动器,请尝试以下Linux命令。

f3probe命令是最快的驱动器测试,适用于大型磁盘,因为它只写测试驱动器所需的内容。
它直接在(未装载的)块设备上运行,需要以特权用户身份运行(再次小心使用设备名称,因为--destructive选项会删除所有数据):

sudo ./f3probe --destructive --time-ops /dev/sdb

输出示例:

[sudo] password for Hyman: 
F3 probe 7.2
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.

Good news: The device `/dev/sdb' is the real thing

Device geometry:
	         *Usable* size: 15.24 GB (31969278 blocks)
	        Announced size: 15.24 GB (31969278 blocks)
	                Module: 16.00 GB (2^34 Bytes)
	Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
	   Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 5'16"
Operation: total time / count = avg time
      Read: 1.95s / 4814 = 405us
     Write: 5'11" / 4192321 = 74us
     Reset: 1us / 1 = 1us

如何在Linux中将U盘的容量校正为实际大小

运行f3fix命令创建一个适合假驱动器实际大小的分区。
仅用于纠正伪造驱动器的大小。
使用f3probe的输出确定i3fix的参数:

sudo ./f3fix --last-sec=16477878 /dev/sdb