2009-01-24

Упала система. Что делать? (часть 1)

В интернете часто задается данный вопрос. Часто людьми совсем далекими от компьютера, но, бывает, что и продвинутый пользователь, столкнувшись с проблемой «Синего Экрана» и обнаружив, что стандартная переустановка системы проблему не решила, создает очередной топик. В данной заметке я постараюсь доступно, насколько это возможно, рассказать о том, что нужно делать в ситуации, когда винда «упала».

Падение системы имеет в своей основе 2 глобальные причины. Первая — это, непосредственно глюк системы, в результате которого рушится реестр, ломаются системные файлы и система встает на прикол. Вторая причина — неисправное железо.

Железо бывает разное. Слишком разное, чтобы при возникновении ивента «система не грузится» начинать тестировать все, что воткнуто в конкретный системный блок. Поэтому общее правило при возникновении проблем я бы выразил так: «вытащи из своего компьютера все, без чего он может обойтись». В результате состав системного блока должен привестись к виду:

  1. Материнская плата

  2. Блок питания

  3. Процессор

  4. Оперативная память

  5. Видеокарта (если есть встроенная — оставляем только ее)

  6. Системный жесткий диск

Всё, этого достаточно чтобы система могла стартануть. Пробуем, если система заводится, значит проблема в железе или его взаимодействии с системой, возможно в драйвере. Так или иначе, возвращая по одной железке и стараясь после этого запустить систему, мы, в большинстве случаев, успешно определим кто виноват и дальше будем иметь возможность целенаправленно бороться. Если же в минимальной комплектации система продолжает отказываться нормально работать, наш круг подозреваемых сужается до всего 6 компонентов. Тут следует заметить, что в данном случае система может не грузиться по-разному. Рассмотрим варианты.


Компьютер вообще не работает.

Для начала компьютер может вообще не работать. То есть при нажатии на кнопку включения не будет ровным счетом никакой реакции. Здесь 3 подозреваемых:

  1. Блок питания.
    Может выдавать нестандартные напряжения, или не выдавать из вовсе.
    В этом случае, если нет гарантированно рабочего второго БП, придется взять в руки мультиметр и замерять напряжения на широком разъеме, втыкающемся в материнскую плату. Необходимые напряжения на стандартном современном блоке питания можно посмотреть в википедии, также я опущу приемы работы с мультиметром, будем считать вы умеете с ним обращаться. Остается один вопрос — как включить БП, когда он отсоединен от материнской платы? Очень просто. Необходимо отключить БП от сети (например кнопочкой на нем), подсоединить к нему одно устройство (подойдет CD-ROM, или жесткий диск), скрепкой перемкнуть на широком разъеме любой черный провод с зеленым (чаще всего он зеленый, в инструкциях к БП называется «
    Power Switch On»), включить БП. Перемыкая любой черный (это «земля») провод с не черными, убедиться что напряжения соответствуют норме, ну или хотя бы отклоняются от нее не более чем на 0.1-0.2 вольта.

  2. Кнопка включения.
    Как ни странно, но кнопки тоже умеют ломаться. Равно как и провода, идущие от них к матерям. Простой способ проверки — отсоединить кнопку от матери и перемкнуть контакты чем-нибудь металлическим, например отверткой. Делать это, как и все остальное, описываемое в этой заметке, надо предельно аккуратно.

  3. Материнская плата.
    Ну тут все просто. Если БП работает, и при прямом перемыкании контактов включения кулер процессора не стартует (для верности тут можно вытащить оперативку и видюху, даже если последняя одна) — значит, с вероятностью 99% мать умерла.

Помимо совсем неработающего компа, можно столкнуться с проблемой, когда кулера стартуют, но отсутствует изображение на мониторе. Тут все становится немного проще. Если компьютер не подает голоса, то есть отсутствуют сигналы подаваемые с помощью спикера, то стоит сделать следующее:

  1. Отсоединить жесткий диск.

  2. Вытащить оперативку и попробовать включить. Заведется и закричит — дело в ней.

  3. Аналогично поступить с видеокартой, ежели она не встроенная и единственная.

Если без видеокарты и оперативки комп продолжает молчать — вероятно дело в материнке или процессоре. Проверить их можно по большому счету только если у вас есть вторая подходящая мать, или второй подходящий процессор.

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


Компьютер включается, но система не грузится. На черном экране появляется надпись.

Этом случае, конечно, следует отталкиваться надписи. Чаще всего она гласит: «NTLDR is missing». Возможны другие варианты, возможно я дополню заметку позже, рассмотрев каждый из них. Пока же скажу, что чаще всего проблема решается загрузкой с установочного диска винды. После загрузки стандартный вин-установщик предложит запустить консоль восстановления. Загрузив ее, следует выполнить команды «fixmbr» и «fixboot», которые восстановят загрузчик операционной системы — именно его поломка является, чаще всего, причиной появления сообщений при загрузке.


Система загружается и вываливается в «Синий Экран Смерти (BsoD)»

Если система падает в БСоД, виной тому может быть неисправная оперативка или жесткий диск. Для их проверки существуют 2 старые, многократно проверенные утилиты — Memtest86+ и Victoria (для DOS). Они входят во множество самосборных загрузочных дисков, однако классический способ их загрузки — загрузка с дискеты. Так что если у вас сохранился FDD-дисковод, он вам еще может пригодиться. Взять эти две программы можно, соответственно, тут и тут. Описывать мемтест бессмысленно — он автоматически запускается и начинает нагружать оперативку тестами, работая в цикле. Пройдя 2-3 цикла (значение PASS) и удостоверившись что оперативка работает без сбоев, можно переходить к виктории. Последняя является русской программой и содержит хорошую документацию. Если влом читать, выделю основное. После загрузки требуется нажать кнопку P и выбрать жесткий диск, после этого нажать F2 и убедиться что вывелась информация о нем (в противном случае вы неправильно выбрали диск =)), затем — нажать F4 и, ничего не меняя, нажать «Enter». Запустится сканирование жесткого диска, каждый сектор будет прочитан, в случае неудачи поврежденный сектор будет добавлен в список в правом-нижнем углу экрана с пометкой «Warning». Наличие «бэдов» (bad-sector) говорит о том, что жесткий диск лучше сменить на новый. Хотя в ряде случаев бэды «лечатся», но далеко не всегда, и далеко не всегда после их «лечения» диском можно пользоваться как и прежде — часто вслед за 1-2-мя секторами начинают «сыпаться» остальные, безвозвратно унося с собой хранимую информацию.

Продолжение следует...

2009-01-15

Пара способов быстро и просто "оживить" Windows 2000/XP

Общеизвестным фактом является то, что великая и могучая операционная система Windows имеет обыкновение временами падать. Делает она это по-разному, с разной частотой и сокрушительной силой. Мне, как работнику весьма крупной компании, занимавшемуся несколько лет поддержкой работоспособности пользовательских машин, известно много-много-много самых различных случаев, когда "вчера все работало, а сегодня...". А сегодня не запускается autocad, в телефонном справочнике кракозябры, не загружается профиль пользователя, система непонятно тормозит, Word не хочет открывать документ, система падает в синий экран смерти. Перечислять так или иначе возникающие глюки можно долго. Иногда они связаны с криворуким пользователем, который смог пролезть куда не надо и сделать что не положено, иногда - причина кроется в аппаратной части компьютера. Хотя аппаратные глюки бывают очень впечатляющими и интересными, заставляющими несколько часов кряду корпеть над поиском причины неадекватного поведения машины, мне бы хотелось очень-очень кратко написать о том, что можно сделать при подозрении, что виновата в глюках таки сама система.

Я не великий гуру ОС Windows, и мне не хотелось бы разбирать сложные системы наподобие бэкапов сохраняемых на серверах, тонких клиентов и прочего-прочего, что труднореализуемо и с чем я не имел опыта. Мой опыт - это сетка на 1000++ компьютеров, доменная аутентификация, юзеры под Power Users, частые перестановки людей и компов, вагон разнообразного софта кочующего промеж компов и яростно замусоривающего реестр и системный раздел диска. Машинки самые разношерстные по ттх, с 2000 или XP на борту. В этих условиях машинки часто падают, и хочется иметь возможность быстро откачать очередную. Особенно если владелец стоит с ножом у горла со словами "Почему не работает? Вы срываете нам сроки!". Но хватит лирики.

Исходя из своего опыта могу сказать: не всегда, но довольно часто заглючившую винду можно легко и просто привести в нормальное состояние, иногда получив вполне рабочую систему, иногда - систему которая может проработать необходимый минимум до сдачи горящего проекта. В конце концов что по сути может сломаться в винде? Системные файлы и реестр. Вот их восстановлением и стоит озаботиться.

Файлы.
Самый прямой и брутальный способ спасти системные файлы - делать полный бэкап системы, причем желательно не встроенным архиватором, к которому есть существенные претензии, а сторонним софтом. Задача прямо скажем трудная, если речь идет не о конторе с 10ю компьютерами. Поэтому копнем что предлагает винда для сохранения своего добра.
А предлагает она консольную утилиту sfc, которая может сверить часть системных файлов с файлами дистрибутива. Есть подводный камень - дистрибутив должен содержать интегрированный сервиспак именно той версии (и, разумеется, языка), которая установлена на компьютере. Второй камень - дистрибутив должен быть воткнут в привод имеющий букву, соответствующую букве привода, с которого система ставилась. То есть если система ставилась на диск C: с DVD-ROM'а D:, а потом дивидюк сняли и заменили на второй хард, который получил ту же букву, то ничего не выйдет. Проще всего скопировать файлы с компакт-диска в локальную папку, например C:\windistr (таким образом чтобы внутри папки C:\windistr\ оказалась папка i386) и поправить пути в реестре. Последнее можно сделать приготовленным .reg-файлом, примерно таким:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup]
"SourcePath"="c:\\windistr\\"
"ServicePackSourcePath"="c:\\windistr\\"


(Стоит обратить внимание на то, что в файле реестра слеши (\) экранируются и потому удваиваются. Если менять реестр вручную, ничего удваивать не нужно.)

Когда файлы приготовлены, в реестр внесены правки пути и совершена перезагрузка (без этого не заработает!), можно открыть консоль и набрать

sfc /scannow
или
sfc /scanboot

Первая команда выполнит немедленную сверку и восстановление системных файлов, вторая - сделает это при следующей загрузке системы. Стоит заметить, что команда не работает в безопасном режиме.

Если применение утилиты sfc по каким-либо причинам невозможно, можно попробовать переустановить текущий сервиспак и Internet Explorer - в ряде случаев это помогает вернуть к жизни неработающие службы системы, поправить сбойные ветки реестра.

Если файлы системы можно попробовать вернуть с помощью утилиты sfc или путем переустановки сервиспака и IE, и, в ряде случаев довольно легко и просто вернуть работоспособность системы не проводя никаких предварительных операций (за исключением поиска дистрибутива Windows, инсталлятора сервиспака и IE), то восстановление реестра требует наличие бэкапа этого самого реестра. А ведь Windows 2000 вообще не имеет штатной службы, производящей целенаправленный бэкап. А если речь идет об XP, то ее встроенная служба восстановления, хоть и сохраняет точки восстановления, содержащие в себе в том числе слепки реестра, но во-первых, делает их не регулярно, во-вторых, сами точки получаются избыточными по размеру, при том что восстановить состояние из этих точек получается далеко не всегда. Так или иначе я долго самыми теплыми словами вспоминал линейку Windows 9x, в которой реестр бэкапился при загрузке и хранил 5, если не ошибаюсь, последних слепков. Для Win 2000/XP бэкап реестра фактически сводится к сохранению файлов из %windir%\system32\config:
default
SAM
SECURITY
software
system

Эти файлы хранят все ветки реестра за исключением веток профилей пользователей. Последние, впрочем, лично я не вижу особого смысла бэкапить, так как если страшный глюк распространяется лишь на 1 профиль в системе, то, пожалуй, проще его удалить и пересоздать, чем заниматься восстановлением. Тем более что для этого придется озаботиться не только сохранением реестра профиля, но и всех системных файлов заключенным в нем.

Итак, в ходе недолгого поиска удалось обнаружить консольную утилиту, умеющую делать именно то, что нужно - создавать бэкап файлов реестра, копируя их в указанный каталог. Утилита называется erunt и она как нельзя лучше подошла для решения задачи, так как во-первых, как я уже сказал, она консольная, что позволяет запускать ее скриптом, а во-вторых, она позволяет сохранять не более N копий реестра, при этом избегая создания нескольких копий за один день. В моем случае эта утилита запускается путем скрипта на VBS, стартуемого групповой политикой домена, примерно такого:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "\\srv\Script\script_run\registry_backup_test\autoback.exe C:\ERDNT\#Date# /noprogresswindow /days:5"

Этот скрипт, выполняемый при включении компьютера, сохраняет 5 последних копий реестра за разные дни в папку C:\ERDNT\, отводя под каждый бэкап отдельную папку с именем, соответствующим дате бэкапа. В случае потребности восстановить реестр, остается лишь загрузиться с какого-нибудь диска подобного Mini PE, и вернуть файлы на их законное место - %windir%\system32\config.

Используя утилиту sfc, имея под рукой инсталляторы сервиспака и Internet Explorer'а, а также копии реестра сделанные утилитой erunt, можно, не бросаясь в омут переустановки ОС, за 10-20 минут попробовать восстановить работоспособность Windows 2000/XP.

2009-01-10

Установка OpenOffice.org 3 в (k)ubuntu 8.04

Ставил так:
  1. Вот отсюда скачал архив, названный «OOo_3.0.0_LinuxIntel_install_ru_deb.tar.gz», и распаковал

  2. Открыл консоль и перешел в папку «DEBS»

  3. Так как ставил OO.o на Kubuntu, удалил из «DEBS» ненужный пакет «ooobasis3.0-gnome-integration» (в случае установки на Ubuntu следует, соответственно, удалить «ooobasis3.0-kde-integration»)

  4. Удалил текущий установленный OpenOffice.org 2, выполнив:
    sudo apt-get purge openoffice.org openoffice.org-*
    (что потянуло за собой некоторые пакеты, но в моем случае ничего существенного)

  5. Установил все пакеты OO.o 3 выполнив:
    sudo dpkg -i *.deb
    cd desktop-integration
    sudo dpkg -i *.deb

  6. Как финальный штрих — установил расширение — русский орфографический словарь.

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

2009-01-08

KUbuntu 8.04 sources.list

qiwichupa@qiwinote:~$ cat /etc/apt/sources.list
deb http://security.ubuntu.com/ubuntu/ hardy-security main restricted
deb http://security.ubuntu.com/ubuntu/ hardy-security universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ hardy main restricted
deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb http://us.archive.ubuntu.com/ubuntu hardy universe
deb http://ru.archive.ubuntu.com/ubuntu/ hardy universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ hardy-updates universe multiverse
deb http://archive.canonical.com/ hardy partner

#wicd
deb http://apt.wicd.net hardy extras

#xneur
deb http://gq.net.ru/ubuntu/ hardy xneur

# wine
deb http://wine.budgetdedicated.com/apt hardy main


# smplayer/mplayer
deb http://ppa.launchpad.net/rvm/ubuntu hardy main

# Ubuntu supported packages
# GPG key: 437D05B5
# Ubuntu community supported packages
# GPG key: 437D05B5
# Seveas' Ubuntu Packages
# GPG key: 1135D466
# Ubuntu backports project
# GPG key: 437D05B5
# Kubuntu.org bleeding edge KDE
# GPG key: DD4D5088
# Kubuntu.org bleeding edge amaroK
# GPG key: DD4D5088
# Upstream Wine
# GPG key: 387EE263
# Medibuntu multimedia packages
# GPG key: 0C5A2783
# Canonical Commercial packages
# GPG key: 437D05B5
# deb http://packages.medibuntu.org/ hardy free non-free

#google earth
deb http://dl.google.com/linux/deb/ testing non-free

# wxWidgets/wxPython repository at apt.wxwidgets.org
deb http://apt.wxwidgets.org/ hardy-wx main