Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » алгоритм смены ядра в WINDOWS XPSP2 без переустановки заново

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

sql7

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все выполнялось на двухядерном процессоре intel. windows xp sp2 rus.
 
    1.Начнем со случая когда у вас ядро с ACPI.
Сменить его можно: диспетчер устройств-оборудование-компьютер-"многопроцессорный компьютер с ACPI(например)-обновить драйвер-нет,не в этот раз-установка из указанного места-не выполнять поиск,я сам выберу драйвер. выбираем нужное ядро в табличке.
Существуют ядра(здесь и далее под ядром я понимаю ядро windows а не ядро процессора ):
 
"Стандартный компьютер"
"Компьютер с ACPI"
"Однопроцессорный компьютер с ACPI"
 "Многопроцессорный компьютер с ACPI"
 "Однопроцессорный компьютер с MPS"
"Многопроцессорный компьютер с MPS"
И еще одно:
"Многопроцессорный Compaq SystemPro или 100% совместимый"
 
 
возможно придется снять галочку "только совместимые устройства". но она редко помогает. Обычно того набора ядер что будут видны в табличке достаточно. У меня например было доступно:
 
"Стандартный компьютер"
"Компьютер с ACPI"
 "Многопроцессорный компьютер с ACPI"
"Многопроцессорный компьютер с MPS"
 
Если того что вам нужно в списке  нет, то  нужное ядро появится после изменения HardwareID: http://aceq.by.ru/core/1.jpg
 
Меняем HardwareID на  
 
acpiapic_mp   -> добавляется строка с  "Многопроцессорный компьютер с ACPI"
acpipic_up    -> компьютер с ACPI
acpiapic_up -> "Однопроцессорный компьютер с ACPI"
mps_mp  ->  "Многопроцессорный компьютер с MPS"
e_isa_up ->  "Стандартный компьютер"
mps_up    -> "Однопроцессорный компьютер с MPS"
возможные значения HardwareID можно посмотреть в WINDOWS\inf\hal.inf
 
вообще необязательно указывать HardwareID именно для искомого типа ядра. Если указать acpiapic_up то в меню выбора ядер появятся все шесть типов.
после перезагрузки в диспетчере устройств -компьютер будет две записи. Одна относится к ядру на котором компьютер работает , другая след предыдущего ядра. определить какое из них активное просто. правая кнопка мыши- на активном ядре не будет слова "удалить". Я не рекомендую удалять не активное ядро. С его помощью легко менять ядро на другое снова и снова. Делаем это так: нажимаем обновить драйвер на неактивном ядре, и далее по алгоритму как указано выше. Если в списке ядер не будет нужного вы уже знаете что делать. Единственное уточнение- если вы обновляете драйвер у неактивного ядра и оно не ACPI и в списке доступных для обновления ядер нет нужного то в реестре поправлять HardwareID нужно в другом месте: HKLM\SYSTEM\CURRENTCONTROLSET\ROOT\PCI_HAL\0000. то есть если у вас активное ядро "Однопроцессорный компьютер с ACPI", а неактивное "Стандартный компьютер", и вы хотите установить другое ядро, то нужно обновлять драйвер "Стандартный компьютер"и при необходимости реестр в HKLM\SYSTEM\CURRENTCONTROLSET\ROOT\PCI_HAL\0000.
 
 Если новое ядро не поддерживается изначально, то есть если бы вы начали установку  
с нуля, нажали F5 выбрали желаемое ядро и после этого установка зависла бы, то в данном случае после перезагрузки компьютер  тоже не сможет загрузиться. Так , например , у меня было с компьютером на плате intel  D945PSN, попытка установки с нуля на ядре "Многопроцессорный компьютер с MPS" не получилась.
 
    2. Следующий случай более практически интересный когда у вас изначально установлено не ACPI ядро. Это может быть например ядро "Многопроцессорный компьютер с MPS", но зачастую это  "Стандартный компьютер", который получается после клонирования WINDOWS.
Если нам нужно обновить ядро на НЕ ACPI, то проблемы нет. Обращаемся к пункту один, в случае необходимости правим реестр в HKLM\SYSTEM\CURRENTCONTROLSET\ROOT\PCI_HAL\0000\HardwareID.
 
Если нам нужно обновить ядро на ACPI, то правка HardwareID и последующая перезагрузка приведет к краху.
Все потому что если в предыдущем случае при обновлении драйвера windows делает нужные поправки в реестре и в системный файлах, то в этом случае только частично делаются поправки в системных файлах и все. Поэтому добавляем сами. Предположим нам нужно установить  "Многопроцессорный компьютер с ACPI"
заходим в реестр и создаем раздел \0001: http://aceq.by.ru/core/2.jpg
 
Его легко создать из  \0000 заменив значения параметров  DriverDesc, InfSection, MatchingDeviceId как показано на картинке, а именно:
     
    DriverDesc  = Многопроцессорный компьютер с ACPI (так как мы условились что хотим поставить для примера это ACPI ядро)
    InfSection  =ACPIAPIC_MP_HAL
    MatchingDeviceId = acpiapic_mp
 
Далее создаем в реестре раздел как показано на картинке: http://aceq.by.ru/core/3.jpg
обратите внимание что параметр Driver={4D36E966-E325-11CE-BFC1-08002BE10318}\0001 должен ссылаться на 0001,а не 0000. То есть на раздел который мы создали на предыдущем шаге.
 
его можно достаточно быстро создать, скопировав с похожей ветки HKLM\SYSTEM\CURRENTCONTROLSET\ROOT\PCI_HAL\0000\ и заменить значения параметров как на картинке. Раздел \0000\Control  содержит одну переменную :
    DeviceReported = 1 тип DWORD
Раздел LogConf пустой.
Далее создаем раздел: http://aceq.by.ru/core/4.jpg
 
находим в дистрибутиве файл acpi.sys и копируем его в \system32\drivers\ , так как в случае не ACPI ядра его там нет.
Далее создаем в реестре раздел: http://aceq.by.ru/core/5.jpg
 
Далее создаем раздел: http://aceq.by.ru/core/6.jpg
 
Заметим параметр:
Driver={4D36E97D-E325-11CE-BFC1-08002BE10318}\0004
0004 -это irq на котором будет сидеть устанавливаемое сейчас нами устройство DeviceDesc=Microsoft ACPI-совместимая система. Возможно оно уже занято, это выяснится ниже и что делать тоже.
создаем также здесь, два пустых раздела :
\PNP0C08\0\Control
\PNP0C08\0\LogConf
 
Далее создаем раздел: http://aceq.by.ru/core/7.jpg
 
Далее создаем раздел: http://aceq.by.ru/core/8.jpg
 
значение разделов 0001, 0002, 0003 итд, в этом разделе являются значениями IRQ на которых сидят установленные устройства и может так быть что 0004 как я писал выше уже занят каким либо устройством. Что делать. Поищите в разделах 0001,0002,0003 итд  устройство "Встроенный динамик".  пусть это будет папка 0005 удалите ее содержимое и заполните так как на картинке раздел \0004. соотвественно нужно будет вернуться в раздел в котором я обращал внимание на параметр Driver={4D36E97D-E325-11CE-BFC1-08002BE10318}\0004 и поменять на  
Driver={4D36E97D-E325-11CE-BFC1-08002BE10318}\0005 . Этими манипуляциями мы создали в системе новое ядро-сырец и устройство "Microsoft ACPI-совместимая система" ,которое будет находиться в системных устройствах, как показано на картинке : http://aceq.by.ru/core/9.jpg
 
После перезагрузки в  диспетчер оборудования-компьютер появится запись "Многопроцессорный компьютер с ACPI", помимо "Стандартный компьютер".
Осталось это ядро-сырец превратить в полноценное и активировать. выберите обновить драйвер у ядра "Многопроцессорный компьютер с ACPI", в списке ядер выберите опять же "Многопроцессорный компьютер с ACPI" и после перезагрузки WINDOWS заработает на этом ядре. Удалять неактивное ядро опять же не рекомендую по аналогии с первым пунктом.  
 
Из всего написанного можно сделать вывод, что лучше изначально устанавливать windows с ядром с ACPI , так как обновить его на любое другое можно достаточно быстро. А если выполняется операция клонирования windows и ставится ядро "Стандартный компьютер" то второе неактивное ядро удалять не нужно. так как  если компьютер изначально имел ACPI ядро то потом после клонирования , можно будет вернуть обратно ядро ACPI на новой машине, путем всего лишь "обновить драйвер" .даже редакция hardwareid в этом случае зачастую не нужна.
 
вообще даже бывает что по три ядра как бы устанавливается в windows. одно активное и два одинаковых неактивных.  
это связано с значениями чисел 0000 и 0001 в  разделах  
...\enum\root\acpi_hal\0000 и в параметре driver={4D36E966-E325-11CE-BFC1-08002BE10318}\0001 который в нем.
лишнее 3 ядро можно удалить, правда если просто через "удалить" в диспетчер оборудования, то оно опять определится после перезагрузки. остается через реестр.
 
 
Также хочу сказать как перед заменой ядра обеспечить пути отступления. можно загрузиться с winpe , сохранить system32\config,  system32\drivers,  system32\hal.dll , ntoskrnl.exe, ntkrnlpa.exe и в случае неудачи переписать файлы обратно. Но этот вариант не всегда применим, например, в случае когда бутовый раздел зашифрован с помощью drive crypt plus pack. Есть другой путь, сохраним необходимые компоненты ядра виндовс и ветку реестра которые позволят в случае краха спокойно загрузиться со старым ядром.  
 
Сохраняем  отдельно  файлы hal.dll , ntoskrnl.exe, ntkrnlpa.exe, переименовываем их  ----->halchk.dll , ntoschk.exe, ntknlpachk.exe. и записываем обратно в \system32
 
добавляем в boot.ini строку
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /fastdetect /kernel=ntoschk.exe /hal=halchk.dll
 
Далее переустанавливаете ядро. Перед последней перезагрузкой проверьте лежит ли acpi.sys в \system32\drivers\, Иногда при установке не ACPI ядра он удаляется и становится невозможным откат  с помощью этого метода обратно к исходному ACPI ядру.  
 
Если новое ядро не пошло , то жмете F8 выбираете пункт «загрузка последней удачной конфигурации» жмете enter и выбираете строчку где мы добавили  ntoschk.exe halchk.dll.  
 
Так же хотелось бы обратить внимание на утилиту Advanced Last Known Good которую написал Oleg V. Golub., она   позволяет сохранять ветку реестра на которую ссылается HKEY_LOCAL_MACHINE\SYSTEM\Select\ LastKnownGood сколько угодно долго нетронутой.
 
Вот как сам автор описывает  рациональность его утилиты ; Часто система  
рушится при попытке программ пользовательского уровня  
получить доступ к процессам ядра ОС или активизировать  
драйверы или фильтры, установленные самой программой.  
Но "хорошая" конфигурация уже сохранена, но не является
таковой! Причем, если программа, использующая драйверы,  
запускается из StartUp или из  
"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",
то требуется цирковая ловкость, чтобы остановить  
процесс до крушения системы.»  
 
 

Всего записей: 57 | Зарегистр. 15-08-2006 | Отправлено: 14:51 18-12-2006 | Исправлено: sql7, 18:12 21-12-2006
allein



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне помог вот этот вариант:

Цитата:
теперь я знаю как еще быстрее изменить тип компьютера с "Стандартный компьютер" на "Компьютер (Многопроцессорный компьютер) с ACPI".
1.в acpi.inf закомментировать строку
ExcludeFromSelect = *
 
2. в hal.inf строки
%ACPIPIC_UP.DeviceDesc% = ACPIPIC_UP_HAL, ACPIPIC_UP, ACPIAPIC_UP, ACPIAPIC_MP
%ACPIAPIC_MP.DeviceDesc% = ACPIAPIC_MP_HAL, ACPIAPIC_MP, ACPIAPIC_UP
изменить на
%ACPIPIC_UP.DeviceDesc% = ACPIPIC_UP_HAL, ACPIPIC_UP, ACPIAPIC_UP, ACPIAPIC_MP E_ISA_UP, MPS_UP, MPS_MP
%ACPIAPIC_MP.DeviceDesc% = ACPIAPIC_MP_HAL, ACPIAPIC_MP, ACPIAPIC_UP, E_ISA_UP, MPS_UP, MPS_MP, ACPIPIC_UP
 
3. диспетчер устройств-тип компьютера-обновить драйвер-"Компьютер(Многопроцессорный компьютер) с ACPI". не перезагружаем.
4. установка нового оборудования-системные устройства-Microsoft-Microsoft ACPI совместимая система. не перезагружаем.
5. SYSTEM\Current Control Set\Enum\Root\SYSTEM удаляем подраздел в котром device desc="Microsoft ACPI совместимая система"
6. перезагрузка.готово.  
Взято с http://aceq.by.ru/ru/smena-tipa-komputera/smena-tipa-komputera.htm
 
Только перед тем как что-то менять лучше сделать копии ядра(ntoskrnl.exe) и HAL(hal.dll), назвать из типа ntoskchk.exe и halchk.dll
И создать в C:\boot.ini "запасной" вариант для загрузки:

Цитата:
 
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional CHK" /noexecute=optin /fastdetect /usepmtimer /kernel=ntoskchk.exe /hal=halchk.dll
 

Всего записей: 835 | Зарегистр. 09-02-2006 | Отправлено: 09:15 30-06-2010 | Исправлено: allein, 09:16 30-06-2010
HDD



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sql7
Эти все манипуляции посвящены созданию "железонезависимого" образа ОС?  
То смотри карту в подписи. И там раздел.  

Цитата:
Перенести, скопировать ОС на другой диск\компьютер
 
Клонирование Windows: Ghost, True Image, Sysprep [?] *  
Перенос системы на другую мать [?] *



----------
Мир есть Текст
The Show Must Go On
Карта раздела «Microsoft Windows»

Всего записей: 14819 | Зарегистр. 15-03-2003 | Отправлено: 09:27 09-07-2010
Yut2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос такой, есть смысл смены "Компьютер с ACPI" на "Многопроцессорный компьютер с ACPI"? (проц многоядерный) Или это актуально только при клонировании? (смена "стандартного компьютера")? Если есть то какие + в результате получу?

Всего записей: 149 | Зарегистр. 01-07-2009 | Отправлено: 10:24 09-07-2010
HDD



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Или это актуально только при клонировании?

Только

----------
Мир есть Текст
The Show Must Go On
Карта раздела «Microsoft Windows»

Всего записей: 14819 | Зарегистр. 15-03-2003 | Отправлено: 01:44 10-07-2010
ghosty



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
allein

Цитата:
Мне помог вот этот вариант:

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

Цитата:
Только перед тем как что-то менять лучше сделать копии ядра(ntoskrnl.exe) и HAL(hal.dll), назвать из типа ntoskchk.exe и halchk.dll  
 И создать в C:\boot.ini "запасной" вариант для загрузки:

И это тоже не сработало, и даже понятно, почему....

----------
пропадет-растает

Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 13:28 15-09-2011
sql7

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
To ALL:
 
Рекомендую посмотреть обновленную инфо по данному и смежным с ним вопросам с другого моего сайта вот эти ссылки:
 
Смена типа компьютера (смена ядра+HAL) в windows xp sp2 без переустановки заново или поверх.
 
Перенос windows на новый дисковый контроллер (SCSI,RAID,PATA,SATA) без переустановки заново или поверх
 
Установка Windows на AHCI/ SATA RAID без флоппика
 
Установка Windows с USB CD-Rom привода
 
Замена драйвера IDE/SATA контроллера на Стандартный контроллер через реестр
 
Загрузка Windows c USB флэшки и ошибка STOP 0x7b
 
 
 
To HDD

Цитата:
Эти все манипуляции посвящены созданию "железонезависимого" образа ОС?  

Нет. От этих манипуляций виндовс не станет "железонезависимым"
 
To Yut2
 

Цитата:
Вопрос такой, есть смысл смены "Компьютер с ACPI" на "Многопроцессорный компьютер с ACPI"? (проц многоядерный) Или это актуально только при клонировании? (смена "стандартного компьютера")? Если есть то какие + в результате получу?

 
Если вы знаете что проц много ядерный а виндовс при установке каким то макаром поставило однопроцессорное ядро то конечно нужно добиться чтоб стало "Многопроцессорный компьютер с ACPI" При клонировании эти  вышеописанные манипуляции могут иметь смысл.  Пример с работы - был комп на котором винда работала только под НЕ ACPI ядром. Ну то есть даже ставишь ее с нуля а она в синий экран или виснет, обновление биос не помогало или его вообще уже тогда не найти было не помню. А вот тыкнешь F5 при установке выберешь не ACPI ядро (ну hal конечно я имею ввиду) и винда устанавливается без проблем.  Ладно  - суть в том что на компе винда не работала под ACPI ядрами. и нужно было заставить запуститься винду уже устанолвенную и  с кучей устанолвенных и настроенных прог на этом компе. Винда была с заведомо компа с ACPI ядром. Вот тут и нужно поменять это самое ядро.
 
to allein

Цитата:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional CHK" /noexecute=optin /fastdetect /usepmtimer /kernel=ntoskchk.exe /hal=halchk.dll  
 

 
Если вы в виндовс сделаете изменения по изменению типа компьютера в диспетчере устройств с одного типа на другой но при этом они увенчаются не успехом то такой прием к сожалению не позволит запуститься, потому что файлы то вы винде подсунете прежние но в реестре данные будут новые. это сработает если в ветке реестра к которому обратиться винда по тыкании на last good boot бла бла бла будет старая ветка . только в этом случае : правильный nt*.exe hal*.dll + ветка в рееестре позволит успешно запуститься.
 
to hdd

Цитата:
Цитата:Или это актуально только при клонировании?  
 
 
Только

 
Это актуально не только при клонировании. Часто было по крайней мере хотя бы год назад. Ставишь винду на однопроцессорный комп а винда выбираем тип компьютера "многопроцессрныый комп с одним процессором" вместо "компьютер с acpi". зачем. в этот комп еще процессоров больше не втыкнешь. в этом случае более рационально изменить на "компьютер с acpi".
 
да и с клонированием эта процедура не связана. то есть при клонировании эти манипуляции делаются если они реально нужны. а нужны они не во всех случаях.
 
 
На данный момент  скажу так - что старые компы что новые они щас все идут многопроцессорные с acpi я имею ввиду когда старый комп выбрасывают а новый покупают ведь тогда то и начинают шарить в поисках как винду заставить на новом железе работать. так вот там этого того что выше делать не нужно. нет в этом необходимости.
 
единственное из за чего виндовс не запускается это другой - отличный контроллер жетских дисков и знаменитая ошибка stop 0x7b.
 
но она обходится по другому.
 
 
 

Всего записей: 57 | Зарегистр. 15-08-2006 | Отправлено: 20:54 18-12-2011 | Исправлено: sql7, 20:56 18-12-2011
HDD



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Ставишь винду на однопроцессорный комп а винда выбираем тип компьютера "многопроцессрныый комп с одним процессором" вместо "компьютер с acpi". зачем. в этот комп еще процессоров больше не втыкнешь. в этом случае более рационально изменить на "компьютер с acpi".

Зачем? Что это изменит?

----------
Мир есть Текст
The Show Must Go On
Карта раздела «Microsoft Windows»

Всего записей: 14819 | Зарегистр. 15-03-2003 | Отправлено: 23:47 18-12-2011
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » алгоритм смены ядра в WINDOWS XPSP2 без переустановки заново


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru