Воскрешение 8-дюймового жесткого диска из 80-х

Устройства для хранения информации, пожалуй, одни из самых сложных в плане восстановления. Особенно если речь идёт о сильно устаревших жёстких дисках, таких как CDC Finch. Этот компактный 8-дюймовый жёсткий диск вытеснил 14-дюймовые модели благодаря более удобному форм‑фактору. Диск Finch вышел в 1980-х годах много эксплуатировался перед «выходом на пенсию», поэтому неудивительно, что он оказался на ремонтном стенде у товарища [Usagi Electric].

В своём ютуб-канале он интересно рассказывал о процессе восстановлениия, и мы решили поделиться этой историй с вами.

8706aa9efa2dda15ceeb0bcc1edec87f.jpeg

Жёсткий диск CDC Model 9410 Finch, представленный в начале 1980-х, отличался от своих 14-дюймовых предшественников тем, что представлял собой герметичный блок с фильтрацией воздуха и благодаря этому не требовал обслуживания. В 14-дюймовых моделях не особо заморачивались насчёт защиты от пыли, поэтому Finch гораздо лучше показывал себя в работе. Ну и, конечно, такие диски куда веселее ремонтировать.

Здесь будем разбирать два диска Finch с разными поломками. У обоих, похоже, есть проблема с платой контроллера: один не отвечает на обращения через интерфейс, а другой имеет короткое замыкание на пинах. Первый диск был возвращён к жизни путём замены дохлой микросхемы линейного драйвера SN75 110, а также скоропостижно скончавшегося стабилизатора напряжения 7818, который выдавал жалкие 0,3 В.

Спойлер: К сожалению, после получаса безотказной работы в процессе сброса данных диск выдал сообщение «Not Ready», что указывает на наличие дополнительных проблем на плате контроллера, которые необходимо исправить. Хорошая новость: платы кажутся довольно надёжными, но на старых дисках они имеют тенденцию портиться со временем.

Жесткий диск CDC Finch емкостью от 8 до 32 МБ для всех ваших потребностей в хранении данных.  (Кредит: Использование электричества)

Жесткий диск CDC Finch емкостью от 8 до 32 МБ

Как проводился ремонт

То, что оба диска сломаны по-разному, очень хорошо для нас. Это означает, что их можно использовать для перекрёстных референций, поскольку, за исключением количества дисков, они практически идентичны. Привод на 32 мегабайта запускается, проходит самопроверку и затем останавливается на нулевой дорожке в ожидании команд от контроллерной карты и готов отправлять данные, но контроллерная карта фактически не видит привод. А второй привод вообще не включается из-за короткого замыкания на 5-вольтовой шине. 

Скорее всего проблема заключается в неисправной микросхеме линейного драйвера. Снимки с помощью осциллографа, показывают, что дифференциальный сигнал вовсе не является дифференциальным. То есть пины, которые должны быть противоположными, на самом деле находятся в одной фазе, поэтому фактический сигнал, который Finch получает от Centurion, неправильный. Он считает, что привод не существует.

Итак, первым шагом заменим SN 75 110, а затем проведём дополнительное тестирование на Centurion, чтобы проверить его работоспособность. Берём паяльник и будем менять микросхему на новую.

У нас есть диагностическая карта с вспомогательными тестовыми меню, на которой проводился тест обнаружения, но никогда не проходил тест чтения. Так что запустим тест обнаружения, а затем тест чтения. Хорошо, если бы всё сразу заработало, но с дисками CDC никогда не бывает просто. Что ж, попробуем. После этого можно будет проверить, работают ли приводы, а затем приступить к работе.

Привод запускается и проходит самопроверку… Вроде бы всё хорошо, так что запустим тест поиска по дорожкам. Головки плавно перемещаются. Теперь нажмём Ctrl+C, это должно вернуть нас на нулевую дорожку и тест будет пройдён. Итак, всё хорошо, мы вернулись туда, где были раньше.

Теперь можно перейти к более сложным тестам, которые предлагают больше возможностей контроля. Там мы обнаружили много интересного. В отличие от других дисков, у Finch самая дальняя дорожка — нулевая. Когда вы делаете возврат на нулевую дорожку (RTZ), он всегда идёт на внутреннюю дорожку и когда вы явно указываете перейти на нулевую дорожку, он также идёт на внутреннюю дорожку. Это немного странно, но не имеет особого значения. Главное, что у нас есть нулевая дорожка. Однако с неё мы не получаем никаких данных, поэтому тест всегда завершается неудачно.

Интересно, что когда тест завершается неудачно, все сигналы остаются активными, так что привод продолжает действовать, как будто был выбран и пытается передавать данные. Поэтому мы можем проверить несколько сигналов в этом состоянии. Во‑первых, мы можем проверить индексный сигнал, который является одним из самых важных. Он может поступать с кабеля и находится на пине 20. У нас есть индексный сигнал, который работает с частотой 60 Гц, и это хорошо. Далее мы хотим убедиться, что сигнал «drive ready» низкий, и это будет пин 22, который действительно имеет низкий уровень сигнала. Теперь мы можем проверить сигнал сервопривода. Это дифференциальный сигнал, поэтому с помощью осциллографа его проверить сложно, но мы должны увидеть что‑то на пинах 15 и 16.

Мы видим слабый сигнал амплитудой около 1 вольт, а поскольку это дифференциальный сигнал, амплитуда становится 2 вольта, это правильно. Итак, привод готов к работе, у нас есть хороший сигнал сервопривода, но у нас нет данных. Мы можем проверить это на пинах 18 и 19. Снова дифференциальный сигнал, но если мы проверим его, у нас не будет никаких данных на выходе. Сначала казалось, что это проблема «Finch», но, разбирающиеся в теме люди посоветовали проверить ещё один сигнал — разрешение чтения (read enable). FFC (Floppy Formatter Controller) будет видеть сигнал индекса, видеть тактовый сигнал сервопривода и скажет «эй, Finch, включи разрешение чтения, чтобы я мог начать получать данные». Если разрешение чтения не активируется, Finch не будет выводить данные, так как будет считать, что данные направлены на ввод.

Так вот, разрешение чтения — это 4-й пин на командном кабеле. И если мы посмотрим, то сигнал на этом выводе всегда высокий, Beat Enable никогда не активируется, а состояние разрешения чтения должно быть низким, чтобы данные начали поступать на выход. Таким образом, мы столкнулись с интересной ситуацией, сам Finch, вероятно, в полном порядке, а проблема может быть с FFC.

Следующим шагом будет отключение всего этого хозяйства, чтобы вытащить FFC, поместить его на карту-экстендер, поддержать его каким-то образом и начать исследовать. Как же не хочется это делать…

И тут masaka на дискорде предложила гениальную идею: почему бы просто не использовать один из других портов Finch? У FFC четыре порта, он поддерживает одно дискетное устройство и до трёх приводов Finch. Если Finch абсолютно исправен, а у нас есть проблема с приёмной микросхемой на FFC, другой порт может быть в полном порядке. Когда в дело пошёл порт номер три, оба привода заработали. Теперь можно запустить тест чтения и посмотреть, что произойдёт.

Нажимаем «R» для теста чтения, выбираем нулевой диск, низкую дорожку и высокую дорожку, а затем нажимаем ввод. Слышно, как привод ищет нужную дорожку, и… тест поиска благополучно пройден!

Остаётся только одно — войти в ОС и посмотреть, что она думает о приводе. Вводим «H1» в командную строку для загрузки ОС, мы должны увидеть значение «Max disk» отличное от 1. Увы, не вышло. Скорее всего нужно добавить ещё два привода Finch. Перейдём к утилите системной настройки (sysgen). Название нашей конфигурации — OSN, номер диска — 1. Входим в настройку дисковых накопителей, там уже добавлена настройка для диска и одного привода Finch, затем добавим два привода Finch. Теперь у нас есть диски 0, 1, 2, 3, 4 и 5, и этого должно быть достаточно, чтобы ОС увидела их. Выйдем из программы, нажав ctrl+B и «end program». Хорошо, теперь снова перезагружаемся, нажимаем кнопку «load opposite», вводим «H1». Теперь должно появиться число, отличное от 1. О, мы попали в ОС! CRT 0. Попробуем ввести «DOT sta» и «foreign». OMG, работает!

Вот так, оказывается, диск, который столько лет считался сломанным, просто имел проблему с FFC‑контроллером! На нём столько файлов, столько информации… Нужно их как‑то сохранить. Для начала решено было сделать резервное копирование файлов из папки «zoa». Где‑то на странице 3, в разгар резервного копирования, что‑то пошло не так. Появилась ошибка «NR Disk5».

Вряд ли повреждены головки. Если взять осциллограф, то мы увидим чистый индикаторный сигнал и чистые сигналы тактовой частоты, выходящие из кабеля данных. Однако этот индикаторный сигнал никогда не достигает кабеля управления, где FFC будет его считывать. Дело в том, что сигнал готовности диска никогда не становится низким. Видимо какая‑то IС на плате Finch вышла из строя, и диск так и не готов к работе. Получается, что наш Finch Drive снова сломан.

Итак, мы знаем, что на диске есть хорошие данные, мы знаем, что есть некоторый исходный код, который нам точно нужно сохранить, остальное особо не важно, но было бы неплохо иметь резервную копию.

В любом случае, нам нужно восстановить работу этого диска ещё раз.

Автор видео планирует постепенно проанализировать ситуацию и в будущем пытаться провести реверс инжиниринг, чтобы выяснить, почему диск так и не работает. В планах вернуть полную работоспособность — не на 30 минут, а стабильно.

Список использованных источников:

  1. https://hackaday.com/2023/08/08/reviving-an-8-inch-hard-drive-from-the-1980s/

  2. https://youtu.be/hbc6n3Ln3bM

© Habrahabr.ru