史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 系統 & 硬體安裝及故障判斷技術文件
忘記密碼?
註冊帳號 論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-04-18, 02:30 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 電腦硬體抽像層HAL(電源模式)的完美解決

電腦硬體抽像層HAL(電源模式)的完美解決
帖子原創是:
微軟破解中心

以下內容由
可愛的家
整理和增加遺漏
QUOTE:
微軟官方背景資料:
如何通過Sysprep準備磁牒複製所需的映像
Windows 如何確定 ACPI 相容性
安裝 Windows XP 或 Windows Server 2003 之後的 HAL 選項
眾所周知,微軟原有的系統封裝工具SYSPREP,可以方便快捷地進行企業產品佈署,
但是在WINDOWS LONGHORN之前,運用SYSPREP有一個限制,
就是僅適用於用於封裝的源電腦和目標電腦必須具有相同硬體抽像層 (HAL)
QUOTE:
因此,不同的網友均提出了不用的HAL檢測解決方案,如ACPI封包、死性不改的電源模式等等,
這些解決方案不同程度存在幾個缺點:
1、檢測的相容性無法達到100%;
2、檢測需要額外的文件,並且可能需要重新啟動電腦,耗費了時間;
QUOTE:
有沒有一個最完美的解決方案呢?答案其實就在微軟未公開的技術。
筆者通過對於WINDOWS LONGHORN各內測版本進行分析,現在公開微軟部分未公開的技術:
1、微軟自WINDOWS LONGHORN後,改寫了NTLDR的部分程式碼,提供了/detecthal 接頭
2、BOOT.INI支持/detecthal參數,以實現與NTLDR的結合,
並實現開機啟動即自動檢測 HAL
3、\INF\dtecthal.inf是一個關鍵性文件,提供各種HAL檔案類型檢測的參數說明
以下為進行SYSPREP封裝後的自動完美檢測HAL具體實現方案:
1、從系統中抽取相應的HAL文件包:
(WIN2000在SP4.CAB/WINDOWS XP SP2在SP2.CAB/WINDOWS 2003在SP1.CAB)
halacpi.dll
halapic.dll
halmps.dll
halaacpi.dll
halmacpi.dll
hal.dll---->並更名為halstnd.dll
ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe---->並更名為ntkrnlup.exe
2、將上述相應的HAL文件包拷貝到系統\WINDOWS\SYSTEM32\(WINDOWS 2000為\WINNT\SYSTEM32\)
3、將以下程式碼儲存為dtecthal.inf並拷貝到\WINDOWS\INF\(WINDOWS 2000為\WINNT\INF\)
如果不可見,可在資料夾選項裡在「顯示所有的文件和資料夾」打上勾和「隱藏受保護的系統檔案」去掉勾。
[Version]
signature="$Windows NT$"
DriverVer=07/01/2001,5.1.2600.2180
[hal]
acpipic_up = halacpi.dll
e_isa_up = halstnd.dll
mps_up = halapic.dll
mps_mp = halmps.dll
acpiapic_up = halaacpi.dll
acpiapic_mp = halmacpi.dll
;
;
;-------------------------------------------------------------------------
; Auto detecd Computer HAL with BIOS information
;-------------------------------------------------------------------------
; Copyright(R)1980-2005 Microsoft Crack Center MCC(1980-2005)
;
; tesk work by mstest@MCC 20050515
;
;
mstested@hotmail.com
;-------------------------------------------------------------------------
;
;
; [ACPIOptions]
; This section lists options that affect the installation of ACPI on x86
;
; ACPIEnable
; 0 - ACPI will be disabled at install time regardless of the BIOS
; 1 - ACPI will be enabled at install time if an ACPI BIOS is present
; 2 - ACPI will be enabled based on the GoodACPIBios list, the NWACL
; and ACPIBiosDate
;
; ACPIBiosDate = mm,dd,yyyy
; Supplies the date that a BIOS must have to be considered good if it is
; not in the GoodACPIBios list. If a BIOS has a date greater than this and
; is not in the NWACL list, then it will be used unless ACPIEnable = 0
;
[ACPIOptions]
ACPIEnable = 2
ACPIBiosDate = 01,01,1999
4、修改BOOT.INI
在準備封裝的系統後面加上 /DETECTHAL參數
如:
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /detecthal
5、將LONGHORN版本的NTLDR拷貝到從C:\,覆蓋原有的NTLDR
各位也可以參考上傳附件中的文件包(包含NTLDR、DTECTHAL.INF、BOOT.INI示例)
可愛的家的補充:
只要在在SYSPREP完成後,移除的註冊表裡面的舊HAL訊息就可以自動識別了。
沒有成功的朋友可以試試.
HAL的訊息的註冊表的位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL
先修改權限,然後移除就可以了
只要在SYSPREP後移除鍵值重啟就可以自動識別了
下面為進行SYSPREP的操作步驟:
1:用mcc的方法覆蓋文件
2:修改Boot.ini
3:更改電源管理為Standard PC
4:更改IDE控制器為標準雙通道 PCI IDE 控制器
5:Sysprep封裝,選結束
6:移除XXX.HAL:
7:重新啟動做GHO
注意:本地機恢復會無法識別的,只是Standard PC,
但我覺得沒什麼影響,可以正常開關機的
2000本人沒有測試,具體詳情大家可以一起探討
文中提到的文件下載[建議用下載工具]:
點擊下載

沒有成功的朋友可以試試.
移除HAL的訊息的註冊表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root
下面的ACPI_HAL,
只要在SYSPREP後移除這個鍵值重啟就可以自動識別了


補充:有人問到:電腦硬體抽像層HAL(電源模式)
抽像層指的是什麼,有什麼樣的定義?
在複製安裝系統中提到了HAL。
這裡所說的HAL就是在WINDOWS 2000/XP/2003中裝置管理員裡檢視到的電腦下面顯示的訊息。
共有以下8種
"Standard PC"
"Advanced Configuration and Power Interface (ACPI) PC"
"ACPI Uniprocessor PC"
"ACPI Multiprocessor PC"
"MPS Uniprocessor PC"
"MPS Multiprocessor PC"
"Silicon Graphics Visual Workstation"
"Compaq SystemPro Multiprocessor or 100% Compatible"
其中前6種是這三種作業系統都支持的。
"Silicon Graphics Visual Workstation"
只有WINDOWS 2000系統支持,是SGI的。
"Compaq SystemPro Multiprocessor or 100% Compatible"是ALPHA處理器專用的,
在WINDOWS 2000/XP都提供了支持,但是最新的WINDOWS 2003已經不在支持這種處理器。
作業系統最後識別出來的的HAL檔案類型,需要主機板晶片組、主機板BIOS、CPU同時都支持,
其中有一個不能支持,就將會被識別成其它檔案類型,或者識別出來不能進入系統,導致啟動顯示藍色。
後面這兩種系統很可能連Standard PC都不相容。
剩下的6種HAL的區別
主要就在系統是否支持ACPI(進階電源管理接頭)和APIC(進階可編程中斷控制器)上。
不同bios支持的不同,就會導致,最終識別出來的檔案類型不同。
以前Climbing所寫的都是以前的總結經驗,但是這個不能作為判斷的標準。
比如,P3機器也有ACPI Multiprocessor PC和ACPI Uniprocessor PC,
比如支持雙處理器的主機板,及一些工作站的主機板等。
P4的機器,也可能是Advanced Configuration and Power Interface (ACPI) PC和Standard PC,原因可能是早期BIOS不完善,BIOS設定被關閉。
==============================
ACPI Multiprocessor PC
==============================
當電腦識別出來是此檔案類型,說明你的系統是多處理器或者支持HT(超執行緒)處理器,
並且主機板和主機板的BIOS支持並開啟APIC和ACPI
ACPI Multiprocessor PC=APIC+ACPI+多處理器(包括支持HT處理器)
==============================
ACPI Uniprocessor PC
==============================
這是當前最為一般的檔案類型,主機板和主機板的BIOS支持並開啟APIC和ACPI,系統是單處理器。
ACPI Uniprocessor PC=APIC+ACPI+單處理器(不包括支持HT處理器)
============================================================
Advanced Configuration and Power Interface (ACPI) PC
============================================================
這是以前比較一般的檔案類型,系統只提供了對ACPI的支持。主機板和主機板的BIOS支持並開啟ACPI。
並且沒有開啟APIC,或者主機板不支持APIC
==============================
MPS Multiprocessor PC
==============================
伺服器上比較一般,這個是不支持ACPI的,對應ACPI Multiprocessor PC
MPS Multiprocessor PC=APIC+多處理器(包括支持HT處理器)
==============================
MPS Uniprocessor PC
==============================
我猜測,這個在以前的工作站上比較多,同上面一樣不支持ACPI,對應ACPI Uniprocessor PC
MPS Uniprocessor PC=APIC+單處理器(不包括支持HT處理器)
=================
Standard PC
=================
哈哈,古老的電腦都是這個檔案類型的,既不支持ACPI,也不支持APIC。
注意,很多P3主機板由於BIOS預設值沒有開啟ACPI功能,
也會識別成Standard PC,導致點擊電腦關機後,系統提示你手動電腦關機電源。
從這裡可以發現,ACPI Uniprocessor PC相容ACPI Multiprocessor PC
(也就是說,ACPI Multiprocessor PC的系統也可以使用ACPI Uniprocessor PC)。
Advanced Configuration and Power Interface (ACPI) PC相容ACPI Uniprocessor PC
和ACPI Multiprocessor PC。
MPS Multiprocessor PC相容ACPI Multiprocessor PC。
MPS Uniprocessor PC相容ACPI Uniprocessor PC和ACPI Multiprocessor PC。
Standard PC相容以上5種。但是反過來,就不一定相容了。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1625 篇, 收花: 3196 次
向 psac 送花的會員:
cooldavid (2010-08-11)
感謝您發表一篇好文章
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 09:07 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2019, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1