Linux에서 SATA 하드 디스크(UDMA에서 작동)를 PIO 모드로 변경할 수 없습니다.

Linux에서 SATA 하드 디스크(UDMA에서 작동)를 PIO 모드로 변경할 수 없습니다.

GNU ddrescue를 사용하여 실패한 디스크에서 일부 불량 섹터를 복구하기 위해 SATA 3.5" 하드 디스크 드라이브에서 DMA를 비활성화하여 PIO 모드에서 작동하려고 합니다.

PartedMagic Linux 라이브 CD를 사용하고 있는데 hdparm으로 수정해 보았습니다. 디스크가 UDMA6을 사용하고 있으므로 다음을 실행합니다.

hdparm -p4 /dev/sda  

다음과 같은 오류가 표시되었습니다(PIO4뿐만 아니라 여러 모드로 시도했습니다).

Attempting to set PIO mode to 0
HDIO_SET_PIO_MODE failed: Inappropriate ioctl for device

또한 커널 매개변수를 추가하여 SystemRescueCD와 같은 다른 Linux 라이브 시스템을 사용해 보았습니다.libata.dma=0부팅 시. 동일한 결과를 얻었지만 여전히 UDMA6을 사용하고 있는 것으로 표시됩니다...

libata.force에 대해 읽었지만 명령을 잘 이해하지 못합니다. SystemRescueCD 부팅 시 다음 매개변수를 시도했는데 이번에는 시스템이 HDD를 인식하지 못했습니다. ㅋㅋㅋ(그래서 이 명령은 따로 남겨두고 다시 시작한 후 다시 시작했습니다.)

libata.dma=0 libata.force=

BIOS 옵션을 살펴보았는데 DMA 옵션이나 이와 유사한 옵션을 찾지 못했습니다...

어떤 제안이 있으십니까?

공표를 목적으로하지 않는:

오래된 데스크톱 컴퓨터(13년 된 x64 AMD)이고 복구를 수행할 다른 컴퓨터가 없습니다.(다른 컴퓨터는 랩톱이고 디스크를 마더보드에 직접 연결할 수 없습니다. .)

답변1

PIO/DMA 모드가 드라이브가 불량 섹터를 읽는 방식에 어떤 영향을 미치는지 잘 모르겠습니다.

하지만 이것을 시도해 보세요.

  • BIOS에서 AHCI를 비활성화합니다.

  • 라이브 CD의 커널 버전은 무엇입니까? Debian 라이브 CD와 같이 가능한 한 최신 것을 사용해 보십시오(있어야 하며 ddrescue그렇지 hdparm않은 경우 사용할 수 있습니다 apt-get install.). hdparmLinux 커널이 너무 오래된 경우 일부 기능이 이상할 수 있습니다.

  • 케이스가 열려 있고 드라이브 전원 케이블이 연결되지 않은 상태로 시스템을 부팅합니다. 라이브 CD가 부팅될 때까지 기다린 다음 전원 케이블을 조심스럽게 연결합니다. 이는 드라이브 회로 기판을 만지지 않고(가장자리만 잡고 컴퓨터 상단과 같이 정전기가 발생하지 않는 높은 표면에 설정) 정전기가 없는 경우(드라이브를 다루기 전에 케이스의 금속 부분을 만지는 경우) SATA 드라이브에 안전합니다. ). 이렇게 하면 BIOS가 부팅 시 전송하고 방해할 수 있는 ATA 보안 명령을 우회합니다. 허용되는 답변을 시도해보십시오.이 질문연결 후 드라이브가 표시되지 않으면 메시지가 표시됩니다.

편집 : 에 따르면이것SATA 드라이브는 PIO 모드를 지원하지 않을 수 있습니다. PIO는 SATA가 통과되기 전의 EIDE였습니다. 그러나 BIOS에서 AHCI를 비활성화하면 컨트롤러가 기본적으로 EIDE를 에뮬레이션하므로 계속 작동할 수 있습니다.

관련 정보