1、插入U盘
2、使用 fdsik -l 查看U盘挂在的区域(eg:/dev/sda),或者使用lsblk命令使用fsck移除U盘中的坏块确定好 U 盘,该命令可以列出当前 Linux 系统上连接的所有磁盘。
loop21 7:21 0 124.8M 1 loop /snap/vscode/87
loop22 7:22 0 34.6M 1 loop /snap/gtk-common-themes/818
loop23 7:23 0 88.4M 1 loop /snap/core/6964
loop24 7:24 0 1008K 1 loop /snap/gnome-logs/61
loop25 7:25 0 124.3M 1 loop /snap/vscode/93
loop26 7:26 0 89.3M 1 loop /snap/core/6673
loop27 7:27 0 124M 1 loop /snap/vscode/89
sda 8:0 1 7.5G 0 disk
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 976M 0 part /boot/efi
├─nvme0n1p2 259:2 0 190.8G 0 part /
├─nvme0n1p3 259:3 0 9.3G 0 part [SWAP]
└─nvme0n1p4 259:4 0 276G 0 part /home
3、在 Linux 中修复闪存盘或其它类型驱动器最为简单的方法就是使用 fsck 工具,此工具是删除坏块、解决「不可读」问题和修复大多数文件系统问题的强大工具。
4、要删除坏文件块,请在特定分区(例如/dev/sda1)或整块磁盘(例如/dev/sda)上执行 fsck 命令, 一旦完成,你将获得一个健康的 Linux 分区。
$ sudo fsck /dev/sda
[sudo] qyh 的密码:
fsck,来自 util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
ext2fs_open2: 超级块中的幻数有错
fsck.ext2:超级块无效, 尝试备份块
fsck.ext2: 超级块中的幻数有错 尝试打开 /dev/sda 时
超级块无法被读取,或它未能正确地描述一个有效的ext2/ext3/ext4文件系统。
如果设备有效并确实为ext2/ext3/ext4文件系统 (而非swap或ufs等格式),
这说明超级块已经损坏,你可能需要指定备选超级块来运行e2fsck:
e2fsck -b 8193 <设备>
或
e2fsck -b 32768 <设备>
在 dos 中发现一个 /dev/sda 分区表
5、清零USB驱动器
当出现 U 盘已经完全不可读,里面的数据也无价值时,最佳的修复办法就是使用 dd 命令将 U 盘完全清零。
同样先使用 lsblk 命令找出 U 盘,再使用类似如下命令进行清零处理:
sudo dd if=/dev/zero of=/dev/sdb
$ sudo dd if=/dev/zero of=/dev/sda
^C记录了4098345+0 的读入
记录了4098345+0 的写出
2098352640 bytes (2.1 GB, 2.0 GiB) copied, 820.301 s, 2.6 MB/s
清零操作完成后,需要用 fdisk 或其它工具对磁盘进行重新分区,之后再选择如下命令格式化之后即可正常使用:
FAT32
sudo mkfs.msdos -f 32 /dev/sdb1
EXT4
sudo mkfs.ext4 -f /dev/sdb1
NTFS
sudo mkfs.ntfs -f /dev/sdb1