NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
查看: 6080|回復: 14

[問題] 關於USB工具碟進PE前的選單內容修改

[複製鏈接]
發表於 2016-5-5 11:50:12 | 顯示全部樓層 |閱讀模式
各位好:
個人接觸PE時間不長,
平時仰賴以前朋友給的一顆USB工具硬碟在做基礎的電腦檢測~
那顆工具碟在進PE前還有個簡易的分類選單
簡單舉例
1. 安裝XP
2. 安裝WIN7
3. 資料備份工具
4. 記憶體檢測工具
5. 8.1PE
等...

那這一陣子想把時代的眼淚XP的安裝檔給替換成WIN8.1。
那看依照工具碟的附註說明去做ISO的替換,
(備註提示是直接更改ISO的檔名去做覆蓋,就可以自行調整想安裝的系統)
之後測試選單,可選,也進了安裝畫面,
但跳轉時卻出現了類似"缺少必要的驅動程式"的對話方塊~

(同一台電腦以光碟方式執行win8.1安裝正常無問題,ISO檔確定無損壞)

去爬文及詢問其他人後,
有某個朋友提出說 XP執行安裝boot的Loader與WIN8的Loader不相同
所以有可能是這方面出現問題,得要在工具碟內容裡的這方面去做修正
但因為這區塊他也沒有很熟,所以建議我來NoName這邊尋求高手協助!

想要請教各位大大,是否對這方面有所涉略或者操作經驗可以分享~
感激不盡!


發表於 2016-5-5 20:30:10 | 顯示全部樓層
本帖最後由 2567288 於 2016-5-5 21:32 編輯

windows NT6.x (˙7/8/8.1/10) 的安裝程序
bootmgr --> bcd --> boot.wim --> install.wim (在 soruces 目錄內)
除了 install.wim 要在 sources 目錄下 , sources 目錄內至少還要有個相匹配的 setup.exe

您的情況應該是 win8.1 的安裝程序 , 也去讀 sources 目錄下的 install.wim 及 setup.exe , 但是 setup.exe (可能是 win7的) 跟 win8.1 不匹配 , 才會有[缺少必要的驅動程式"的對話方塊]的情況
這個只能去修改 win8.1 的 boot.wim 讓它去引導不同地方的 install.wim

附件的訂製批次檔可以參考看看
訂製批次檔 : win_7_81_10_boot_20160214.rar (繁中)
訂製 boot.wim 引導訂製目錄內的 install.wim (install.esd or install.swm + install2.swm.....)
------------------------------------------------------------------------------

├─bootwin
│   │  
│   ├─w10
│   │      boot.wim    ==>  winsetup\w10\x86\install.wim (install.esd or install.swm + install2.swm.....)
│   │      boot64.wim  ==>  winsetup\w10\x64\install.wim (install.esd or install.swm + install2.swm.....)
│   ├─w70
│   │      boot.wim    ==>  winsetup\w70\x86\install.wim (install.swm + install2.swm.....)
│   │      boot64.wim  ==>  winsetup\w70\x64\install.wim (install.swm + install2.swm.....)
│   └─w81
│          boot.wim    ==>  winsetup\w81\x86\install.wim (install.esd or install.swm + install2.swm.....)
│          boot64.wim  ==>  winsetup\w81\x64\install.wim (install.esd or install.swm + install2.swm.....)
│         
├──winsetup
│   │
│   ├─w10
│   │  ├─x64
│   │  │      install.wim (install.esd or install.swm + install2.swm.....)  
│   │  └─x86
│   │         install.wim (install.esd or install.swm + install2.swm.....)
│   ├─w70
│   │  ├─x64
│   │  │      install.wim (install.swm + install2.swm.....)
│   │  └─x86
│   │         install.wim (install.swm + install2.swm.....)
│   └─w81
│       ├─x64
│       │     install.wim (install.esd or install.swm + install2.swm.....)
│       └─x86
│             install.wim (install.esd or install.swm + install2.swm.....)
│            
------------------------------------------------------------------------------





本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?我要註冊

x
發表於 2016-5-6 04:32:42 | 顯示全部樓層
本帖最後由 阿達金田一 於 2016-5-6 04:37 編輯

原因...樓上 2567288 大 已經說了
是 setup.exe 的問題...
但我覺的...應該不是不匹配...而是
根本沒找到 setup.exe 和 nstall.wim... 因為找不到所以出現 "缺少必要的驅動程式"

簡單說 grub4dos map iso ... 進 windows 或 pe 後...就沒做用了
而 PE 一般都是用 windows 本身的 ramdisk 來加載 ... 所以 PE 本身... win核心 可以支援
因此...可是進入 PE ... 但 PE(win核心)... 不支援 grub4dos map iso ... (不然就是要加裝相對的 Driver)

而樓主...說了...是把原本的 xp 換成 win8.1 iso
所以猜想...他那個 usb... 大概都是用 map iso 來安裝...
xp iso 可能有裝 firadisk drivers 或是 map firadisk F6 img
如果 win7 也是 iso... 我想那個 win7 iso 應該也是有處裡過的...

樓主先看一下... 你 win7 是不是 iso
usb 中有沒有 /sources 這個目錄 ...其中有沒有 win7 安裝檔 (setup.exe 和 install.wim)

如果有 usb:/sources/setup.exe 和 install.wim
那問題就是...2567288 大 說的
如果沒有... xp 和 win7 都只有 iso ...那就是 我說的...根本找不到 /sources/setup.exe 和 install.wim

簡單的說...這類 工具開機碟(光碟)...大多是用 grub4dos 之類的開機管理程式
這類程式...多是直接調用 bios .. 所以算是 bios 程式
其 掛載(map) iso 的...虛擬裝置 功能... 主要也只是作用在 bios 上
而這是有可能會被清理掉的...而且...就算沒有清理掉...也要看其它 OS 有沒有支援 (一般可以加裝 Driver 來支援)
NT6 XP 核心...本身不會清掉 grub4dos map ... 但 XP核心 要安裝相對的 Driver ... (就像 sata 也要 sata drivers)
NT6 核心 ... 則會清掉 grub4dos map ... 所以 grub4dos map 在 ... NT6 上...並沒有作用

所以若是你只是換成 win8.1 iso 並沒用...那只是可以進入到 win8.1 iso 的 安裝PE
而 PE 本身啟動是用 windows ramdisk 所以... PE 本身可以識別 pe(boot.wim) 的 ramdisk  x:

通常比較簡單的方式..是把 iso 中的 \sources 目錄...整個提取出來...就好了
因為 NT6 的安裝檔都在 \sources ...
所以從 iso 中...提取出來直接放到 USB 上... 安裝PE 的 setup.exe 就可以找的到
但...這只適合 單個 NT6 安裝...
2個 \sources 就有衝突了...除非像 2567288 大 說的 修改 boot.wim 讓它去引導不同地方的 install.wim(簡單說...還是要處理過)

NT6 ISO 的 安裝PE...原始流程我補充一下
pe (boot.wim) -> x:\sources\setup.exe (pe 自帶的 setup.exe) -> find:\sources\setup.exe -> find:\sources\install.wim

find:\ 是指... x:\sources\setup.exe  會自動去尋找 ... 所有可用磁碟中...有沒有 安裝檔
而只要後2個...有問題... 不匹配 或 找不到 ... 都會 "缺少必要的驅動程式"
這大概是因為...
setup.exe 會以為找不到 安裝檔 sources\setup.exe 和 install.wim
而找不到...是因為沒 SRS(Sata Raid SAS) Driver ... 所以 安裝檔 所在的 裝置 不能用

總而這之...直接用 win8.1 iso 沒用
要嘛改一下 win8.1 iso 中的 安裝PE ( boot.wim )
要嘛...把 \sources 提取出來...放到 usb 中...
如果你 usb 的 win7 iso 不是用提取 \sources 麼招...那你 win8.1 iso 可以用這招...
發表於 2016-5-6 09:23:49 | 顯示全部樓層
我現在都懶的用 微軟 給的 SETUP 安裝系統了
我只要把 要安裝的 版本 打包成 WIM
進入 PE 後 直接用 NT6.X 安裝器 或是 DISM++ 直接安裝WIM 檔案
這樣處理感覺比較快,以SSD 來說,整個過程只需要 3~5分鐘左右
就算是 HDD ,頂多只要 15分鐘,之後重開機,修改開機順序用硬碟開機
等第一次開機完成,系統就整個裝好了
還有 WIM 安裝前記得要整合更新,整合驅動,這兩個作了之後
安裝完,就不需要更新以及安裝驅動了,就算需要,時間也會縮短很多
 樓主| 發表於 2016-5-6 09:31:55 | 顯示全部樓層
TO [2567288]大大:
大概的意思我了解了,
所以是不是我需要先把WIN81.ISO先提取出boot.wim,
進行大大所說的修改,之後替換boot.wim再重新整合一個ISO ?
但原諒我接觸時間不久,不確定是不是我想的那樣 ↑
不嫌麻煩的話,是不是可以稍微進一步詳解,感激不盡!

TO [金田一]大大:
我翻了一下那個工具硬碟,
發覺她確實沒有WIN7.ISO,而是如你所說的有
usb:/sources/setup.exe 和 install.wim~

所以大大最後所提的假設WIN7不是sources提取,
那WIN8就可以用sources提取的情況,就可能沒辦法並存,
而必須採用[2567288]大大的方式囉?
 樓主| 發表於 2016-5-6 11:35:04 | 顯示全部樓層
JonesLee 發表於 2016-5-6 09:23
我現在都懶的用 微軟 給的 SETUP 安裝系統了
我只要把 要安裝的 版本 打包成 WIM
進入 PE 後 直接用 NT6.X ...

有一點深奧...可能得要研究一陣子~XDDD
發表於 2016-5-6 13:17:49 | 顯示全部樓層
q00112233 發表於 2016-5-6 09:31
TO [2567288]大大:
大概的意思我了解了,
所以是不是我需要先把WIN81.ISO先提取出boot.wim,

沒錯...你有看懂

其實做法有很多種...不過總結來說就是
1. 改不改 boot.wim
2. 用什麼方法可以取得 install.wim 來使用

1. 改不改 boot.wim
不改 PE boot.wim ... 也可以每次安裝時 進PE 手動下指令
改 PE 其實就是把這些指令...寫成 cmd ... 然後修改 PE 原本第一個執行的動作(setup.exe)
改成去執行 cmd ( 2567288大 的那個是 setup.cmd )

2. 用什麼方法可以取得 install.wim 來使用
掛載 iso 或 提取 install.wim 直接用
簡單說...有 install.wim 可以用就好了

2567288大 的方式是 直接用 install.wim
利用 setup.exe 的 /installform: 參數...來改變 setup.exe 執行時... install.wim 的來源路徑
例如
usb:\win81\install.wim
( usb: 為 usb 所用磁碟代號 )
可以執行 setup.exe /installform:usb:\win81\install.wim
而不是用原始的 \sources\install.wim

若是要用 iso 則要去找可以在 PE 下 掛載ISO 的程式 (最好是可以下指令的)
 樓主| 發表於 2016-5-6 18:06:47 | 顯示全部樓層
阿達金田一 發表於 2016-5-6 13:17
沒錯...你有看懂

其實做法有很多種...不過總結來說就是

那其實換句話說我是不是可以提取出WIN81.ISO裡的sources
丟到特定資料夾下,
當我執行WIN8.1安裝又跳出"缺少必要驅動"時,
指向那個資料夾去尋找的話是不是能夠解決?
(這只是突然一個小想法,如果見笑了請多包涵)
發表於 2016-5-6 18:33:51 | 顯示全部樓層
q00112233 發表於 2016-5-6 18:06
那其實換句話說我是不是可以提取出WIN81.ISO裡的sources
丟到特定資料夾下,
當我執行WIN8.1安裝又跳出" ...

不是這樣的...
之所以會出現 "缺少必要驅動"
是因為 setup.exe 找不到 安裝檔 的位置...所以判斷因為沒有 來源裝置 的 Driver...導致裝置無法使用

那意思就是...如果拿 XP光碟來舉例...
假設 光碟是 sata 光碟...而 XP 沒有 Sata Driver...那你用 XP 光碟安裝...大概是直接藍屏給你看
這是因為 XP 的安裝...雖然也算是 PE(1.x) (只不過是 TEXTMODE)...但並不是用 ramdisk
在 XP 光碟...在切換到 XP 核心前...還是 Bios 模式(核心)時
可以看到...會載入核心和Drivers...之後才會切換
而切換到 XP 核心後...裝置的控制都是用 Driver...所以因為沒 Sata Driver ... 所以就會藍屏

而 NT6 好一點...因為 NT6 PE(2.0)...是用 ramdisk 加載
所以只要 Bios 模式 開機無誤(其實就是 bootmgr 去載入 wim 建立 ramdisk)
PE 都是進的去...
但是一樣...如果 PE 沒有可用的 SRS Driver ... 安裝來源裝置 也一樣會讀不到 (只是像 XP 一樣會藍屏而以)

所以 "缺少必要驅動" 是你要安裝驅動...以讓你的 安裝來源裝置 可以使用
而不是用來指定 wim 位置...
發表於 2016-5-6 20:06:53 | 顯示全部樓層
本帖最後由 2567288 於 2016-5-6 21:28 編輯
q00112233 發表於 2016-5-6 18:06
那其實換句話說我是不是可以提取出WIN81.ISO裡的sources
丟到特定資料夾下,
當我執行WIN8.1安裝又跳出" ...

用 grub4dos 掛載 windows nt6.x 的iso 檔(含 sources 目錄下的 install.wim) , 一般用的語法
map (hd0) (hd1)
map (hd1) (hd0)
map /windows.iso (0xff)
map --hook
chainloader (0xff)
執行的結果會因為光碟仿真失效 , 肯定出現"缺少必要的驅動程式"的對話方塊

所以一般都是把原來的 iso 檔 , 拆成
windows.iso (不含 sources 目錄下的 install.wim) + sources 資料夾 (install.wim + setup.exe)

如果同時要有三種系統 win7 win8.1 win10
(1) win7.iso + sources 資料夾( install.wim + setup.exe)
(2) win81.iso + sources 資料夾( install.wim + setup.exe)
(3) win10.iso + sources 資料夾( install.wim + setup.exe)

以上的三種 sources 資料夾 , 不可能同時存在 , 所以建議的做法 , 修改 windows.iso 中 boot.wim 的第二個映像卷 , 讓它用指定目錄下的 install.wim 來安裝 , 修改完 boot.wim 後 , 放回 windows.iso 中

windows 8.1的情況
win81.iso + xxxxxxxx 目錄下的 install.wim (不需要 setup.exe)

上述的批次檔(setup.cmd) , 紅色為 win81 32 位元指定的目錄 , 如果要指定不同目錄 , 自己改一下
@echo Finding Install Image..
@echo off
:loop
for %%a in (c d e f g h i j k l m n o p q r s t u v w y z) do (if exist %%a:\winsetup\w81\x86\install.wim x:\sources\winsetup.exe /installfrom:%%a:\winsetup\w81\x86\install.wim &exit)
for %%i in (c d e f g h i j k l m n o p q r s t u v w y z) do (if exist %%i:\winsetup\w81\x86\install.esd x:\sources\winsetup.exe /installfrom:%%i:\winsetup\w81\x86\install.esd &exit)
for %%b in (c d e f g h i j k l m n o p q r s t u v w y z) do (if exist %%b:\winsetup\w81\x86\install.swm x:\sources\winsetup.exe /installfrom:%%b:\winsetup\w81\x86\install.swm &exit)
goto loop

按照上面批次檔 , 整合的安裝光碟


















本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?我要註冊

x
您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

小黑屋|手機版|NoName Team 電腦資訊討論區 |網站地圖

GMT+8, 2025-8-19 00:25 , Processed in 0.093942 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表