• 3

[折騰文] 折騰BIOS引導GPT分區GRUB,還要能啟動Windows

Bobpan wrote:
如標題所見,這個奇葩(恕刪)


這個方法多耗用一點空間


實際上 可以全硬碟 都是GPT 但是被BIOS識別引導

載入 後面分區
hunandy14

這具體是怎麼操作的,沒有bootmgr給BIOS認,第一階段怎麼引導的

2022-06-01 11:36
Bobpan
Bobpan 樓主

我後面樓層有回下喔~~可以看看,主要歸功於把東西先Load到RAM裡面

2022-06-01 16:08
妖妖夢 wrote:
樓主的目的是想用老電(恕刪)


其實模擬EFI的方法我是試過了
不過不知道是不是兼容性的問題
(AMD Athlon x2 + NForce 晶片組,都跟Intel家背道而馳的)

像Clover新版的直接紅字Exception
類似這樣 Clover on AMD X64 Exception Type Error
舊版的Clover能直裝的又不大好找

用DUET(UEFI論壇他們EDK官方的,照理說兼容性要不差的...?)
也是直接閃爍游標當機

不大確定怎麼樣才有辦法模擬UEFI才出如此下策
hunandy14

好奇樓主目的是要在舊電腦跑Win11嗎

2022-05-31 23:25
Bobpan
Bobpan 樓主

其實我本來Windows 11是灌在MBR上的,後來才想轉換成GPT的哈哈。其實真的Windows 11就安裝程式限制很多而已,繞得開真的很好灌

2022-06-01 16:10


驗證了一下我的想法

1. 加上新硬碟(GPT)
2. 解壓縮Win11的ISO到新硬碟上
3. 加上引導

重啟就實現了在BIOS上啟動GPT硬盤上的Windwos11。


摁...又多一個驗證那句話浪費生命的人了。30分鐘

---

最大的問題是卡在BIOS只認bootmgr (是不是GPT、主分區都不是事)

看樓主的作法簡單說就是用兩顆硬碟去規避上述的事實。確實是很巧妙的解法照著做還真有搞頭XD

順帶一提基於上述已確認事實,其實直接用Ventoy會比較快,現成的引導VHD解決方案可以不用搞那麼多流程XD
hunandy14 wrote:
....必須得有兩顆硬碟才能解..
這是錯的

一顆硬碟 就可以

而且是 GPT模式 讓傳統 BIOS (主機板 775/478) 可以啟動引導

然後開機

整個流程是

BIOS --> GPT分割硬碟前面引導軌--->引導EFI區--->模擬UEFI載入-->載入EFI區其他開機引導
hunandy14

回去了看了一下樓主的文確實第一步就格式成GPT,這樣跟我實現的方法可能不同了。不過為何他的C曹後面跟著是寫主分區誤以為是mbr格式了

2022-06-01 1:29
hunandy14 wrote:
順帶一提基於上述已確認事實,其實直接用Ventoy會比較快,現成的引導VHD解決方案可以不用搞那麼多流程XD


的確如果能夠讓BIOS引導進模擬的UEFI環境,一切都會變得簡單啦
問題就是Clover、DUET我都試過了,怎麼樣處理就是進不去

之前就有概念驗證先燒在隨身碟上面看看

之前做過最好的狀況是進去EFI Shell了,但是沒有鍵盤跟滑鼠的Driver,甚麼都動不了
不過那個情形也只有幾次成功,絕大多數都是出現Dos系統的那種閃爍游標就卡住了
最差的話Clover還有遇過紅字Exception,我忘記拍了,底下引用一下別人的截圖下
(類似的畫面,就錯誤代碼尾巴是06)


原圖論壇傳送門(www.tonymacx86.com)

不然我也灌過很多EFI系統,也很希望用那種方式輕鬆解決就好XD
hunandy14

假日有空測試了先前的猜想是正確的,GPT硬碟上的ventoy可以被BIOS啟動,且成功引導啟動同一顆分區的Windwos。

2022-06-06 14:30
yungasroad wrote:
整個流程是
BIOS --> GPT分割硬碟前面引導軌--->引導EFI區--->模擬UEFI載入-->載入EFI區其他開機引導


說真的我的流程你這樣講有點不大對啦哈哈
我自己電腦試成功的流程"大概"是這樣(大概啦,有些細節我也是不大確定):

BIOS開機 > 讀取MBR載入GRUB2 > 程式引導到GRUB2專用的分區(2MB大小),將GRUB2載入完成 > (選擇引導Windows)開始載入GRUB4Dos(在Linux Boot分區下) > GRUB4Dos載入C槽下的啟動用VHD到RAM > 將RAM模擬成一顆硬碟,引導BOOTMGR 由RAM硬碟開機 > 開機過程中透過VHD Attach服務將那顆VHD重新掛載進系統(這樣系統才能正常休眠)

總之是沒有EFI啦,因為目前還沒試出那方面的可行方案
Bobpan wrote:
說真的我的流程....

BIOS開機 > 讀取MBR載入GRUB2 > 程式引導到GRUB2專用的分區(2MB大小)

你用錯軟體了

所以就出現要 GRUB2的狀況

實際上不需要GRUB2

改天有空再來公布(反正 478/479/775/771 已經太老 可公布了 )

(我應該是2013當年全台第一個改出 "全主機板" 可以775刷771 BIOS的人 )

這是 2012年測試出來的

上月(2022/5/13)再次驗證還是可以
Bobpan
Bobpan 樓主

哇嗚…大神嗎?

2022-06-03 1:04
Bobpan
Bobpan 樓主

不過我也有在使用Linux當雙開,所以這套方案對我來說沒有到很累贅就是哈哈,不過大神的方案的確也可以分享出來參考看看[拇指向上]

2022-06-03 1:11
BIOS開機 > 讀取MBR載入GRUB2 > 程式引導到GRUB2專用的分區(2MB大小),將GRUB2載入完成 > (選擇引導Windows)開始載入GRUB4Dos(在Linux Boot分區下) > GRUB4Dos載入C槽下的啟動用VHD到RAM > 將RAM模擬成一顆硬碟,引導BOOTMGR 由RAM硬碟開機 > 開機過程中透過VHD Attach服務將那顆VHD重新掛載進系統(這樣系統才能正常休眠)

---

我看完之後猜想應該是靠gurb引導過去,照這個思路我確實是實現了引導成功(只是我是用微軟的BCD引導過去的),只是沒弄明白

為什麼已經把硬碟格弄成GPT格式了,BIOS是怎麼讀到GPT上的GRUB的
(我是 BIOS先讀MBR上的BCD,然後BCD再直接引導GPT上的Windows

還是說 GRUB4Dos 建立的GPT開機磁區本來就可以讓BIOS讀到了呢?
hunandy14 wrote:
BIOS開機 > 讀...(恕刪)


https://wiki.archlinux.org/title/Partitioning_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#GUID_%E5%88%86%E5%8C%BA%E8%A1%A8


GUID 分区表的磁盘开始位置有一个保护 MBR(protective Master Boot Record,PMBR),用以处理不支持 GPT 软件的访问。这段 MBR 和真正的 MBR 一样,具备一段#引导代码,后者可以用在支持的启动管理器中进行 BIOS/GPT 启动。


能夠用BIOS載入GPT分區上的GRUB2主要是這樣的原因啦(GPT表格前面還是有保留一小塊MBR啟動用的Boot Record)

其實GPT的設計是有考慮到一點向下兼容性的,並不是GPT一定只能搭UEFI

只要有人願意寫出那種有兼容性的引導程式,照理說BIOS也是能用GPT開機的
Bobpan wrote:
其實模擬EFI的方法(恕刪)


今天在研究室用自己家開不了機的隨身碟中開機下發現了件有趣的事情



看來案情並不單純……XD
下次用RAMDISK燒DUET試試好了
看看會不會EFI模擬就成功載入了XDD

(研究室的主機就是Intel H77晶片組了,用CSM模式嘗試的…不過這啟動不了應該就不是晶片組的問題囉…?)
hunandy14

重新看一次本文發現有提到 USB,grub是安裝在隨身碟上還是硬碟上呀

2022-06-03 1:42
Bobpan
Bobpan 樓主

硬碟上,透過GRUB4DOS模擬成另一顆硬碟喔

2022-06-03 13:30
  • 3
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?