web-dev-qa-db-ja.com

破損したUSBの回復:lsblkおよびlsusbに表示されます

数日前まで正常に動作していたLUKS暗号化USBドライブがあります。システムを起動し、ある日ドライブにアクセスしようとすると、何度も何度も復号化パスワードを要求されましたが、正常にマウントできませんでした。再起動しようとしましたが、状況はさらに悪くなりました。/dev/sdclsusbおよびlsblkコマンドを使用してディスクを表示できますが、ddを使用しようとすると、 fdiskfsck、またはgpartedでディスクを再パーティションすると、端末がハングします(gpartedは「スキャン」メッセージを永久に表示します)。

他の場所に安全にバックアップされているので、ディスク上のデータは気にしません。ただし、新しいパーティションテーブルを作成し、ドライブを引き続き使用したいと思います。 dmesg出力は次のとおりです。

[1813.162291]情報:タスクblkid:20469が120秒以上ブロックされました。
 [1813.162292]汚染:P OE 4.15.0-29-generic#31-Ubuntu 
 [1813.162293] "echo 0 >/proc/sys/kernel/hung_task_timeout_secs "はこのメッセージを無効にします。
 [1813.162294] blkid D 0 20469 4989 0x00000004 
 [1813.162296] Call Trace:
 [1813.162298] __schedule + 0x291/0x8a0 
 [1813.162300]? __update_load_avg_blocked_se.isra.37 + 0xd1/0x150 
 [1813.162301]? get_work_pool + 0x40/0x40 
 [1813.162303] schedule + 0x2c/0x80 
 [1813.162304] schedule_timeout + 0x1cf/0x350 
 [1813.162306]? ttwu_do_activate + 0x77/0x80 
 [1813.162308]? get_work_pool + 0x40/0x40 
 [1813.162309] wait_for_completion + 0xba/0x140 
 [1813.162310]? wake_up_q + 0x80 /​​ 0x80 
 [1813.162311] flush_work + 0x126/0x1e0 
 [1813.162313]? worker_detach_from_pool + 0xa0/0xa0 
 [1813.162314] __cancel_work_timer + 0x131/0x1b0 
 [1813.162316]? exact_lock + 0x11/0x20 
 [1813.162318] cancel_delayed_work_sync + 0x13/0x20 
 [1813.162320] disk_block_events + 0x78/0x80 
 [1813.162321] __blkdev_get + 0x69/0x4c [0_69.0_4_0c_0_4_0_4_0_4_0_0] 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 + 310 ____。] [1813.162329]? __inode_permission + 0x5b/0x160 
 [1813.162330]? bd_acquire + 0xd0/0xd0 
 [1813.162332] vfs_open + 0x4f/0x80 
 [1813.162333] path_openat + 0x66e/0x1770 
 [1813.162335]? filename_lookup + 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] ent_SYSCALL_64_after3 1813.162351] RIP:0033:0x7f253855bc8e 
 [1813.162352] RSP:002b:00007fff359f6ed0 EFLAGS:00000246 ORIG_RAX:0000000000000101 
 [1813.162353] RAX:ffffffffffffffda RBX:0000557 ] RDX:0000000000080000 RSI:0000557f5049a650 RDI:00000000ffffff9c 
 [1813.162355] RBP:0000557f504992b0 R08:0000000000000000 R09:0000000000000000 
 [1813.162356] R10:0000000000000000 R11:0000000000000246 R12:00070000002 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] Call Trace:
 [1933.994441] __schedule + 0x291/0x8a0 
 [1933.994444] schedule + 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] mutex_lock + 0x2f/0x40 
 [1933.994463] device_reset + 0x22/0x50 [usb_storage] 
 [1933.994466] scsi_eh_ready_devs_dev + 。] [1933.994469]? __pm_runtime_resume + 0x5b/0x80 
 [1933.994471]? scsi_try_target_reset + 0x90/0x90 
 [1933.994473] scsi_error_handler + 0x4c3/0x5b0 
 [1933.994476] kthread + 0x121/0x140 
 [1933.994479]? scsi_eh_get_sense + 0x200/0x200 
 [1933.994481]? kthread_create_worker_on_cpu + 0x70/0x70 
 [1933.994483] ret_from_fork + 0x35/0x40 
 [2047.504998] perf:割り込みに時間がかかりすぎ(2540> 2500)、kernel.perf_event_max_sample_rateを78500に下げました

どんな援助も大歓迎です

2
hellkat_

接続が脆弱であるか、ドライブ自体が破損しており、データを読み書きできません。 USBを取り外して再び接続しても機能しない場合は、USBデバイスが機能していない可能性があります。ハングタスクエラーが表示されるのは、コンピューターがデバイスからの読み取りを試み、失敗し、何度も繰り返し試行したためです。これを行う間、読み取りエラーが一時的なものであり、それ自体を解決することを想定しているため、データを要求したプロセスに待機するよう指示します。ドライブが実際に故障または損傷しているためにこの待機が十分に長く続く場合、オペレーティングシステムはタスクが「ハング」していると見なし、エラーを出力します。

デバイスがまだデバイスとして表示される理由は、ドライブの内部マイクロコントローラーがまだ動作しているためです。自身をコンピューターに正しく通知し、サイズやその他のパラメーターを正しく報告しますが、データにアクセスしようとするとすぐに失敗します。

これはUSBフラッシュドライブですか、それとも外部USBハードドライブですか?後者の場合、 smartmontools を使用してデバイスの状態をテストできる場合があります。このパッケージを使用して、問題をスキャンするためのセルフテストを実行するようドライブに指示できます。デバイスがフラッシュドライブの場合は機能しません。

1
forest