Я не могу изменить жесткий диск SATA (работающий в UDMA) на режим PIO в Linux

752
NullPointer666

Я пытаюсь отключить 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, такие как SystemRescueCD, добавив параметр ядра libata.dma = 0 во время загрузки. Те же результаты, и это все еще показывает мне, что используется с UDMA6 ...

Я читал о libata.force, но не очень хорошо понимаю команду. Я попробовал следующие параметры во время загрузки SystemRescueCD, и система не распознала жесткий диск на этот раз LOL (поэтому я перезапустил снова после этого, оставив эту команду в стороне).

libata.dma=0 libata.force= 

Я смотрю на параметры BIOS, и я не нашел ни одного варианта DMA или аналогичного ...

Какие-либо предложения?

От записи

Это старый настольный компьютер (13 лет x64 AMD), и у меня нет другого компьютера для восстановления (мой другой компьютер - ноутбук, и я не могу подключить диск напрямую к материнской плате без каких-либо проблем). .)

0
1. Вы [обычно?] Не отключаете это на диске. Вы изменяете его на контроллере, который затем передает древний режим PIO на диск. Если ваш старый рабочий стол говорит только на классической IDE, он будет использоваться автоматически, но как на контроллере (на рабочем столе), так и на диске. 2. Почему вы хотите это сделать? Я прочитал предложение, в котором говорилось «для восстановления некоторых поврежденных секторов», но почему бы не сделать это в обычном режиме AHCI? Hennes 5 лет назад 0
Какие у вас есть признаки того, что вам нужен режим PIO? Насколько я знаю ddrescue ** должен работать в любом из них. cybernard 5 лет назад 0
Да, ddrescue отлично работает в режиме DMA. На самом деле я сделал много успешных изображений на нескольких HDD, используя его. Дело в том, что в экспертизе образов жестких дисков есть несколько случаев, когда вы сталкиваетесь с неисправными дисками совершенно по-разному, чтобы получить больше шансов улучшить ваши шансы на чтение плохих блоков. NullPointer666 5 лет назад 0
Это один из таких случаев ... Я восстановил 86% диска, но застрял в области, где каждый раз, когда я обнаруживал неисправный блок, диск отключался с ошибкой ввода-вывода и ddrescue помечал все сектора как ненужные. Я запускаю разные опции (вперед, назад, без кеша, прыжки блоков ...) и могу подтвердить это: каждый раз, когда я обнаруживал плохой блок, мой HDD отключается. Я знаю, что многие эксперты по Foresincs переходят в режим PIO, потому что вы получаете лучшее чтение в некоторых случаях, когда ваш жесткий диск дает сбой (например, ошибки ввода-вывода). Я никогда не пытался установить PIO, потому что у меня никогда не было проблем с созданием образа, но каждый диск - это мир NullPointer666 5 лет назад 0
Кроме того, спасибо вам обоим за ваше время. @Hennes Это старый, но не такой старый хе-хе. Материнская плата действительно хорошая и поставляется с шестью разъемами SATA. В BIOS он показывает мне Первичный основной IDE, Вторичный IDE и 6 опций SATA. Жесткий диск распознается как диск SATA5. В пункте меню SATA5 я вижу опцию «Расширенная IDE» (авто), и если я ее отключаю, диск все равно отображается в общем меню BIOS, но его атрибуты исчезают внутри этого меню (размер, цилиндры ...). Внутри первичных и вторичных записей IDE я отключил опцию UDMA (она не отображается в записях SATA). NullPointer666 5 лет назад 0
Просто из любопытства: почему в режиме PIO лучше читается? Если встроенный контроллер HD не может прочитать блок, на самом деле не имеет значения, какой метод он использует для передачи данных на хост. Режим PIO помог бы, если EC поврежден, и если плохие передачи через DMA происходят, но это очень редкий режим отказа. dirkt 5 лет назад 0

1 ответ на вопрос

0
LawrenceC

Не уверен, как режим PIO / DMA влияет на то, как диск будет читать плохие сектора.

Но попробуй это.

  • Отключить AHCI в BIOS.

  • Какая версия ядра на вашем живом CD? Попробуйте использовать что-то как можно более свежее, например, live CD Debian (должно быть ddrescueи hdparmна нем - если нет, можете apt-get installих использовать). Некоторые hdparmфункции могут быть странными, если ядро ​​Linux слишком старое.

  • Загрузочная система с открытым корпусом и отсоединенным кабелем питания. Дождитесь загрузки живого CD, затем аккуратно подключите кабель питания. Это безопасно для дисков SATA, если вы не касаетесь печатной платы привода (держите ее только за края и устанавливаете на нестатической приподнятой поверхности, например на верхней части компьютера) и не подвержены статическому электричеству (прикасайтесь к металлической части корпуса перед тем, как приступить к работе с диском ). Это позволит обойти любые команды безопасности ATA, которые BIOS может отправлять при загрузке и создавать помехи. Попробуйте сделать то, что отвечает принятый ответ на этот вопрос, если диск не виден после подключения.

РЕДАКТИРОВАТЬ: В соответствии с этим диски SATA могут не поддерживать режим PIO (PIO был EIDE до появления SATA). Однако я думаю, что если вы отключите AHCI в BIOS, контроллер по сути эмулирует EIDE, поэтому он все еще может работать.

Как я уже говорил в комментариях выше, на ваших дисках есть некоторые ошибки чтения или ввода-вывода, которые вы можете повысить, отключив DMA в контроллере, точно так же, как вы сможете лучше справляться с ошибками жесткого диска USB, если подключите внешний диск напрямую к ваш SATA разъем вашей материнской платы. Это медленнее, но может пролить свет ... Мне никогда не нужно делать какие-то альтернативные методы, подобные этому ... до сих пор. Кстати, у меня нет возможности отключить AHCI в BIOS, я могу выбрать ACHI только в опции контроллера JMicron Raid (которая является автоматической), но я полагаю, что это связано с Raid, и я не использую RAID на этом компьютере. NullPointer666 5 лет назад 0
Возможно, вам придется указать ddrescue запускаться после сектора (запись в другой файл, а затем рекомбинировать их позже), что приводит к ошибке диска. Если все сектора после этого приводят к тому, что привод сообщает об ошибке, происходит что-то странное ... LawrenceC 5 лет назад 0
Существует большая разница между подключением жестких дисков USB напрямую к SATA (это устраняет мост SATA-USB), который может помешать, особенно если это дешевый китайский мост с ошибками в прошивке), и переключением из режима DMA в режим PIO. (который помогает только от жесткого диска поврежден). dirkt 5 лет назад 0
Я перезагрузил систему, чтобы мой диск снова был правильно распознан, и я атаковал проблему в другом направлении, перетаскивая первый плохой блок и помечая конец домена как непробированный (потому что я думал, что это странно, и, вероятно, последний блок не был плохой блок. Я был прав. Я восстановил все окружающие области, но этот первый плохой блок вызывает отключение диска. Все прошло хорошо, но потом я нашел другой плохой блок и сделал то же самое (помеченный как не удаленный из остальной части домена и, как badblock последний блок домена). Я знаю, что, вероятно, это только, что первый блок блокировать badblock NullPointer666 5 лет назад 0
Но случается так, что каждый раз, когда сбойный жесткий диск не распознается (ошибка ввода-вывода), и ddrescue останавливается по-своему, помечая остальное как не выбранное ... и, очевидно, мне нужно перезагрузить компьютер ... Кстати, я запустил эту функцию восстановления образа, потому что смарт сказал мне, что у меня есть 1 перераспределенный сектор, и когда-нибудь диск выйдет из строя ... Я мог бы попытаться снова продолжить восстановление образа в оставшиеся 3 ГБ, я хотел попробовать PIO вещь и другие подходы к обучению вещи. Во всяком случае, вероятно, моя таблица разделов не повреждена в изображении, и у меня почти идеальное изображение .... NullPointer666 5 лет назад 0
@LawrenceC Правильно, аналогия не была лучшей. Но я читал и слышал, что многие судебные эксперты говорят, что вы можете улучшить шансы на чтение в бадблоках с помощью режима PIO или даже с помощью другого интерфейса, такого как UDMA3 вместо UDMA6, вы можете улучшить ситуацию. NullPointer666 5 лет назад 0
@LawrenceC Что касается вашего обновленного ответа, это была одна из тех мыслей, что SATA не поддерживает PIO. Я читал о PIO в криминалистике, но я никогда не читал ничего, указывающего, был ли это сценарий диска SATA или IDE ..., который объясняет, почему диск продолжает использовать UDMA ... Я собираюсь снова посмотреть настройки BIOS, я ищу вариант AHCI. NullPointer666 5 лет назад 0

Похожие вопросы