сайт ALPANF( www.alpanf.ucoz.ru ) Вторник, 07.05.2024, 16:32
Приветствую Вас Гость | RSS
Меню сайта


Категории раздела
Мои статьи [346]
Мини-чат
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Мои статьи

Разрешение проблем при загрузке Windows XP/2000
Как мы уже выяснили, существует множество обстоятельств, которые могут вмешаться в процесс загрузки Windows XP/2000. Мы рассмотрим те проблемы (и возможные способы их решения), которые чаще всего встречаются во время загрузки. Занимаясь диагностикой, помните о том, что всегда возможны аппаратные проблемы (самые раздражающие и неприятные из всех) и что компьютер иногда не загружается из-за отказа своих компонентов, а не из-за ошибок конфигурации или программ.
  Перед тем, как разбирать конкретные ситуации с диагностикой и решением проблем при загрузке давайте создадим еще один очень полезный инструмент. Назовем его "Загрузочная дискета WINDOWS XP/2000." Создание "Загрузочной дискеты WINDOWS XP/2000." Хотя такого понятия применительно к этим ОС нет и утилиты для создания такой дискеты, встроенной в систему, тоже нет, мы все же попробуем.
 Эта дискета не будет аналогом загрузочной дискеты WINDOWS 9х, подобную дискету нам в полной мере заменяет консоль восстановления. Идея состоит в том, чтобы перенести загрузочный модуль WINDOWS XP/2000 на дискету, а запускать он будет систему установленную на жесткий диск. Вспомним последовательность загрузки: BIOS—MBR—Boot Record—NTLDR.EXE—BOOT.INI— NTDETECT.COM—NTOSKRNL.EXE А если изменить последовательность таким образом: BIOS—Floppy(Boot Record)—NTLDR.EXE—BOOT.INI— NTDETECT.COM—NTOSKRNL.EXE Таким образом, старт пойдет с дискеты. Загрузочный сектор на дискете должен содержать код запускающий NTLDR.EXE. Соответственно необходимо расположить NTLDR.EXE также на дискете. NTLDR.EXE обратится к BOOT.INI за информацией о загружаемых системах. Можно скопировать оригинальный BOOT.INI с жесткого диска на дискету. Далее начнет работу NTDETECT.COM, который тоже придется скопировать на дискету. После отработки NTDETECT.COM загрузчик(NTLDR.EXE) скопирует в оперативную память NTOSKRNL.EXE (информация о его расположении известна из BOOT.INI) и передаст ему управление. Конечный результат - загруженная ОС.
 Ну, если с файлами все понятно (мы просто скопируем с жесткого диска на дискету NTLDR.EXE, BOOT.INI, NTDETECT.COM или даже возьмем оригинальные с дистрибутива, только BOOT.INI придется создать самостоятельно), то где взять загрузочную запись стартующую NTLDR.EXE? Оказывается при форматировании дискет, разделов в WINDOWS XP/2000, такая запись наносится автоматически. Это значит, что если у вас есть неактивный основной раздел, отформатированный средствами WINDOWS XP/2000, то достаточно дать ему метку активности и при старте вы увидите сообщение "Couldn't find NTLDR" или "NTLDR is missing", то есть происходит попытка запуска NTLDR. Вообще говоря, тип выводимого на экран сообщения будет зависеть от версии загрузочного сектора, даже для разных версий WINDOWS XP она может отличаться. Вывод: если скопировать NTLDR.EXE, BOOT.INI, NTDETECT.COM на неактивный основной раздел, то его тоже можно будет использовать для загрузки ОС. Нужно будет только переставить метку активности. Сделать это можно с помощью FDISK или средствами WINDOWS XP/2000, которые мы разберем позже.
 Итак, алгоритм понятен: 1. форматируем дискету в WINDOWS XP/2000. 2. копируем на нее NTLDR.EXE, BOOT.INI, NTDETECT.COM (можно прихватить и bootfont.bin, для корректного отображения шрифтов при загрузке) 3. дискета готова, остается выставить в BIOS первым загрузочным устройством дисковод и можно загружать ОС с дискеты. Чего мы добиваемся, стартуя с такой дискеты? Мы обходим загрузочный модуль жесткого диска! В случае если система не стартует в обычном режиме, а с такой дискеты стартует, можно, во-первых, локализовать проблему загрузочным модулем на жестком диске, во-вторых, обойти повреждения MBR, Boot Record, NTLDR.EXE, BOOT.INI, NTDETECT.COM и все же запустить систему.
 Настоятельно рекомендую создать такую дискету. Она поможет и при диагностике и, в крайнем случае, Вы загрузите систему даже с физическими повреждениями жесткого диска в загрузочной области. Неисправности аппаратного обеспечения. Теперь можно приступить непосредственно к рассмотрению конкретных ситуаций. Для начала отбросим проблемы вызванные аппаратной частью. Характерные признаки неисправностей вызванных сбоем оборудования: * компьютер вообще не загружается. * сигналы BIOS указывают на неисправность оборудования. * сбой происходит еще до начала работы загрузчика.
 Мы не будем детально рассматривать методы определения и разрешения аппаратных неисправностей. Немного вспомним, чем они могут быть вызваны: * Отсутствие питания. * Окисленные или запыленные контакты различных разъемов. * Слабая батарея или CMOS и батарея не соединены, соединены некачественно или неправильно. * Микросхема CMOS повреждена разрядом статического электричества. * Производилось принудительное обнуление CMOS или перепрошивка BIOS. Если контрольная сумма окажется неверной, компьютер не загрузится. Если информация CMOS корректно сконфигурирована, то возможные проблемы могут быть вызваны вследствие добавления или модификации оборудования. Необходимо обратить внимание на следующее: * Все необходимые контроллеры включены. * Отсутствие конфликтов по IRQ. * Правильность установки карт контроллеров. * Правильность подключения всех кабелей. * Питание подается на все диски.
 Неисправности загрузочного модуля. Если POST проходит нормально, а система все равно не загружается, то есть работа загрузчика не видна, следует попробовать старт с загрузочного диска DOS. Если происходит сбой, то проблема все-таки с аппаратной частью. Если загрузка с DOS - дискеты проходит нормально, то пробуем загрузку с помощью описанной выше загрузочной дискеты. Следует понимать, что в случае внесения изменений в конфигурацию жесткого диска такая дискета не поможет. Скорее всего, BOOT.INI будет указывать не на нужный раздел. Также дискета бесполезна, если сбой дает драйвер или поврежденный файл самой ОС. Даже если загрузчик с жесткого диска начинает работу, но не может запустить систему, дискету все-таки стоит попробовать. Как минимум это отсечет вопрос целостности загрузочных файлов. Здесь возможны два варианта: При неудачной загрузке проблема кроется в настройках системы (удаленные или поврежденные файлы, некорректные драйвера...) или была произведена переконфигурация жесткого(их) диска(ов). В случае успешной загрузки круг поиска неисправности ограничивается загрузочным модулем на жестком диске. Начнем со второго варианта, когда удается ограничить круг проблем загрузочным модулем жесткого диска. На экране могут появляются сообщения об ошибках следующего типа: Missing operating system (Отсутствует операционная система) A disk read error occurred (Ошибка чтения диска) Insert a system diskette and restart the system (Вставьте системную дискету и перезагрузите систему) Invalid partition table (Неверная таблица разделов) Hard Disk Error (Ошибка жесткого диска) Hard Disk Absent/Failed (Жесткий диск отсутствует/отказал) Описанные выше проблемы могут возникнуть по одной из следующих причин: 1. Отсутствие системного раздела на первом жестком диске 2. Повреждена главная загрузочная запись 3. Поврежден загрузочный сектор раздела 4. Испортилась микросхема CMOS (или разрядилась ее батарея) 5. Аппаратный сбой На последних пунктах останавливаться не будем, они относятся к аппаратной части, а вот первые три "разложим по полочкам".
 Пункт 1. Системный раздел это основной раздел на загрузочном диске с меткой "активный" . Этот раздел содержит файлы, необходимые для загрузки Windows XP/2000 ( NTLDR.EXE, NTDETECT.COM, BOOT.INI...). Утилита FDISK показывает системный раздел как активный (active partition). Аналогично проверить какой раздел является активным можно программой "Partition Magic". Опять вспоминаем процесс загрузки с жесткого диска. Системный код BIOS определяет загрузочный диск и считывает главную загрузочную запись. Код, содержащийся в главной загрузочной записи, ищет системный раздел на жестком диске. Если он не может найти системный раздел или Windows 2000 не может стартовать из этого раздела, процесс запуска останавливается. Возможно, что на жестком диске, с которого вы пытаетесь загрузить операционную систему, вообще нет системного раздела. Кроме того, не исключена ситуация, когда в качестве системного указан другой раздел. В качестве системного раздела может использоваться только основной раздел. Логический диск в дополнительном разделе для этой цели использовать нельзя. Установить новый системный раздел можно с помощью программы MS-DOS FDISK или "Partition Magic". При установке нового раздела активным, прежний теряет метку активности. Появление сообщения об ошибке типа "Error loading operating system" указывает, что код главной загрузочной записи нашел системный раздел, но не может запустить операционную систему. 
 Пункт 2. Вспомним функции кода главной загрузочной записи: Считывание таблицы разделов, расположенной в том же секторе где и сам код MBR Определение местоположения загрузочного сектора раздела Загрузка и выполнение кода, расположенного в загрузочном секторе раздела Если код главной загрузочной записи оказывается не в состоянии выполнить эти задачи, отображается одно из следующих сообщений об ошибках: Missing operating system (Отсутствует операционная система) Invalid partition table (Неверная таблица разделов).
 Для восстановления поврежденной главной загрузочной записи можно воспользоваться программой FDISK /MBR, запущенная с таким ключем программа FDISK устанавливает новую MBR. У такой серьезной ОС, как Windows XP/2000 есть свое средство для восстановления MBR -это консоль восстановления . Не всегда необходимость в перезаписи MBR вызвана ее повреждением. Некоторые ОС записывают свою версию MBR при инсталляции, например (Linux, Wiindows 2000/XP). Назовем это прихотью программистов. Ведь мы уже знаем, что MBR не зависит (не должна зависеть) от установленной ОС. Оказывается реально все немного не так. Тот же может легко установить свой загрузчик прямо в MBR, при этом обычно сохраняя возможность запуска ранее установленной ОС. В таком случае для загрузки всех систем будет использоваться менеджер загрузки Linux. Если Вас не устраивает такое положение вещей, то MBR можно перезаписать, однако если перезапись проводить с помощью FDISK /MBR или консоли восстановления, то загрузка Linux будет утеряна. В этой ситуации можно воспользоваться программой "Disk Editor" для сохранения MBR. Затем после восстановления Оригинальной MBR в файл, можно в BOOT.INI создать запись с указателем на этот файл и пользоваться в дальнейшем загрузчиком Windows XP/2000. Рассмотрим сохранение MBR на примере программы "Disk Editor". Программу нужно запустить, загрузившись с DOS - дискеты. В первом окне мы получим сообщение, что работа будет в режиме "только чтение". Нам этого хватит, мы не собираемся ничего менять на диске. Далее необходимо будет выбрать в качестве устройства для работы физический жесткий диск. В следующем окне в меню Object выбираем тип объекта Boot Record. В меню "Вид" можно просмотреть данные в разном представлении. Если переключиться в шестнадцатиричный вид, то в правой части окна можно разобрать некоторые слова на латинице или кириллице. Обратите внимание, данная MBR была нанесена программой FDISK из русскоязычной версии Windows 98. Обратите внимание на сигнатуру 55 AA в последних байтах сектора. Там же в правом нижнем углу видно, что абсолютный сектор, где расположена MBR, имеет номер 0. Затем в меню Tools выбираем Write object to (записать объект в). В качестве варианта сохранения выбираем файл. Далее даем имя сохраняемому файлу и определяем путь для сохранения. Желательно сохранить файл на дискету, 512 байт не слишком большой файл :).
  Пункт 3. Существует несколько известных вирусов, способных вызывать проблемы с загрузочным сектором раздела даже тогда, когда том отформатирован для использования файловой системы NTFS. Повреждение может произойти при установке альтернативной ОС для создания конфигурации с двойной загрузкой. Windows XP/2000 не может уберечь свои файлы, если она не запущена. В ряде случаев повреждение загрузочного сектора раздела может привести к генерации следующей ошибки типа "синий экран": STOP 0x00000078 INACCESSIBLE_BOOT_DEVICE. Еще одним симптомом проблем с загрузочным сектором раздела является "зависание" компьютера в процессе загрузки без отображения каких-либо сообщений, при этом экран остается черным. Даже при условии отсутствия очевидных грубых повреждений загрузочный сектор раздела может работать неправильно. Убедиться в этом можно следующим образом. Загрузитесь в консоли восстановления и переименуйте файл NTLDR. По умолчанию файл NTLDR имеет атрибуты скрытый, системный и только чтение. Поэтому сначала придется снять эти атрибуты. После этого, если загрузочный сектор раздела в норме, а причина неудачи поврежденный файл загрузчика NTLDR, то в основном разделе NTFS вы увидите следующее сообщение об ошибке: "Couldn't find NTLDR" или "NTLDR is missing". В основном разделе FAT вы увидите сообщение об ошибке: "A kernel file is missing from the disk". Следует с помощью консоли восстановления заменить поврежденный файл NTLDR.
 Если же переименовав NTLDR, вы таких сообщений об ошибках не получите, это будет говорить о том, что причина кроется в повреждении загрузочного сектора раздела. Восстановить загрузочный сектор можно несколькими способами. Применение того или иного зависит от того, какой конечный результат необходим и какие средства доступны. Первый способ. Использовать команду FIXBOOT консоли восстановления. Однако если загрузочный сектор был переписан установленной на диск другой ОС (например, Windows 9x), то новый загрузочный сектор сохранен не будет. Но не все так плохо. В прошлом уроке я обещал рассказать, как сохранить загрузочный сектор. Смотрим на примере все той же программы "Disk Editor". Действия практически не отличаются от тех, что мы производили при сохранении MBR. Только теперь нам нужно найти активный раздел и сохранить его загрузочный сектор. В меню "Объекты" выбираем "Таблица разделов". Находим раздел против которого в столбце BOOT стоит надпись YES. Это и есть системный раздел. Жмем ENTER. Обратите внимание, перед вами загрузочный сектор записанный Windows XP. В правой части явно видны надписи, которые будут выводиться на экран в случае сбоя при загрузке. Абсолютный номер сектора - 63. Просто для демонстрации представляю вам загрузочный сектор, созданный Windows 98. Сообщения об ошибках явно различаются. Вместо слова NTLDR видна надпись IO.SYS . Повторяем те же шаги, что и при сохранении MBR (см. рис. 4.7, 4.8, 4.9). Все. Загрузочный сектор сохранен. Теперь можно смело давать команду FIXBOOT в консоли восстановления. Далее загружаемся в Windows XP/2000 и копируем полученный файл на системный раздел. В BOOT.INI создаем строку с указателем на него. Например: C:\myboot.dos = "Microsoft Windows 98" Смело перегружаемся и пробуем загрузку в той и другой ОС. С учетом полученных знаний теперь у Вас не должно возникнуть проблем с созданием мультизагрузки, даже при установке различных ОС в любом порядке.
 Еще один способ восстановления загрузочного сектора. Вспомним, что происходит во время инсталляции из другой ОС. На нулевом этапе происходит копирование файлов на жесткий диск и установка загрузчика. Вывод очевиден: можно просто начать инсталляцию и прервать ее после нулевого этапа. В этом случае информация об установленных ОС будет автоматически добавлена в файл BOOT.INI. [Boot Loader] Timeout=5 Default=C:\$WIN_NT$.~BT\BOOTSECT.DAT [Operating Systems] multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect C:\bootsect.dos = "Microsoft Windows" C:\$WIN_NT$.~BT\BOOTSECT.DAT = "Windows XP Installation/Upgrade" Однако, неприятность этого метода заключается в том, что в файле BOOT.INI появится также запись с указанием на новую устанавливаемую систему причем она станет в секцию загрузки по умолчанию и на системном диске будут созданы два уже знакомых нам каталога "х:\$win_nt$.~bt и "х:\$win_nt$.~ls". Для того, чтобы вернуть все в нормальное состояние нужно удалить эти каталоги, удалить запись в файле BOOT.INI и выбрать систему, загружаемую по умолчанию. Но и это не самое страшное. Применить такой метод не представляется возможным, если компьютер загружен в ОС типа DOS, Windows 9x, а разделы на диске отформатированы в NTFS. Копировать файлы будет некуда т.к. ОС DOS и Windows 9x не работают с NTFS. Инсталляция закончится неудачей. Проблемы с системными файлами. Сбойные драйвера, службы. Вот мы и разобрались с методами разрешения проблем с системным разделом, главной загрузочной записью и загрузочным сектором. Что нам остается? А остается вариант, когда загрузчик явно срабатывает, а сбой происходит уже позже и не помогает даже загрузочный диск. Можно практически однозначно сказать, что проблемы вызваны файлами самой ОС, это могут быть повреждения файлов или их удаление, некорректно работающие службы или драйвера. Но! здесь тоже есть ответвления. Нельзя сбрасывать со счетов и аппаратный сбой. Особенно это касается оперативной памяти. Ведь на этом этапе происходит загрузка и инициализация ядра ОС, драйверов, запуск служб, а это требует ресурсов памяти. Как вы помните в файле BOOT.INI можно указать параметр /maxmem , что позволяет ограничить максимальный объем ОЗУ, который Windows 2000 может использовать. Но не перестарайтесь, не следует указывать для этого параметра более низкое значение, чем указано в требованиях к минимальной аппаратной конфигурации (32 Мбайт для Windows 2000 Professional и 64 Мбайт для Windows XP). Добавить такой параметр в файл BOOT.INI можно из консоли восстановления через команду BOOTCFG (см. предыдущую тему), либо создать на другой машине новый BOOT.INI и перенести его с дискеты опять же с помощью консоли восстановления. То же самое справедливо и для остальных ключей BOOT.INI. Если же с аппаратной частью все в порядке, то остаются системные файлы, службы, драйвера. Стоит проанализировать, какие действия производились с системой в последнее время. Устанавливалось ли новое ПО или производилось обновление драйверов. Если такие события имели место быть, то стоит попробовать "Безопасный режим" и в случае успеха отключить службу или заменить проблемный драйвер. Ну а вычислить его можно через протоколирование загрузки, либо с помощью ключа /SOS в BOOT.INI. На крайний случай остается вариант с последней удачной конфигурацией. В этом случае Вы откатите все настройки системы в то состояние, при котором был произведен удачный вход. Следует помнить, что все изменения сделанные после входа будут потеряны при использовании этого средства. И в конце хочу уделить внимание еще одному моменту. Загрузочный модуль может быть полностью исправен, а на монитор выводятся сообщения типа: Это могут быть сообщения об отсутствии или повреждении ветки реестра system, файлов hal.dll, ntoskrnl.exe. Не стоит отчаиваться. Это еще не говорит о том, что разрушено ядро или повреждены файлы реестра. Не спешите копировать через консоль новое ядро, хотя и такая процедура не исключена. Скорее всего в BOOT.INI строка указывает не на раздел с установленной ОС. Это может быть вызвано действием вредоносных программ или изменением структуры разделов. Посмотрите еще раз внимательно записи в BOOT.INI. Зайдите в консоль восстановления и обратите внимание на букву раздела с установленной ОС. Командой TYPE отобразите содержимое BOOT.INI. Дайте команду MAP и сверьте букву раздела с ARC именем ей соответствующим. А теперь взгляните на BOOT.INI, все ли так? Посмотрите пример. Обратите внимание, система установлена на диск "Е", ARC путь соответствующий этому диску device0\harddisk0\partition(2). Этому пути соответствует верхняя строка в секции [operating systems] файла BOOT.INI. А последняя строка в BOOT.INI указывает на раздел (1), что соответствует диску "D". Попытка загрузить систему по этому пути будет явно неудачной (правда, если на "D" не установлена вторая копия XP), но я-то знаю, что ее там нет :). Надеюсь, теперь вы сможете провести диагностику и определить оптимальный метод восстановления системы в случае сбоя при загрузке. Но, несмотря на обилие методов восстановления, может так случиться, что систему все равно не удастся загрузить. Да и такое бывает. Многое еще зависит от времени отведенного на восстановление. Существуют еще некоторые методы восстановления системы, но они больше применимы именно к восстановлению системных файлов и настроек и менее к разрешению проблем при загрузке. Поэтому здесь мы не будем их рассматривать, а уделим этому вопросу отдельное время.

Категория: Мои статьи | Добавил: boss (06.09.2009)
Просмотров: 5521
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • сайт для всех© 2024Хостинг от uCoz