%20%D0%B2%20%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%20PIO%20%D0%B2%20Linux.png)
Я пытаюсь отключить DMA на моем жестком диске SATA 3,5", чтобы он работал в режиме PIO, поскольку для восстановления некоторых поврежденных секторов с неисправного диска с помощью GNU ddrescue
Я использую PartedMagic Linux live CD и попытался изменить его с помощью hdparm. Диск использует UDMA6, поэтому я запускаю:
hdparm -p4 /dev/sda
Он показал мне следующую ошибку (я пробовал в нескольких режимах, не только PIO4):
Attempting to set PIO mode to 0
HDIO_SET_PIO_MODE failed: Inappropriate ioctl for device
Также я пробовал другие системы Linux Live, такие как SystemRescueCD, добавляя параметр ядраlibata.dma=0во время загрузки. Тот же результат, и он все еще показывает мне, что используется с UDMA6...
Я читал о libata.force, но не очень хорошо понимаю эту команду. Я попробовал следующие параметры во время загрузки SystemRescueCD, и на этот раз система не распознала жесткий диск LOL (поэтому я снова перезагрузил систему после этого, но оставляю эту команду в стороне).
libata.dma=0 libata.force=
Я посмотрел на параметры BIOS и не нашел ни одного параметра DMA или чего-то подобного...
Какие-либо предложения?
Не для протокола:
Это старый настольный компьютер (13-летний x64 AMD), и у меня нет другого компьютера, чтобы выполнить восстановление (мой второй компьютер — ноутбук, и я не могу подключить диск напрямую к материнской плате, не натворив кучу дел...)
решение1
Не уверен, как режим PIO/DMA влияет на то, как диск будет считывать поврежденные сектора.
Но попробуйте вот это.
Отключите AHCI в BIOS.
Какая версия ядра на вашем live CD? Попробуйте использовать что-то как можно более новое, например, Debian live CD (на нем должны быть
ddrescue
иhdparm
- если нет, вы можетеapt-get install
их использовать.) Некоторыеhdparm
функции могут работать странно, если ядро Linux слишком старое.Загрузите систему с открытым корпусом и неподключенным кабелем питания привода. Подождите, пока загрузится Live CD, затем осторожно подключите кабель питания. Это безопасно для приводов SATA, если вы не касаетесь платы привода (беритесь только за края и устанавливайте на нестатическую возвышенную поверхность, например, на верхнюю часть компьютера) и не подвержены статическому электричеству (дотроньтесь до металлической части корпуса перед тем, как брать привод). Это позволит обойти любые команды безопасности ATA, которые BIOS может отправлять при загрузке и мешать работе. Попробуйте сделать то, что принято в качестве ответа наэтот вопросговорит, если диск не виден после подключения.
EDIT: СогласноэтотДиски SATA могут не поддерживать режим PIO (PIO был EIDE до появления SATA). Однако я думаю, что если вы отключите AHCI в BIOS, контроллер по сути эмулирует EIDE, так что он все равно может работать.