恢复损坏的 USB:在 lsblk 和 lsusb 中可见,在其他地方不可见

恢复损坏的 USB:在 lsblk 和 lsusb 中可见,在其他地方不可见

我有一个 LUKS 加密的 USB 驱动器,直到几天前它还正常工作。有一天,在启动系统并尝试访问驱动器后,它一遍又一遍地要求我输入解密密码,但未能成功挂载。我尝试重新启动,但现在情况更糟了:使用lsusblsblk命令可以看到磁盘/dev/sdc,但是,如果我尝试使用ddfdiskfsckgparted重新分区磁盘,它会导致我的终端挂起(gparted永远显示其“扫描”消息)。

我不在乎磁盘上的数据,因为它安全地备份在其他地方。但是,我想创建一个新的分区表并继续使用该驱动器。dmesg输出如下:

[1813.162291] 信息:任务 blkid:20469 被阻止超过 120 秒。
[1813.162292] 受污染:P OE 4.15.0-29-通用#31-Ubuntu
[ 1813.162293] “echo 0 > /proc/sys/kernel/hung_task_timeout_secs”禁用此消息。
[1813.162294] blkid D 0 20469 4989 0x00000004
[ 1813.162296] 呼叫追踪:
[ 1813.162298] __计划+0x291/0x8a0
[ 1813.162300] ?__update_load_avg_blocked_se.isra.37+0xd1/0x150
[ 1813.162301] ?获取工作池+0x40/0x40
[1813.162303]时间表+0x2c/0x80
[1813.162304]计划超时+0x1cf/0x350
[ 1813.162306] ?ttwu_do_activate+0x77/0x80
[1813.162308]?获取工作池+0x40/0x40
[1813.162309]等待完成+0xba/0x140
[1813.162310]?唤醒_q+0x80/0x80
[ 1813.162311]刷新工作+0x126/0x1e0
[ 1813.162313] ? worker_detach_from_pool+0xa0/0xa0
[ 1813.162314] __cancel_work_timer+0x131/0x1b0
[ 1813.162316] ?精确锁+0x11/0x20
[1813.162318]取消延迟工作同步+0x13/0x20
[1813.162320]磁盘块事件+0x78/0x80
[ 1813.162321] __blkdev_get + 0x69/0x4c0
[ 1813.162323] ? __follow_mount_rcu.isra.26+0x6e/0xf0
[1813.162324]blkdev_get + 0x129/0x320
[ 1813.162326] blkdev_open + 0x95/0xf0
[1813.162328]do_dentry_open+0x1c2/0x310
[1813.162329]?__inode_permission+0x5b/0x160
[ 1813.162330] ?bd_获取+0xd0/0xd0
[ 1813.162332] vfs_open+0x4f/0x80
[1813.162333]路径打开+0x66e/0x1770
[ 1813.162335] ?文件名查找+0xf2/0x190
[ 1813.162337] do_filp_open + 0x9b/0x110
[1813.162338]?__check_object_size+0xaf/0x1b0
[1813.162341]?__alloc_fd + 0x46/0x170
[ 1813.162342] do_sys_open + 0x1bb/0x2c0
[ 1813.162344] ?do_sys_open + 0x1bb/0x2c0
[1813.162345]?_cond_resched+0x19/0x40
[ 1813.162347] SyS_openat + 0x14/0x20
[1813.162349]do_syscall_64 + 0x73/0x130
[1813.162350]entry_SYSCALL_64_after_hwframe+0x3d/0xa2
[1813.162351] RIP:0033:0x7f253855bc8e
[1813.162352] RSP:002b:00007fff359f6ed0 EFLAGS:00000246 ORIG_RAX:0000000000000101
[1813.162353] RAX:ffffffffffffffda RBX:0000557f50560590 RCX:00007f253855bc8e
[1813.162354] RDX:0000000000080000 RSI:0000557f5049a650 RDI:00000000ffffff9c
[1813.162355]RBP:0000557f504992b0 R08:0000000000000000 R09:0000000000000000
[1813.162356] R10:0000000000000000 R11:0000000000000246 R12:00007f2538a88944
[1813.162356] R13:00000000db611429 R14:0000000000000000 R15:00007f25388754c8
[1933.994414] 信息:任务 scsi_eh_3:20306 被阻止超过 120 秒。
[1933.994419] 受污染:P OE 4.15.0-29-通用#31-Ubuntu
[ 1933.994421] “echo 0 > /proc/sys/kernel/hung_task_timeout_secs”禁用此消息。
[1933.994423] scsi_eh_3 D 0 20306 2 0x80000000
[ 1933.994429] 呼叫追踪:
[ 1933.994441] __时间表+0x291/0x8a0
[1933.994444]时间表+0x2c/0x80
[ 1933.994446] schedule_preempt_disabled+0xe/0x10
[ 1933.994447] __mutex_lock.isra.2+0x18c/0x4d0
[1933.994449]?__switch_to_asm+0x40/0x70
[1933.994451]?__switch_to_asm+0x40/0x70
[1933.994453]?__switch_to_asm+0x34/0x70
[1933.994455] __mutex_lock_slowpath+0x13/0x20
[1933.994456]?__mutex_lock_slowpath+0x13/0x20
[1933.994458]互斥锁+0x2f/0x40
[1933.994463]设备重置+0x22/0x50 [usb_存储]
[ 1933.994466] scsi_eh_ready_devs+0x333/0xbf0
[1933.994469]?__pm_runtime_resume+0x5b/0x80
[1933.994471]?scsi_try_target_重置+0x90/0x90
[ 1933.994473] scsi_error_handler+0x4c3/0x5b0
[1933.994476] k线程+0x121/0x140
[1933.994479]?scsi_eh_get_sense+0x200/0x200
[1933.994481]?kthread_create_worker_on_cpu+0x70/0x70
[1933.994483]从_fork+0x35/0x40返回
[ 2047.504998] perf:中断时间过长(2540 > 2500),将 kernel.perf_event_max_sample_rate 降低至 78500

任何帮助表示感谢

答案1

连接不牢,或者驱动器本身已损坏,无法读取或写入数据。如果拔下 USB 再重新插入不起作用,则可能是您的 USB 设备不再工作。您看到的挂起任务错误是由于计算机尝试从设备读取数据,失败并反复尝试而导致的。在执行此操作时,它会告诉请求数据的进程等待,因为它认为读取错误是暂时的并会自行解决。如果由于驱动器实际上有故障或损坏而导致此等待时间过长,则操作系统会认为任务已“挂起”,并输出错误。

设备仍显示为设备的原因是驱动器上的内部微控制器仍在工作。它正确地向计算机宣告自己,并正确地报告其大小和其他参数,但一旦尝试访问数据,就会失败。

这是 USB 闪存驱动器还是外部 USB 硬盘驱动器?如果是后者,您可以使用以下方法测试设备的运行状况智能工具。此包可用于指示驱动器进行自检以扫描问题。如果设备是闪存驱动器,则它将不起作用。

相关内容