며칠 동안 systemctl suspend
컴퓨터(S3/RAM을 일시 중지)할 때마다 하드 드라이브 중 하나가 사라졌습니다. 여전히 존재하지만 /dev/sdb
더 /dev/sda
이상 존재하지 않습니다. 사라지는 것은 항상 같은 하드 드라이브입니다. SMART 장기 테스트에서는 하드 드라이브가 완전히 정상인 것으로 나타났습니다. 단, 깨어날 때마다 사라집니다. 절전 모드를 해제하는 동안 다음과 유사한 메시지가 나타납니다(sdb/sd 2의 메시지 참고)./dev/sdc
/dev/sdf
[191432.762381] ata5: found unknown device (class 0)
[191432.762411] ata6: found unknown device (class 0)
[191433.228546] ata3: SATA link down (SStatus 0 SControl 300)
[191437.422376] ata6: softreset failed (device not ready)
[191437.422391] ata5: softreset failed (device not ready)
[191438.290401] ata4: found unknown device (class 0)
[191438.450381] ata4: softreset failed (device not ready)
[191438.450414] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[191438.454123] ata1.00: configured for UDMA/133
[191438.608510] ata3: SATA link down (SStatus 0 SControl 300)
[191438.608521] ata3.00: disable device
[191438.608540] sd 2:0:0:0: rejecting I/O to offline device
[191438.608547] ata3.00: detaching (SCSI 2:0:0:0)
[191438.608554] sd 2:0:0:0: [sdb] Start/Stop Unit failed: Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[191438.608558] sd 2:0:0:0: PM: dpm_run_callback(): scsi_bus_resume+0x0/0x80 returns -5
[191438.608567] sd 2:0:0:0: PM: failed to resume async: error -5
[191438.630402] sd 2:0:0:0: [sdb] Synchronizing SCSI cache
[191438.630423] sd 2:0:0:0: [sdb] Synchronize Cache(10) failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[191438.630424] sd 2:0:0:0: [sdb] Stopping disk
[191438.630428] sd 2:0:0:0: [sdb] Start/Stop Unit failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[191442.774382] ata6: found unknown device (class 0)
[191442.774417] ata5: found unknown device (class 0)
[191443.174399] ata6: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[191443.266633] ata6.00: configured for UDMA/133
[191443.294401] ata5: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[191443.387415] ata5.00: configured for UDMA/133
[191443.802389] ata4: found unknown device (class 0)
[191445.942401] ata4: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[191446.128870] ata4.00: configured for UDMA/133
복구되었음을 표시하기 위해 다른 디스크의 행을 포함했지만 "sd 2"/"sdb"는 포함하지 않았습니다.
이는 최근 Linux 커널 업그레이드에서 발생한 것일 수 있지만 이를 확인하기 위해 쉽게 다운그레이드할 수는 없습니다. 자주 재부팅할 수 없는 프로덕션 머신입니다(디스크 없이 작업할 수도 있고, 필요할 때 USB를 통해 연결할 수도 있습니다).
디스크를 수동으로 재설정하거나 커널에 깨우기/재개 시 해당 작업을 수행하도록 지시하거나 확인해야 할 다른 오류 메시지가 있는 경우 이 문제를 어떻게 해결할 수 있습니까?
편집: 전원과 SATA 케이블을 바꿨지만 도움이 되지 않았습니다.
편집 2:
# foreach d ( /sys/class/scsi_host/host*/scan )
foreach? echo "- - -" > $d
foreach? echo was $d
foreach? sleep 2
foreach? lsblk
foreach? echo =========
foreach? end
...도움이 되지 않았고 /dev/sdb
슬프게도 여전히 사라졌습니다.
답변1
해결 방법은 문제의 하드 드라이브 제조업체(Toshiba)에 문의하는 것입니다. 그들은 부팅/부팅 요청에 더 잘 반응하는 수정된 펌웨어를 보냈습니다. 새 펌웨어는 "I'm Ready" 신호를 더 일찍(전원을 켠 후 약 1초) 보냅니다. 이는 BIOS나 Linux 커널이 기대하는 것 같습니다. BIOS/마더보드 또는 OS가 원인이고 시간 제한이 너무 작은지 잘 파악하지 못했습니다.
아마도 이것이 표준 가정용 컴퓨터의 기업용 하드 드라이브에 관한 것이라고 덧붙여야 할 것 같습니다. 디스크가 빠른 부팅용으로 설계되지 않았을 수도 있습니다(서버 세계에는 존재하지 않습니다).