[<>] ~~TOC wide~~ ====== Приложение III. Утилита DSKVER.COM ====== \\ Praemonitus praemunitus. (Кто предупрежден, тот вооружен) —//Латинское изречение// Автором [[msx:dskver:dskver|данной программы]] является А.Г.Леонов (МГУ, ЛВМ). //Утилитой// называется программа, выполняющая функцию общего назначения, например, копирования файлов, обслуживание портов или создание резервных копий. Утилита предназначена для анализа состояния диска, как на предмет отсутствия BAD—блоков ("плохих" блоков), так и на корректность директории и FAT. Утилита также является основным оружием при восстановлении сбоев диска, однако при этом требуются знание всего вышеизложенного об устройстве дискеты, формате директории и т.п. Утилита совершает следующие действия: - анализирует //физическое// состояние служебных секторов: * α) проверяет на читаемость загрузочный сектор ("boot sector"); * β) проверяет на читаемость FAT; * γ) проверяет совпадение двух копий FAT; * δ) проверяет на читаемость секторa Справочника; - анализирует //логическое// состояние оглавления, т.е. проверяет на корректность в совокупности директории и FAT (наличие циклов в FAT, наличие неименованных секторов и т.п.); - анализирует состояние кластеров диска, т.е. проверяет на читаемость все кластеры диска: * α) в случае //наличия// BAD—блока (если BAD–блок не принадлежит какому—либо файлу), он просто помечается в FAT и никогда больше не будет "захвачен" каким—либо файлом пользователя; * β) в противном случае ищется файл, который содержит найденный "плохой" блок, и данный файл помечается расширением BAD (неработоспособный файл). Запуск программы осуществляется следующим способом: A>DSKVER [Устройство][/Ключи] , где: * ''Устройство'' — "А:","В:" и т.п. (по умолчанию текущее); * ''Ключи'': * ''/D'' — тестировать только //директорию//; * ''/C'' — тестировать только //кластеры//; * ''/V'' — выдавать только сектора неименованных файлов; * ''/S: Номер'' — начать тестирование кластеров с кластера с номером //Номер// (формат — шестнадцатеричный); * ''/E: Номер'' — закончить тестирование кластеров на кластере с номером ''Номер'' (в двух последних случаях директория не тестируется). Примеры: * α)A>DSKVER B:/D/V Проверить директорию дискеты на устройстве "В" с информацией о секторах неименованных файлов; * β)A>DSKVER /C Проверить только Область данных ("Data area") дискеты на текущем устройстве; * γ) A>DSKVER C:/S:20/E:203 Проверить дискету на устройстве "C", начиная от кластера с номером 20h и заканчивая кластером с номером 203h. ---- [<>] {{tag>msxfdfss}}