내 하드 드라이브가 블록 장치로 표시되지 않는 이유는 무엇입니까?

내 하드 드라이브가 블록 장치로 표시되지 않는 이유는 무엇입니까?

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 시스템에서 계속 작동하는 경우 데비안 시스템의 하드웨어는 HDD가 제대로 작동할 만큼 충분한 전력을 공급하지 못할 수도 있습니다.

출력의 오류 메시지 dmesg는 블록 수준 오류입니다. 파일 시스템 유형 선택은 해당 수준에서 차이를 만들어서는 안 됩니다(이론적으로 드라이브가 다른 파일 시스템 유형보다 더 많은 읽기/쓰기 헤드 이동을 수행하도록 요구하는 파일 시스템 유형이 없는 한). , 이로 인해 디스크가 더 많은 전력을 소비하게 되지만 이로 인해 HDD에서 파일 시스템 유형의 성능이 저하되기도 합니다.

데비안 시스템과 드라이브 사이에 자체 전원 공급 장치가 있는 USB 허브를 도입해 볼 수 있습니다. 이렇게 하면 드라이브가 데비안 시스템 자체에서 제공하는 전력에 의존하기보다는 허브의 전원 공급 장치에서 더 많은 전력을 끌어올 수 있습니다.

드라이브가 두 시스템 모두에서 작동했지만 현재는 두 시스템 모두에서 작동하지 않는 경우, 외장 드라이브가 닳았거나 물리적인 손상을 입은 것일 수 있습니다. 예를 들어 외장 HDD는 가방을 떨어뜨리면 쉽게 손상됩니다. , 또는 외장 HDD 단단한 물체에 부딪혔습니다.

이전에는 드라이브가 데비안 시스템에서 거의 충분한 전력을 얻지 못했고 시간이 지남에 따라 베어링의 기계적 마모로 인해 드라이브에 약간 더 많은 전력이 필요하게 되었을 수도 있습니다... 하지만 데비안 시스템은 더 이상 아무것도 공급할 수 없었습니다.

관련 정보