- PVSM.RU - https://www.pvsm.ru -

Восстановление погибших дискет с осциллографом

Восстановление погибших дискет с осциллографом - 1
Greaseweazle F7 Plus

Есть много хороших современных решений для чтения данных со старых дискет и жёстких дисков. Пожалуй, одно из лучших — Greaseweazle [1]: очень функциональная система с открытым железом, исходным кодом, недорогая. На форумах вам с радостью помогут дружелюбные фанаты. Плата подключается напрямую к дисководу, заменяя собой флоппи-контроллер — и считывает данные в малейших деталях. Работает на дискетах с любой защитой от чтения.

Но что делать, если Greaseweazle не может прочитать биты на магнитной поверхности — и сообщает о повреждённых данных? Что, если на дискете материал исторической важности, исходный код в единственном экземпляре или культовая игра? Неужели всё потеряно?

Совсем нет. Известный хакер Крис Эванс с инженером Филом Пембертоном протестировали новый способ [2] восстановления данных с флоппи-дискет, используя осциллограф. В частности, они вернули к жизни игру «Ферма старого Макдональда» для BBC Micro.

В 1980-е годы руководства пользователя и руководства для обслуживания для компьютерных накопителей были гораздо информативнее, чем сейчас. Например, вот страничка из технического мануала для TEC FB-50x [3]:

Восстановление погибших дискет с осциллографом - 2 [4]

На страничке приводится пошаговая цепочка электронных преобразований от магнитной считывающей головки до считываемых данных. Как видим, биты 0 и 1 — это попытка угадать верное решение по совершенно хаотическим аналоговым всплескам напряжения на головке.

Концептуально алгоритм считывания довольно простой. Однако инженеры прошлого всё же придумали несколько схем кодирования (и раскодирования) сигнала: MFM [5] (использовались в PC, Amiga, BBC Micro ADFS) и GCR [6] (использовались в Apple II и Commodore 64). Дискеты BBC Micro DFS работали по самой простой схеме FM [7]. В ней дисковод вообще не отягощал себя какой-то схемой кодирования, а просто выдавал импульсы по счётчику (таймеру).

Данные:  0 0 1 0 1 1 0 1 0 0 0 1 1 0
Код:    1010111011111011101010111110
Таймер: 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Восстановление исходного кода

Крис Эвансом с Филом Пембертоном смогли восстановить исходный код культовой игры Repton 3 [8], игру «Ферма старого Макдональда» (Old Macdonald's Farm) а также ещё несколько ценных файлов для компьютера BBC Micro.

Они получили дискеты от нескольких хранителей исторических ценностей, но все они были повреждены временем. Greaseweazle выдавал ошибки CRC:

Восстановление погибших дискет с осциллографом - 3
Скрин из эмулятора HxC Floppy Drive Emulator

Чёрные горизонтальные полосы — это тайминги между импульсами с дискеты. Чем они тоньше, тем более чёткий сигнал. Здесь видим, что качество отличное, то есть дегенерация дискеты ещё не дошла до такой стадии, когда всё сливается в кашу. Тут просто проблема с единственным участком. Что там может быть?

Восстановление погибших дискет с осциллографом - 4
А вот и проблема

Визуальная инспекция показала, что кто-то неудачно помял дискету.

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

Восстановление погибших дискет с осциллографом - 5

Ничего не оставалось, как применить научное оборудование, которое Крис Эванс использует в своих цифровых расследованиях. На фотографии — любительский осциллограф Siglent SDS 1104X-E, подключённый к плате Greaseweazle. Она считывает данные с дисковода TEC FB-50x, в котором крутится дискета с исходным кодом Repton 3.

Восстановление погибших дискет с осциллографом - 6

Тут Greaseweazle только для управления, но не для анализа. Он просто включает движок дисковода, а считывание данных происходит напрямую на осциллограф по проводам, подключённым к дисководу на тестовые точки TP3 и TP4, как указано в техническом мануале (см. скан страницы в начале статьи).

Производительности этого осциллографа начального уровня достаточно, чтобы загрузить целую дорожку с дискеты (время считывания 200 мс) во внутреннюю память на частоте 25 Мсэмплов/с. Чувствительности 500uV/div хватает, чтобы различить пики в записи. Пара пиков по 4 микросекунды обычно соответствует "1", а пик на 8 микросекунд — это "0".

Конечно, без проблем не обошлось. Оказалось, что разные дисководы выдают разный аналоговый сигнал: например, у Mitsubishi сигнал более чистый, у TEAC присутствует странный высокочастотный шум. А лучше всех проявил себя дисковод TEC FB-502, хотя он был старше Mitsubishi и остальных.

Восстановление погибших дискет с осциллографом - 7
ASCII-символ "1" (00110001), первый символ в названии диска (1187V1.0)

Чтобы усилить магнитный сигнал с дискеты, Фил поставил резистор для управления скоростью вращения, и дискеты разгоняли со стандартной скорости 300 RPM до 400 RPM. Естественно, прочитать данные становилось легче — законы физики!

Звук записи на дискету 5,25", замедленный примерно в 100 раз [9] (20 секунд вместо реальных 0,2 секунды)

Но вернёмся к осциллографу. Получив аналоговый сигнал с дисковода, хотелось бы применить какой-то алгоритм для автоматической расшифровки этого сигнала. Инженеры решили попробовать такой вариант: найти начало сектора, и непрерывно отсчитывать от него по 8 микросекунд аналогового потока. Если напряжение растёт или снижается на протяжении всего участка, это "0". Если напряжение изменяется сначала в одном направлении, а потом в другом, то это "1". Затем повторная синхронизация к ближайшему пику.

Восстановление погибших дискет с осциллографом - 8

Несмотря на хаотичные волновые формы, алгоритм восстановил все биты в «потерянном» секторе с той дискеты:

Восстановление погибших дискет с осциллографом - 9

В самых трудных случаях форму сигнала с осциллографа исправляли вручную в редакторе FloppyControlApp [10]. Немного похоже на то, как ретушируют (восстанавливают) старые фотографии:

Восстановление погибших дискет с осциллографом - 10

Этот инновационный метод позволил получить исходный код, который безуспешно пытались восстановить разными методами несколько лет! С помощью осциллографа прочитано 100% кода со всех дискет! В том числе игра «Ферма старого Макдональда». Это безусловная удача для цифровых археологов.

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

Крис Эванс и Фил Пембертон очень рады, что нашли способ восстанавливать данные с дискет, которые невозможно прочитать никаким другим способом. Они рады помочь коллекционерам в восстановлении информации с редких носителей.

В общем, Крис с Филом ждут ваших дискет! И старый Макдональд тоже :)

Восстановление погибших дискет с осциллографом - 11


Облачные VDS [11] от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Автор: Анатолий Ализар

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/news/364471

Ссылки в тексте:

[1] Greaseweazle: https://github.com/keirf/Greaseweazle/wiki/Greaseweazle-Models

[2] протестировали новый способ: https://scarybeastsecurity.blogspot.com/2021/05/recovering-lost-treasure-filled-floppy.html

[3] технического мануала для TEC FB-50x: http://www.minuszerodegrees.net/manuals/TEC/TEC%20FB-50x%20series%20-%20Technical%20manual.pdf

[4] Image: https://habrastorage.org/webt/ef/ap/kg/efapkgbvwqeudwz6fdp3uzuifb4.png

[5] MFM: https://en.wikipedia.org/wiki/Modified_frequency_modulation

[6] GCR: https://en.wikipedia.org/wiki/Group_coded_recording

[7] FM: https://en.wikipedia.org/wiki/Run-length_limited#FM:_.280.2C1.29_RLL

[8] Repton 3: http://bbcmicro.co.uk/game.php?id=425

[9] Звук записи на дискету 5,25", замедленный примерно в 100 раз: https://drive.google.com/file/d/12tP5lElbvDwmlKQ2WaU9yLAy50chzgBX/view

[10] FloppyControlApp: http://www.makercentral.net/pages/posts/floppycontrolapp-waveform-editor-8.php

[11] VDS: https://macloud.ru/?partner=4189mjxpzx

[12] Источник: https://habr.com/ru/post/558386/?utm_source=habrahabr&utm_medium=rss&utm_campaign=558386