Страница 203 из 299
Эта глава посвящена рассказу о структуре системного реестра, о принципах работы с ним, а также содержит в себе информацию о скрытых настройках реестра, использование которых может дать вам в руки ключи власти почти над всей операционной системой.
В качестве объекта исследования взят системный реестр операционной системы Windows95/98 как устроенный более просто, чем реестр систем на платформе NT — Windows 2000 и Windows ХР. Кроме того, в настоящее время в России наиболее распространенной операционной системой остается Windows98 как сочетающая в себе умеренные требования к ресурсам компьютера и удовлетворительные сервисные функции и надежность, так что нижеприведенное описание сможет пригодиться максимальному числу пользователей именно в том случае, если его объектом станет именно Windows 95/98. Однако о реестре Windows 2000/ХР упоминания в главе тоже имеются, но приводятся они лишь "для общей информации" и руководствоваться ими при непосредственных действиях по изменению параметров системного реестра не стоит.
В операционных системах Windows9х физически реестр располагается в двух файлах в каталоге Windows (далее именно так будет обозначаться папка, в которую установлена операционная система — название этого каталога на вашем компьютере может быть другим) — System.dat и User.dat. Файлы System.da0 и User.da0 (на конце — цифра ноль) являются резервными копиями реестра первой очереди, которые создаются каждый раз после успешной загрузки компьютера, а в случае неудачи при загрузке могут быть помещены на место поврежденных файлов реестра. В Windows Me к указанным файлам добавился еще и файл classes.dat, являющийся тем самым третьей частью системного реестра.
Сам системный реестр состоит из двух частей. Первая — файл System.dat — содержит информацию, общую для всех пользователей данного компьютера: информацию о наличии устройств, их параметры, настройки некоторых программ и др. Вторая же часть — User.dat — является специфичной для каждого пользователя, храня его настройки. Оба файла имеют атрибут "Скрытый".
Если на компьютере зарегистрировано несколько пользователей, то в папке WindowsProfiles хранятся в отдельных каталогах "личные" файлы каждого: содержимое рабочего стола, главное меню и т. д… а также часть User.dat системного реестра. В папке Windows тоже хранится файл User.dat, содержащий на стройки системы по умолчанию[30]. При загрузке компьютера после ввода имени пользователя файл User.dat из каталога этого пользователя вместе с System.dat и User.dat из каталога Windows загружается в память и "склеивается" с ними в единое целое.
В операционных системах Windows 2000/ХР файлы системного реестра хранятся в подпапке System32/Config каталога с файлами Windows.
Перед тем, как начать изучение внутреннего устройства системного реестра, неплохо было бы обезопасить свою систему от крушения вследствие его возможного повреждения. Вопреки распространенному мнению, если регулярно проводить резервное копирование системного реестра, то его повреждение не нанесет существенного вреда системе[31].
Меры предосторожности
Как вы наверняка уже знаете, в случае повреждения системного реестра операционная система Windows может не суметь загрузиться. В этом случае единственным выходом будет переустановка Windows, процесс долгий и занудный. Но этого можно легко избежать, использовав универсальный способ — резервное копирование.
В Windows98 резервное копирование реестра совершается автоматически. Каждый раз при успешном запуске Windows запускается программа scanregw.exe, которая копирует файлы реестра в папку WindowsSysbckup, заархивировав их в файл типа. cab (что уменьшает их объем раза в четыре). Кроме того, в архив с реестром помещаются файлы win.ini и system.ini, также содержащие важные настройки системы. Для восстановления реестра используется программа scanreg.exe, работающая в Режиме MS-DOS.
Если на вашем компьютере установлена именно Windows98, то в случае катастрофы системы, когда при загрузке компьютера вы видите сообщение "Системный реестр поврежден" или "невозможно загрузить драйвер…" или что-нибудь еще, действия должны быть следующими:
1. Перезагрузить компьютер кнопкой Reset.
2. При загрузке компьютера держите нажатой клавишу Ctrl. В появившемся меню выберите пункт Command Prompt Only и дождитесь появления приглашения MS-DOS. Если вызвать меню загрузки таким образом не удается, то вставьте в дисковод загрузочную дискету и загрузитесь с нее. Дождитесь вывода на экран приглашения MS-DOS.
3. Введите команду scanreg /restore. Запустится программа восстановления системного реестра. Выберите желаемую копию (лучше всего наиболее позднюю, что можно определить по дате) и следуйте дальнейшим указаниям программы.
4. Перезагрузите компьютер. Все должно заработать.
По умолчанию программой scanregw.exe сохраняется 5 копий реестра — от пяти последних запусков Windows. Можно сделать так, что сохраняться будет не 5, а больше (до 100) или меньше копий реестра. Для этого создайте файл scanreg.ini в каталоге с утилитами scanreg.exe и scanregw.exe и укажите там параметр MaxBackupCopies со значением, равным числу желаемых резервов (просто написав в первой строчке файла scanreg.ini строку МахВаскирСорies=число_резервов). Также можно заставить операционную систему сохранять в архивах с копиями реестра и другие файлы — просто добавьте в scanreg.ini строки Fies=полный путь к файлу.
Если с реестром вы экспериментируете часто и желаете отменить автоматическое резервирование реестра (чтобы не удалять наиболее старые его копии, которые могут потребоваться для его восстановления), то уберите вызов программы scanregw.exe из раздела автозагружаемых программ системного реестра (о том, где он находится — смотрите ниже), и впоследствии выполняйте ее запуск вручную.
Если у вас установлена Windows95, но вы желаете воспользоваться этими утилитами, то извлеките с помощью программы WinZip 7.0 или WinRar 2.50 и выше файлы scanregw.exe и scanreg.exe из файлов. cab дистрибутива Windows98[32] и поместите туда, куда сочтете нужным. Эти программы прекрасно работают и в этой операционной системе.
При работе в Windows95 и отсутствии возможности установки утилит резервирования реестра для его архивации в Режиме MS-DOS просто скопируйте файлы реестра в какую-либо папку вне каталога Windows, а для его восстановления произведите обратную операцию, скопировав заранее зарезервированные файлы поверх испорченных в каталоге Windows.
Если даже после восстановления системного реестра Windows не загрузилась — то увы, ее переустановка неизбежна. По всей видимости, в таком случае повредился какой-то системный файл, не реестр. (В этом случае ваши эксперименты над реестром не были причиной сбоя.) Вытаскивайте из папки Program Files и каталога с операционной системой все мало-мальски для вас ценное (не забудьте эвакуировать все нужное из папки "Рабочий стол", или "Desktop" в английской версии, — там находится все содержимое вашего рабочего стола, а также из каталога Profiles, если таковой существует — чтобы спасти файлы остальных пользователей, и из папки Applications Data в каталоге с Windows — там находятся папки с почтой Outlook Express, а также шаблоны Word2000), стирайте их (не забудьте предварительно снять со всех файлов в них атрибут "Только чтение", или придется подтверждать каждое удаление), удалите папку Recycled и запускайте setup.exe из каталога с дистрибутивом Windows. После установки системы и всех программ не забудьте сделать новые копии реестра.
Весьма желательно после установки Windows скопировать ее дистрибутив на жесткий диск и сделать загрузочную дискету. В любом случае восстановление Windows придется вести из Режима MS-DOS, а в таком случае доступ к CD-Rom'y будет невозможен, если не загрузить драйвера для него. Последнее же сделать не всегда возможно, так что надежнее будет иметь дистрибутив Windows на жестком диске.