Решение ошибки STOP 7B при замене контроллера дисковой системы. Применение виртуальных машин в восстановлении данных

    image
    Disclaimer: за давностью лет точную модель серверов и контроллеров установить не удалось, поэтому в тексте при упоминании модели будут оговорки и, конечно же, возможны ошибки в деталях. Сути это не меняет — ниже описана процедура преодоления отсутствия драйвера нового контроллера без Recovery Console и «глубоких» знаний Windows 2003. Вероятно, возможны более оптимальные пути решения такой проблемы, чем использование виртуальной машины.

    Проблема: Сломался контроллер, выпали два SCSI диска, а потом и умер и весь сервер. Это был HP Proliant, предположительно Proliant DL380 G3 с контроллером Smartarray 6i. К утру нужно заставить работать Exchange и несколько доменов, которые крутились на сервере.

    Подняли диски, сделали посекторные образы, сделали образ всего рейда. Восстановили из образа данные, но заказчик хочет еще и восстановление работоспособности сервера. Сервера с таким же RAID контроллером нет, времени на поиск нету — это контроллер нескольких доменов, не во всех доменах есть BDC. Плюс там же крутится Exchange. К утру надо всё запустить в работу — придет несколько офисов людей и не смогут работать. Есть другой сервер с другим контроллером — Smartarray P410 на SAS дисках. Будем пытаться заставить работать это на нём. Полный образ массива заливаем на новый RAID на новом контроллере в надежде, что драйвера совместимы, но система не хочет грузиться — вылетает с ошибкой STOP 0x0000007B INACCESSIBLE_BOOT_DEVICE. Recovery Console нету. Как её внедрить в неработающий сервер — не ясно. Попробовали HP SmartStart в надежде, что он установит драйвера в новую систему, но не помогло.

    В процессе попробовали запустить сервер в виртуальной среде — работает, но медленно и печально — пользователи утром его повалят. Пробовали сделать backup-restore из виртуальной машины на новую с помощью ntbackup. Бэкап до утра не сделается — медленно. Думали про образ Акронисом, но в новом сервере нету ни одного PCI, а все доступные под рукой PCIe контроллеры не хотят работать в новом сервере, соответственно нет возможности подключить образ на диске, c которого хотели этот образ восстановить на новый RAID.

    Пробуем в VMware установить драйвер нового контроллера (это sfx архив). Говорит, что такого оборудования нет в системе. Распаковываем архив и пробуем установить драйвер через контекстное меню по правой кнопке мыши, грузимся, не помогает — STOP 7B. Начинаем копать сам драйвер, а точнее inf файл, предварительно изучив InstallHinfSection Function. В нем нету секции Default или чего-то в этом роде, видимо поэтому и не помогла установка по правой кнопке мыши. Начинаем пробовать все секции подряд командой

    RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 4 C:\WINDOWS\INF\SHELL.INF

    где DefaultInstall — имя секции, 4 — “If a reboot of the computer is necessary, ask the user for permission before rebooting”. Особо меня заинтересовали секции, в которых упоминалось что-то типа копирования и инсталляции драйвера

    [HpCISSs2_Inst.ntx86]
    CopyFiles = @HpCISSs2.sys
    
    [HpCISSs2_Service_Inst]
    ServiceType    = %SERVICE_KERNEL_DRIVER%
    StartType      = %SERVICE_BOOT_START%
    ErrorControl   = %SERVICE_ERROR_NORMAL%
    ServiceBinary  = %12%\HpCISSs2.sys
    LoadOrderGroup = SCSI Miniport
    AddReg         = pnpsafe_pci_addreg
    AddReg         = boot_ctrl_addreg
    AddReg         = disk_timeout_addreg
    

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

    Практическая польза для масс
    Допустим, вы сменили материнскую плату после поломки старой — смело можно пробовать ставить в неё диск после внедрения драйвера. Для этого понадобится VMware, Winhex (чтобы отключить-включить бутсектор — помогает избежать повреждения NTFS, если его откроют одновременно host и guest системы) и новые драйвера. Возможно стоит со временем описать этот процесс пошагово и в отдельной статье.

    Этот заказ описан у нас на сайте в разделе кейсов по восстановлению данных. Еще один кейс — виртуализация старого сервера Novell после отказа контроллера.

    UPDATE практической пользы для масс: mafet справедливо заметил, что таким же образом (через RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection) можно добавить драйвера новой системы перед миграцией на неё
    DATARC
    Компания
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 37

      +1
      Вот из-за таких бессонных ночей я и сменил сферу деятельности.
        0
        Сдался боец невидимого фронта :)
          +2
          Не, решил — хватит получать, пора зарабатывать.
            +1
            именно. я тоже. сменил профессию с админа на программиста и ни капли не жалею. работа на себя, на свою компанию. если всё правильно и вовремя делать — никакого напряга, одно удовольствие и саморазвитие. однако, я думаю, с мелкого админства все начинали :)
              0
              Да терапевтом работать хорошо — пациенты (еще) живые и если всё правильно и вовремя делать (таблетки там и витаминки) — никакого напряга
              Но ведь врачи скорой помощи тоже нужны (и кому-то эта работа нравится…
        0
        >не помогла установка по правой кнопке мыши.

        >что-то типа копирования и инсталляции драйвера

        Для меня это выглядит как шаманские пляски.
          0
          они и есть
            0
            но пляски не воспроизводимы, как рецепт.
              0
              ну вроде там довольно полезная на практике (хотя и раздолбайской) описана — кому-нить да поможет, надеюсь. вот внизу человек вообще другое применение придумал.
          0
          кстати стоит отметить, что при миграции на новое железо можно заранее подсунуть дрова на контролер таким способом. спасибо! полезно. давно хотел узнать, как это делать проще =) у меня как-то по шамански обычно получалось.
            0
            кстати, да )) подозреваю, что есть более кошерные способы, но этот простой как дрова ))
              0
              очень ценное замечание, спасибо. добавил в пост.
              0
              С помощью чего для vmware образ сделали?
                +1
                простой посекторный образ а-ля WinHex
              0
              эммм, а скопировать конфиги на новое железо и указать путь до данных нельзя?
                +1
                честно, я не знаю, как перенести Active Directory и Exchange простым копированием. мои клиенты тоже этого не знали. я буду очень-очень признателен, если вы расскажете.
                  0
                  не сталкивался с AD и Exchange, а зачем тогда делать бэкапы, если их нельзя восстановить?
                    0
                    ну как я понимаю, они бэкапятся не простым копированием, а по каким-то своим методикам — ну типа «как sql база», не знаю как это правильно описать. то есть, если делается правильный бэкап AD и Exchange, то они прекрасно восстанавливаются без костылей, но наши клиенты из тех людей, которые бэкап делают неправильно ))
                      0
                      > ну как я понимаю, они бэкапятся не простым копированием, а по каким-то своим методикам

                      Разумеется.
                      И MS Exchange, и AD используют базы дынных. А бэкап БД — это совсем не то же самое, что просто бэкап файлов с файловой системы.
                      В случае AD и Exchange делается так называемый System State Backup. При этом, например, на сервере контроллера домена происходит бэкап некоторых важных системных файлов, бэкап настроек системного реестра, бэкап файловой структуры SYSVOL (где хранится файловая составляющая GPO и скрипты) и собственно бэкап самой базы данных AD (той самой, которая хранится в файле NTDS.DIT). При бэкапе БД логи транзакций, разумеется, коммитятся в базу и транкейтятся.
                0
                Как вариант, можно скопировать загрузочный диск сервера с операционной системой на отдельный sata диск, на этом диске отредактировать реестр системы — поменять контроллер на стандартный pci ide (как описано здесь внизу), далее уже запускать сервер с диска и настраивать raid и прочее. Но применимо, если в сервере есть встроенный сата-контроллер, конечно.
                  0
                  само собой это была первая идея — так часто «прокатывает» даже без редактирования реестра на простых конфигурациях, но она по какой-то причине не сработала. иначе бы не было откровенных танцев с бубном
                  0
                  Ндааа…

                  Ребят, вам надо было использовать для этого Acronis True Image обязательно версию, которая поддерживает Universal Restore!
                  Делаете образ, загружаетесь на целевой системе, перед развертыванием указываете Acronis'у использовать функцию Universal Restore и в её настройках указываете путь к распакованным файлам драйверов под ваш контроллер.
                    0
                    «Думали про образ Акронисом, но в новом сервере нету ни одного PCI, а все доступные под рукой PCIe контроллеры не хотят работать в новом сервере, соответственно нет возможности подключить образ на диске, c которого хотели этот образ восстановить на новый RAID.»

                    это конечно тоже была одна из первых идей
                    0
                    Можно было бы воспользоваться установочном диском Windows, полсле предложения воспользоваться Recovery Console нажимаем Enter (отказываемся от её использования), соглашаемся с Лиц. Соглашением, установщик найдёт установленую ОС и предложит её востановить. Нажимаем «R». Далее идёт процедура очень похожая на установку Windows в 2 этапа. После этого ОС загрузится без BSOD. Если контроллер старый или его поддержки нет в Windows, суём дискету с дровами или используем nLite.
                      0
                      AD и тп сохранится?
                        0
                        Всё сохранится
                          0
                          надо будет попробовать
                      0
                      > это контроллер нескольких доменов, не во всех доменах есть BDC

                      1. Один Windows-сервер может быть контроллером только одного домена. В проекте разработки AD предполагалось, что один сервер сможет быть контроллером сразу нескольких доменов (и в SYSVOL до сих пор есть следы этого намерения в виде структуры папок и симлинков [а точнее junctions]), но это в итоге так и не было реализовано.

                      2. Понятие BDC (Backup Domain Controller) было только в NT4-доменах, а уже с появлением Active Directory (службы каталогов, начиная от Win2000 и далее) такого понятия не было. Все контроллеры одного домена стали как бы равнозначными (за исключением пяти FSMO-ролей, распределяемых между контроллерами). Поэтому правильнее было бы сказать, что в этом домене не было второго контроллера домена.
                        0
                        клиенты очень настаивали, что без этого сервера не смогут работать несколько доменов, AFAIK. при этом они конечно же могли ошибаться.
                        0
                        Winhex (чтобы отключить-включить бутсектор — помогает избежать повреждения NTFS, если его откроют одновременно host и guest системы)
                        Можно здесь по-подробнее — как я понял диск включается в хост машину и подключается к виртуальной?
                        Почему тогда хост-система лезет в бут-сектор, и вообще почему туда что-то пишут?
                          0
                          хост-система «видит» раздел NTFS и работает с ним как со своим. и гест-система тоже. при этом очень вероятно повреждение файловой системы. хост система лезет не в бут-сектор, бут-сектор просто можно двумя байтами выключить, а вместе с ним и NTFS.
                          0
                          Хм, а «современные» системы Windows 7 и 2008 позволяют менять материнскую плату без танцев с бубном?
                            0
                            в большинстве случаев всё проходит без танцев. танцы бывают только тогда, когда в новой системе нет драйвера storage для устройства, с которого надо грузиться.

                            не забывайте, что у меня очень необычный опыт — я работаю в компании по восстановлению данных, поэтому я могу не знать чего-то из внутренних особенностей Windows и идти неоптимальным путем просто в силу того, что заставить работать операционную систему это совсем не моя задача
                              0
                              т.о. админу следует заранее позаботиться — установить в систему драйверы материнских плат(контроллеров) хотя бы СОСЕДНИХ компьютеров/серверов?
                                0
                                тут я не советчик, как лучше сделать…

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое