私はLinux初心者ですが、ドライブが定期的に消える問題があり、どのように進むlsblk
べきかわかりません。ドライブは240GB外付けUSB SSDです。
インストールドライブのしくみ
挿入後にfdisk -l
正しく表示されることがわかります。
その後、正しくインストールして以下を使用して表示できますlsblk
。
また、次のように表示されますdf
。
ドライブに障害が発生した場合
数日に一度lsblk
、、、、、からドライブが完全に消えるようですdf
。fdisk -l
この時点でドライブを取り外して再接続/再インストールしましたが、再び機能しました(しかし数日後に再び消えました)。ドライブが動作している間とをbadblocks
実行してみましたが、smartctl
どちらもドライブに問題があるようではありませんでした。
何が起こっているのかを理解する方法を提案できる人はいますか?
編集する
デバイスはINTEL NUC i5-3427U 8GB RAM 64GB M-SATA SSDで、Kingston sa400s37240gハードドライブとペアになっています。
編集2
以下は、ドライブがそれ自体で切断されたように見えるときのJournalctlのいくつかの出力です。
root@pve:~# journalctl --since "02:00"
-- Journal begins at Fri 2023-01-20 17:07:18 GMT, ends at Thu 2023-11-16 14:07:51 GMT. --
Nov 16 02:00:01 pve CRON[357262]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Nov 16 02:00:01 pve CRON[357263]: (root) CMD (/usr/bin/touch /mnt/SSD_240GB/.keepalivefile)
Nov 16 02:00:01 pve CRON[357262]: pam_unix(cron:session): session closed for user root
Nov 16 02:10:47 pve kernel: sd 7:0:0:0: [sdc] tag#5 uas_eh_abort_handler 0 uas-tag 2 inflight: CMD
Nov 16 02:10:47 pve kernel: sd 7:0:0:0: [sdc] tag#5 CDB: Write(10) 2a 00 0c 81 02 27 00 00 08 00
Nov 16 02:11:00 pve kernel: sd 7:0:0:0: [sdc] tag#4 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD
Nov 16 02:11:00 pve kernel: sd 7:0:0:0: [sdc] tag#4 CDB: Synchronize Cache(10) 35 00 00 00 00 00 00 00 00 00
Nov 16 02:11:00 pve kernel: scsi host7: uas_eh_device_reset_handler start
Nov 16 02:11:00 pve kernel: usb 2-1.6: reset high-speed USB device number 8 using ehci-pci
Nov 16 02:11:00 pve kernel: usb 2-1.6: device firmware changed
Nov 16 02:11:00 pve kernel: scsi host7: uas_eh_device_reset_handler FAILED err -19
Nov 16 02:11:00 pve kernel: sd 7:0:0:0: Device offlined - not ready after error recovery
Nov 16 02:11:00 pve kernel: sd 7:0:0:0: Device offlined - not ready after error recovery
Nov 16 02:11:00 pve kernel: sd 7:0:0:0: [sdc] tag#4 FAILED Result: hostbyte=DID_TIME_OUT driverbyte=DRIVER_OK cmd_age=60s
Nov 16 02:11:00 pve kernel: sd 7:0:0:0: [sdc] tag#4 CDB: Synchronize Cache(10) 35 00 00 00 00 00 00 00 00 00
Nov 16 02:11:00 pve kernel: blk_update_request: I/O error, dev sdc, sector 231415655 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
Nov 16 02:11:00 pve kernel: sd 7:0:0:0: [sdc] tag#5 FAILED Result: hostbyte=DID_TIME_OUT driverbyte=DRIVER_OK cmd_age=44s
Nov 16 02:11:00 pve kernel: sd 7:0:0:0: [sdc] tag#5 CDB: Write(10) 2a 00 0c 81 02 27 00 00 08 00
Nov 16 02:11:00 pve kernel: blk_update_request: I/O error, dev sdc, sector 209781287 op 0x1:(WRITE) flags 0x103000 phys_seg 1 prio class 0
Nov 16 02:11:00 pve kernel: Buffer I/O error on dev sdc1, logical block 26214469, lost async page write
Nov 16 02:11:00 pve kernel: Aborting journal on device sdc1-8.
そして、syslogファイルのいくつかの出力は次のとおりです。
root@pve:~# cat /var/log/syslog | grep -iEe 'Nov 16 02:1'
Nov 16 02:11:00 pve kernel: [1065272.885143] scsi host7: uas_eh_device_reset_handler start
Nov 16 02:11:00 pve kernel: [1065272.969137] usb 2-1.6: reset high-speed USB device number 8 using ehci-pci
Nov 16 02:11:00 pve systemd[1]: Unmounting /mnt/SSD_240GB...
Nov 16 02:11:00 pve systemd[1]: mnt-SSD_240GB.mount: Succeeded.
Nov 16 02:11:00 pve systemd[1]: Unmounted /mnt/SSD_240GB.
Nov 16 02:11:00 pve pvestatd[942]: status update time (12.435 seconds)
Nov 16 02:11:00 pve kernel: [1065273.425229] sd 7:0:0:0: [sdc] Synchronize Cache(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
Nov 16 02:11:00 pve kernel: [1065273.505120] usb 2-1.6: new high-speed USB device number 9 using ehci-pci
Nov 16 02:11:00 pve kernel: [1065273.664305] usb 2-1.6: New USB device found, idVendor=174c, idProduct=55aa, bcdDevice= 1.00
Nov 16 02:11:00 pve kernel: [1065273.664314] usb 2-1.6: New USB device strings: Mfr=2, Product=3, SerialNumber=1
Nov 16 02:11:00 pve kernel: [1065273.664318] usb 2-1.6: Product: Best USB Device
Nov 16 02:11:00 pve kernel: [1065273.664320] usb 2-1.6: Manufacturer: ULT-Best
Nov 16 02:11:00 pve kernel: [1065273.664322] usb 2-1.6: SerialNumber: 042011210DC5
Nov 16 02:11:00 pve kernel: [1065273.664857] usb-storage 2-1.6:1.0: USB Mass Storage device detected
Nov 16 02:11:00 pve kernel: [1065273.665318] usb-storage 2-1.6:1.0: Quirks match for vid 174c pid 55aa: 400000
Nov 16 02:11:00 pve kernel: [1065273.665371] scsi host6: usb-storage 2-1.6:1.0
Nov 16 02:11:05 pve kernel: [1065278.371285] EXT4-fs error: 13 callbacks suppressed
Nov 16 02:11:05 pve kernel: [1065278.371295] EXT4-fs error (device sdc1): __ext4_find_entry:1663: inode #6553668: comm influxd: reading directory lblock 0
オペレーティングシステムとカーネルのバージョンは次のとおりです。
オペレーティングシステム: Debian GNU/Linux 11(bullseye)
カーネル: Linux 5.15.83-1-pve
答え1
問題はディスクではなくディスクケーブルアダプタにあります。
174Cコードは、これを問題のあるカーネルドライバであるASMediaとして識別します。
一部の人々は良い結果を得ました。無人航空システムの無効化そのデバイスの場合。残念ながら、他の人はアダプタを完全に交換する必要がありました。
問題ははるかに頻繁に発生するため、おそらく割り込み管理/タイミングの1つです。ラズベリーパイから。
rootで次のコマンドを実行した後に何が起こるのかを試すことができます。
echo "174c:55aa:u" | tee /sys/module/usb_storage/parameters/quirks
...しかし、dmesg出力を見ると、デバイスがだまされているようです。
Nov 16 02:11:00 pve kernel: [1065273.665318] usb-storage 2-1.6:1.0: Quirks match for vid 174c pid 55aa: 400000
他の人がコメントしました。ASMediaは時々基本的なハードウェアを変更します。、必要となるかもしれない連合国奇妙な。
驚くことではない
問題は、欠点が保存される場所にあります。これはmodprobeファイルまたはブートローダにあります。
私たちはこの珍しい現象が何を探しているのかを知っているので、ルートとして
grep -ri 174c:55aa /etc /boot
vid/pid ペアは関連するすべての場所で見つける必要があります。 modprobe.dファイル(おそらく/etc/modprobe.d/usbstoragequirks.conf
または)にある場合は、/etc/modprobe.d/usbstorage.conf
そのファイルを開き、奇妙な点をコメントアウトしてから再起動します(モジュールのアンロード/再ロードで十分ですが、まだ)。 grub構成の場合は、次のようになります。
GRUB_CMDLINE_LINUX="usb_storage.quirks=174c:55aa:u"
ただ編集して(安全のために前の行にコメントを追加して)、grubを再構築して再起動してください。以来、もしこのデバイスは別のハードウェアバージョンであり、その中にある奇妙な点は機能しませんが、通常のカーネルコードは機能するため、引き続き使用してください。数日間待機して正常に動作していることを確認し、さらに対処するためにドライブでキャッシュを無効にしてください。まず、2つの大きなファイルと複数の非常に小さなファイルを読み書きしてMD5ingしてみてください。これにより、隠れている可能性のあるほとんどのバグが削除されます。
答え2
編集:新しい答え
あなたが投稿したシステムログは、次の手がかりを提供することがあります。systemd
これを見てください回答問題が似ていることを確認してください。まず、USBディスクマウントはシステムによって処理されますか、それとも手動でマウントされますか?
また、ここに別のものがあります回答同様の質問については。
Linuxディストリビューションとバージョンについて詳しく知りたい場合があります。
古い回答は機能しません
外付けドライブが省電力モードになったようです。
これ記事USBデバイスの電源設定を制御する方法を示します。
別のオプションは、cronを使用して小さな "keepalive"スクリプトを実行することです。
0 1 * * * root /usr/bin/touch /mnt/SSD-240GB/.keepalivefile
システムcrontabに入れてcronを再起動します。ディスクがスリープ状態になっている場合は、間隔(現在は1日1回午前1時)とコマンドを調整できます。