利用Grub4Dos製作USB開機碟
直接先講整體的製作方法,簡單的說就是使用Bootice小工具指定主引導分區用Grub4Dos方案(就是用Grub4Dos來做MBR)再選擇重新格式化隨身碟(選擇USB-HDD 單分區模式),然後把grldr、menu.lst檔案複製到隨身碟根目錄,再把需要的檔案一起複製到隨身碟,最後在編輯一下menu.lst,把需要的工具塞進去就可以用了。
*********更新歷史*********
2010/01/18 – 第一次公布。
2012/05/25 – 更新資訊。
2013/04/21 – 更新資訊。
2019/01/12 – 更新資訊。
2019/04/30 – 更新資訊。
*********前言*********
我想把XP安裝片、XPE、Acronis TrueImage 還原光碟、Ghost全部塞進我的隨身碟,可是照01這篇跟著做將USB 隨身碟 製成 XP 的安裝碟 (模擬CD-ROM)才發現PeToUSB並不支援大容量的隨身碟,我的隨身碟TDK Trans-IT Edge USB 2.0 8GB不就啥都不能做了 🤖🤓🤖
後來到無憂啟動論壇找了一下發現在MSFN有個WinSetupFromUSB,這是一套超強USB隨身碟開機設定管理的GUI工具,可以很方便的管理USB隨身碟的開機設定方案,而且WinSetupFromUSB還內建兩套USB開機管理的工具可使用,我用Grub4Dos的方案來做,因為Grub4Dos真的是一套夭壽強大又簡單使用的開機程式,對我來說最棒的就是可直接讀iso檔,剛好省去像WinToFlash還要解壓的麻煩,而且我用WinToFlash製作的時候發現安裝XP的速度非常非常滴慢,慢到我白頭髮多了N根 ㊙️ 我在想應該是只有跑USB 1.1的速度,換上WinSetupFromUSB+Grub4Dos的方式製作開機碟就順暢多了 🤓
開開心心的把iso檔案通通塞進隨身碟,一般的可開機光碟都讀取且啟動正常,但是好死不死又碰到Grub4Dos無法對應非正版Windows的安裝片,原因似乎是安裝Windows時會先搜尋開機的前導檔案來讀取來源,而Grub4Dos模擬的方式就無法對應,ㄚ我的片子就是用nLite打造的,不是什麼Ghost或是還原系統或封裝光碟 =.= 還好在Google大神的指引下,發現了FiraDisk, File/RAM Disk driver for Windows.這個東東,FiraDisk可支援XP/2003/Windows 7,讓Grub4Dos可以正確的執行Windows安裝片,但是這邊要注意的是,沒有用nLite或是DriverPacks打包SATA驅動的安裝片一樣是不能用在SATA或AHCI或是RAID的唷 🤓
FiraDisk的使用方法也很簡單,只要把最新的firadisk_driver_0.0.1.18.zip下載回來再製作成img映像檔後在Grub4Dos載入Windows安裝片前先載入firadisk.img即可,另外firadisk.img搞不懂怎摸做的可以直接下載這個打包好的firadisk.img。
Win7則建議需要使用7-Zip把ISO光碟映像檔解壓到隨身碟根目錄再編輯menu.lst即可。
- BOOTICE x64 v1.3.4 beta.exe
- grub4dos-0.4.6a-2019-03-25.7z
- grub4dos-0.4.5c-2016-01-18.7z
- AcronisTrueImage2019.iso
- firadisk-driver-0.0.1.30.zip
- firadisk-driver-0.0.1.30-f6.7z
- WinSetupFromUSB v1.8.exe
這邊貼一下我製作的menu.lst範例內容,全部搞好記得先用WinSetupFromUSB跑QEMU模式做基本測試 🤓
## set vbe mode graphicsmode -1 1024 768 24:32 ## 字體及邊框顏色 color normal=0x0F highlight=0x9E helptext=0x0D heading=0xE3 standard=0x0B border=0x01 ## loading splashimage splashimage /MiSC/001.bmp ## loading font for utf-8 font /MiSC/unifont.hex.gz title -+[]+-USB系統維修隨身工具碟-+[]+- clear title 安裝 Microsoft Windows 10 Enterprise LTSC 2019 (2019-03-15) 繁體中文版 root (hd0,0) chainloader (hd0,0)/bootmgr iftitle [find --ignore-floppies --ignore-cd /iSO/nonamexpe.iso] 啟動 NoName XPE 2018 (tools241版) v20181207 map --mem (hd0,0)/iSO/nonamexpe.iso (0xff) map --hook chainloader (hd32) iftitle [find --ignore-floppies --ignore-cd /iSO/EassosRestore_220_659.iso] 啟動 易數一鍵還原 v2.2.0.659 map --mem (hd0,0)/iSO/EassosRestore_220_659.iso (hd32) map --hook chainloader (hd32) iftitle [find --ignore-floppies --ignore-cd /iSO/AcronisTrueImage2019.iso] 啟動 Acronis True Image 2019 救援系統 (2019-03-26) map --mem (bd)/iSO/AcronisTrueImage2019.iso (hd32) map --hook chainloader (0xff) iftitle [find --ignore-floppies --ignore-cd /iMG/DGDOS_IMG510.img] 啟動 DiskGenius v5.1.0 磁碟分區管理工具 map --mem (hd0,0)/iMG/DGDOS_IMG510.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) iftitle [find --ignore-floppies --ignore-cd /iMG/HWINFO.ima] 啟動 HWINFO v5.5.5 - 硬體檢測工具 map --mem /iMG/HWINFO.ima (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) title 進入其他工具選單\n 檢測、防毒等等的工具 configfile /StuFF.lst title 重新開機 savedefault --wait=2 reboot
以上方法成功安裝在Intel 865PE、P965、P35、P43、P45、AMDR770晶片組的桌機以及Intel 945GM晶片組的筆電,不用量產工具,不會破壞隨身碟韌體,而且可以任意載入自己需要的iso檔,哇哈哈~ 終於讓我一支隨身碟可以走透透啦 🤖🤓🤖
ref.








menu.lst的編碼是UTF8嗎?
請問!!
小的用WinSetupFromUSB_1-0-beta8版
MENU.LST無法顯示出中文!!
是啊 很怪 USB3.0 開機是不能用的 :kao :kao :kao
只有2.0能用 但是2.0就沒辦法裝….
SLIC保護這點應該是在啟動時才會碰到的吧,我猜啦 o.o” 如果外接光碟能裝,也有可能是USB裝置不相容的關係,拜請咕狗大神的指引是說NEC的USB 3.0裝置相容性較高,參考看看吧~ 總之你現在好不容易WIN7裝好了,就趕快先用GHOST做個備份才安心啦 ?
是阿 超怪的 我去借了台外接DVD燒來用
結果呢 XP 在跑完第一段 進HDD裡面的第2段就死了 什麼記憶體不夠的鬼
7就順順的跑過去了…….該不會是什麼SLIC2.2之類的鬼東西吧
那摸帶衰 ? 會不會是還原磁區的關係,暫時只想的到這個關聯性… ?
慘兮兮 :kao :kao
昨天入手一台新筆電 HM65的chipest
之前都可以用的那個隨身碟
放進去 全部都不能用 連NonmeXPE都一樣
XPE還寫著錯誤代號16……
XP VISTA 7全部不能用
7讀完ISO究卡住了 BIOS也沒有什麼特別設定….
小NB沒CDROM 難不成要去找外接的嗎 = =
那大概就是WIN7本身的限制了…這個我也不熟,推薦你去無憂論壇問問看,那邊對這方面研究透徹的高手比較多。
hi 版主
我已經進展到可以執行資料夾裡的安裝檔了,程式碼果然跟您說的一樣
find –set-root /win7/bootmgr
chainloader /win7/bootmgr
但現在又出現一個問題,雖然他是連結資料夾中的安裝檔
但setting依然是讀取根目錄下的設定檔,並不是讀取資料夾中的setting
請問要讓grub去讀取資料夾中的setting,其他指令該怎麼下呢?
我完全沒有idea,grub操作手冊也看了好幾次,可能win7預設執行路徑就是在根目錄下
請問程式碼這樣撰寫是否ok呢?
title Win 7-clear
find –set-root /w7-clear/bootmgr
chainloader /w7-clear/bootmgr
在find那行就顯示「找不到此檔案」了,現在完全不知該怎麼修改
那就是路徑的問題了,chainloader /bootmgr這段當然也是要跟著改的唷~ 另外記得用7-ZIP解iSO檔比較不會出包唷! ?
hi 版主
其實不是不同版本,而是我想將「修改過的win 7」和「乾淨的win 7」放在一起
我目前是將其中一個版本的win 7放在隨身碟裡的一個資料夾中
但grub一直無法正常連接此資料夾,錯誤訊息大概是此檔案不存在
title Win7-origin
find –set-root /win-origin/bootmgr
root (hd0,0)
chainloader /bootmgr
回复 窮苦人家的小孩
你這個問題應該是要去抓多版本合一的WIN7 iSO檔來解壓縮放到隨身碟裡面才對,而不是把WIN7的各版本全塞在隨身碟裡,希望你懂意思 @@”
你這個問題應該是要去抓多版本合一的WIN7 iSO檔來解壓縮放到隨身碟裡面才對,而不是把WIN7的各版本全塞在隨身碟裡,希望你懂意思 @@”
版主您好,想跟您請教一個問題
我想多放一個不同版本的Win 7在一個資料夾中(例如win7-clear)
請問在menu.lst中的連結語法該怎麼下呢?我已嘗試很久都試不出來
麻煩您了,感謝您
你好:幾個問題想請教,拜託教一下,我想知道以下命令的用法及實際意義
fallback + NUM
find –set-root
map –mem
map –hook
chainloader
savedefault
查了很多英文,簡中頁面,還是看不懂,感恩 ?
請參考官網的手冊第13節
GNU GRUB Manual 0.97
或這邊
GRUB Manual
請問版主,小弟想在同一支隨身碟裡面,放入Win7 32bit/64bit,Grub4Dos該如何設定呢??
試過好幾套軟體,Win7放一套後就沒辦法放另外一套,似乎也沒辦法用iso的方式來安裝,苦惱啊
Win7的做法都是解壓到隨身碟,個人不太喜歡這樣操隨身碟所以沒研究…
只能跟你說可以試試看M$官網的隨身碟工具或是WinToFlash
會需要一點時間喔,因為它的原理是從隨身碟讀檔案到硬碟,所以才會需要一點時間,Grub4Dos的用法很簡單的,真的不難唷! 輕鬆打造無敵隨身碟 ?
照著板大的方法及選單做,試了一天終於成功了!
謝謝板大的教學,感激不盡!
不過小弟尚有一個問題想請教,
板大的隨身碟在開機讀ISO檔時會需要一段時間嗎?
因為小弟的再讀都需要一段時間才能讀進去…… ?
你要啥軟體? 製作所需的我都有提供了喔~!
本來想說找到版主的文章後,我重灌小筆電有希望了,
可是 當我看到你的menu.lst 的內容,發現還需幾個軟體,
可以麻煩版主說的 詳細一點嗎? 初學者迷路中 ~ ?