ハードドライブがブロックデバイスとして表示されないのはなぜですか?

ハードドライブがブロックデバイスとして表示されないのはなぜですか?

fdisk私の外付けハードドライブは、Arch Linuxを実行している他のコンピュータに表示されますが、Debian 11ではデバイスはまたはには表示されませんlsblk

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0 119.4G  0 disk 
├─mmcblk0p1 179:1    0   256M  0 part /boot
└─mmcblk0p2 179:2    0 119.1G  0 part /

$ sudo fdisk -l
### /dev/ram* output has been removed.
Disk /dev/mmcblk0: 119.38 GiB, 128177930240 bytes, 250347520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8e94f125

Device         Boot  Start       End   Sectors   Size Id Type
/dev/mmcblk0p1        8192    532479    524288   256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      532480 250347519 249815040 119.1G 83 Linux

USBハブは次の場所に表示されますlsbusb

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

最後に、dmesgI/O エラーが発生します。

$ dmesg | tail
[  358.698270] sd 0:0:0:0: [sda] tag#2 CDB: opcode=0x28 28 00 0d 06 37 90 00 00 01 00
[  358.698274] blk_update_request: I/O error, dev sda, sector 218511248 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[  358.698328] sd 0:0:0:0: [sda] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK cmd_age=5s
[  358.698337] sd 0:0:0:0: [sda] tag#0 CDB: opcode=0x28 28 00 0d 06 37 91 00 00 1d 00
[  358.698342] blk_update_request: I/O error, dev sda, sector 218511249 op 0x0:(READ) flags 0x80700 phys_seg 29 prio class 0
[  358.698376] blk_update_request: I/O error, dev sda, sector 218511250 op 0x0:(READ) flags 0x80000 phys_seg 28 prio class 0
[  358.698432] blk_update_request: I/O error, dev sda, sector 218511248 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  358.721185] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[  358.960749] sd 0:0:0:0: [sda] Synchronize Cache(10) failed: Result: hostbyte=0x07 driverbyte=DRIVER_OK
[  358.961333] xhci_hcd 0000:01:00.0: WARN Can't disable streams for endpoint 0x81, streams are being disabled already

btrfsに切り替えましたが、うまくいきましたが、もう発生しませんでした。また:

  • DebianとArch Linuxシステムの両方でSATA-USBアダプタを使用してください。
  • どちらのドライブも500GBドライブです(過去にはアダプターを使用してもうまく機能しました)。

私のドライブを表示する方法についての助けや提案があればありがとう!

ベストアンサー1

ドライブが同じSATA-USBアダプタを使用してArchシステムで動作し続けると、DebianシステムのハードウェアはHDDが正常に動作するのに十分な電力を供給できない可能性があります。

出力のエラーメッセージdmesgはブロックレベルのエラーです。ファイルシステムタイプの選択はそのレベルで違いを生じてはいけません(理論的には、ドライブが他のファイルシステムタイプよりも多くの読み取り/書き込みヘッドの移動を実行する必要があるファイルシステムタイプがない限り)。 、これによりディスクはより多くの電力を消費しますが、これはHDDのファイルシステムタイプのパフォーマンスを低下させる可能性があります。

Debian システムとドライブの間に独自の電源装置を備えた USB ハブを導入することができます。これにより、ドライブがDebianシステム自体が提供する電力に依存するのではなく、ハブの電源装置からより多くの電力を引き出すことができます。

ドライブが両方のシステムで動作しているが、現在は両方のシステムで動作していない場合は、外付けドライブが磨耗しているか、物理的な損傷を受けている可能性があります。たとえば、外付けHDDはバッグを落とすと簡単に損傷します。 、または外付けHDDは固体物体にぶつかった。

以前は、ドライブがDebianシステムでほとんど十分な電力を得ておらず、時間が経つにつれて軸受の機械的摩耗によってドライブに少し多くの電力が必要になった可能性があります...しかし、Debianシステムはもはや何も供給できませんでした。 。

おすすめ記事