Чтение диска с разрушенной служебной областью
Чтение диска с разрушенной служебной областью
Как уже отмечалось, при повреждении центральной области диска, где находится нулевая дорожка, этот диск просто не распознается приводом. Обнаружив, что в процессе чтения оглавления диска возникли критические ошибки, микропрограмма привода отказывает такому диску в обработке, несмотря на то что содержимое TOC дублировано по всей спиральной дорожке. В результате после вставки диска дисковод продолжает считать, что диска в нем нет, индикатор готовности на передней панели, помигав, гаснет и какие-либо дальнейшие действия невозможны.
Примечание
Привод выдает в интерфейс служебные сообщения о своем состоянии. Эти сообщения (Error codes или Sense Codes), в шестнадцатеричном формате, описаны стандартом MMC-3. Так, например, код 2/3A/01 (Medium not present – tray closed) означает, что лоток закрыт, и диска в дисководе нет; код 3/11/00 (Unrecovered read error) – неисправимая ошибка чтения и т. д. Всего таких кодов 40. Операционная система Windows, как правило, интерпретирует их обобщенно – как отсутствие диска в приводе, ошибку чтения или ошибку записи (обычному пользователю подробности не нужны). Истинные значения кодов демонстрируют некоторые программы, например IsoBuster, или служебные утилиты от производителей дисководов.
Все прикладные программы обращаются к приводу CD/DVD через его интерфейс, и если микропрограмма отказалась признать наличие диска в приводе, этого диска «не существует» ни для операционной системы, ни для любой из программ восстановления данных. Нам же нужно каким-то образом прочитать содержимое диска программами, о которых пойдет речь далее, и хотя бы получить посекторный образ: из этого образа затем легко будет извлечь полезную информацию.
Для решения проблемы придется вскрывать сам привод. Устройство для чтения дисков с разрушенной служебной или нулевой дорожкой желательно делать из привода, который не жалко подвергнуть небольшому упрощению. Лучше всего для этих целей подойдет достаточно старый низкоскоростной привод – эти устройства обладали надежной механикой и оптической системой, а их микропрограммы были довольно просты.
Можно вспомнить тот факт, что для работы с диском на уровне секторов таблица TOC не слишком необходима. Приводу нужны лишь три основных поля TOC: стартовый адрес первой дорожки, чтобы знать, откуда начинать чтение; адрес выводной области диска, чтобы знать, до каких пор можно перемещать каретку; адрес следующей вводной области (только для многосессионных дисков). Стартовый адрес для всех дисков одинаков: он всегда равен 00:02:00 по временному коду, что соответствует нулевому адресу LBA. Адрес Lead-Out (выводной области) напрямую зависит от объема диска, но достаточно, чтобы полученный микропрограммой адрес был не меньше действительного адреса выводной области этого диска, иначе все расположенные дальше сектора окажутся недоступными. Если установить адрес Lead-Out на 80 или даже 90 минут, есть гарантия, что вся поверхность диска будет доступна приводу. Наконец, после вставки диска данные TOC кэшируются в собственной памяти привода и сохраняются там до тех пор, пока диск не будет корректно извлечен.
Микропрограмму можно обмануть: сначала дать приводу распознать диск с исправной служебной областью, а затем подменить его испорченным диском! О том, что диск извлечен, а затем загружен новый, микропрограмма судит по срабатыванию датчика лотка привода или нажатию кнопки извлечения диска. Достаточно извлечь нормальный диск, не нажимая кнопку и не выдвигая лоток, а затем точно так же вставить восстанавливаемый диск. В качестве нормального диска проще всего взять любой CD-ROM с записанным на нем фильмом объемом около 700 Мбайт. В таком случае данные TOC этого диска подойдут к любому восстанавливаемому CD-ROM. Точно так же для восстановления CD-R понадобится правильный CD-R, а для CD-RW – аналогичный CD-RW.
1. Разберите привод. Снимите верхнюю крышку и траверсу, на которой находится пластмассовый «пятачок» с магнитом, прижимающий диск к посадочной площадке шпинделя. Извлеките этот «пятачок» – им нужно будет фиксировать диск вручную.
2. Подключите привод к компьютеру. Включите компьютер. Желательно ограничить скорость вращения диска программным способом.
3. Откройте лоток штатной кнопкой. Затем закройте лоток, одновременно положив на шпиндель хороший диск и прижав его магнитным «пятачком».
4. Дождитесь, когда привод распознает диск и остановит его вращение. Осторожно снимите прижимной «пятачок», диск и вставьте диск, который нужно восстановить (рис. 5.10). На фотографии на треснувший диск наклеен кусок пленки «Оракал», а для балансировки симметрично приклеен второй квадрат.
Рис. 5.10. CD-ROM, подготовленный для «обмана»
5. Запустите одну из программ, рассмотренных в следующем разделе, например AnyReader или ISOBuster. Снимите посекторный образ диска этой программой. Пользуясь кэшированными данными TOC, привод благополучно начнет читать секторы подмененного диска. Открывать диск штатными средствами Windows бессмысленно – операционная система тоже кэширует данные о диске и будет искать на нем те файлы, которые были на правильном диске!
Подобная методика не всегда приводит к успеху, но применить ее все же стоит. Если поврежденный диск не удалось инициализировать даже таким способом, остается его утилизировать.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Чтение файла
Чтение файла BOOL ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped) Возвращаемое значение: в случае успешного выполнения (которое считается таковым, даже если не был считан ни один байт из-за попытки чтения с выходом за пределы файла) — TRUE, иначе —
25.3. Чтение записей
25.3. Чтение записей Прочитать записи в базе данных можно двумя способами: посредством поиска записи по ее ключу и путем чтения последовательных пар
Чтение и запись
Чтение и запись freadЧитает из открытого файла определенное количество символов.Синтаксис:string fread(int $f, int $numbytes)Читает из файла $f $numbytes символов и возвращает строку этих символов. После чтения указатель файла продвигается к следующему после прочитанного блока позициям. Если
18.3. Чтение и запись
18.3. Чтение и запись Создав маршрутизирующий сокет, процесс может отправлять ядру команды путем записи в этот сокет и считывать из него информацию от ядра. Существует 12 различных команд маршрутизации, 5 из которых могут быть запущены процессом. Они определяются в
19.2. Чтение и запись
19.2. Чтение и запись Все сообщения в сокете управления ключами должны иметь одинаковые заголовки, соответствующие листингу 19.1[1]. Сообщение может сопровождаться различными расширениями в зависимости от наличия дополнительной информации или необходимости ее
Чтение почты
Чтение почты Прежде чем начать читать почту, ее необходимо получить. Для этого нажимаем кнопку Доставить почту на панели инструментов. После загрузки новых сообщенийна компьютер их можно обнаружить в папке Входящие. Чтобы в нее попасть, щелкаем на значке Входящие в
2.3.2. Разделы диска и таблица разбиения диска.
2.3.2. Разделы диска и таблица разбиения диска. Физические диски в Intel-системах принято разбивать на разделы. Повелось это, кажется, из-за того, что первые версии MS-DOS не могли обеспечить доступ к большим дискам (а объемы дисков росли быстрее, чем возможности DOS). Тогда
Просмотр служебной информации о сайте с помощью ресурса NETCRAFT[14]
Просмотр служебной информации о сайте с помощью ресурса NETCRAFT[14] Этот ресурс позволяет определить, какие серверы используются в обслуживании сайта, кому они принадлежат, какие имеют ip-адреса и какие на них установлены операционные системы. Причем, для целей конкурентной
2. Чтение мыслей
2. Чтение мыслей Вспомните любой продающий текст, который вам понравился в Сети. Который сразу захватил ваше внимание, и вы почувствовали, что этот сайт для вас.Как это достигается? Необходимо с первых строк описать трудную ситуацию вашего потенциального клиента – какие
5.4.2. Чтение файлов
5.4.2. Чтение файлов Предикаты, которые предоставляет Пролог для переключения текущего входного потока данных, аналогичны предикатам, обсуждавшимся выше. Целевое утверждение see(X) переключает текущий входной поток данных на файл с указанным именем. Так же как и tell, это
Чтение компакт-диска и DVD
Чтение компакт-диска и DVD Просматривать информацию, записанную на компакт-диск, ничуть не сложнее, чем файлы, хранящиеся на жестком диске. С дисками вы будете сталкиваться постоянно, работая на компьютере, – любые программы, фильмы, игры и музыка продаются на CD или
2.2.3.3 Опережающее чтение
2.2.3.3 Опережающее чтение Сервер OnLine DS может быть сконфигурирован таким образом, чтобы при чтении последовательной таблицы или индексного файла обеспечивалось опережающее чтение нескольких страниц в то время, пока обрабатываются уже прочитанные в разделяемую память
Восстановление разрушенной базы данных
Восстановление разрушенной базы данных Если вы подозреваете, что ваша база данных разрушена, важно точно придерживаться последовательности шагов восстановления, чтобы избежать дальнейших разрушений. Подробное описание рекомендуемой процедуры восстановления см. в