NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
樓主: ss9696

[討論] grub4dos-for_UEFI 設定討論

[複製鏈接]
發表於 2021-7-21 19:07:06 | 顯示全部樓層
阿達金田一 發表於 2021-7-21 17:24
https://github.com/grub4dos/ntloader

覺的不是原本的不行

其實我原本的也是有find 只是都不會成功
後來發現WIM要放NTFS
就不能放原開機槽FAT32
才想說那我還要有另一個ISO槽的變數
所以有之前的問題

用原本的寫法都會卡住 然後有0x3fffb000訊息

好在現在都OK了
發表於 2021-7-22 18:40:37 | 顯示全部樓層
本帖最後由 saiz 於 2021-7-22 20:17 編輯

神奇了...
東搞西搞的.突然原本可以啟動的WIM居然不能動了
但我只是改些路徑變數而已啊...orz
指令改回一開始OK的也沒用

就只會卡住不動.結果在Qemu上測試可以看到NTLOADER畫面還有錯誤訊息在實機上卻看不到....or2
之前正常時會跳轉全黑畫面 過幾分鐘後開始WINDOWS開機畫面的


發表於 2021-7-22 20:50:55 | 顯示全部樓層
saiz 發表於 2021-7-22 18:40
神奇了...
東搞西搞的.突然原本可以啟動的WIM居然不能動了
但我只是改些路徑變數而已啊...orz

如果不是指令問題...
檢查一下...最基本的東西
例如
如果你是另用 notepad (記事本) 新開一個 menu.lst
那看一下 notepad 儲存時用的 編碼
(尤其是如果你 menu.lst 不是純英文)
不要用 UTF-8 (不具BOM)
要嘛用 ANSI
要嘛用 具有 BOM 的 UTF-8

因為我編寫其它的文本檔 ( ps1 bat 之類的)
因為這種基本問題...遇過搞不出我要的結果 (顯示亂碼 執行中斷 什麼的)
這是因為 win10 的 notepad 預設會用 UTF-8 (不具BOM)
而  UTF-8 (不具BOM) 某些情況下
會有文本編碼無法正確判斷的情況

簡單說...
早期大多數的 unicode 編碼
不管是 UTF7 UTF8 UTF16(一般的unicode) 基本都有 BOM
(BOM 簡單說就是文本最開頭有個辨識碼...一般是 2~3bytes)
而沒有 BOM 一般是 ANSI (這個本來也沒 BOM)

但 win10 ... 文本預設編碼改成 UTF-8 (不具BOM)
如果文本純英文是沒差...
因為英文 的 ANSI 和 UTF8 的編碼是一樣的
所以那怕用 win10 notepad 載入一個 純英文 ANSI
也會被判斷成 UTF-8 (不具BOM)
但 非英文字元... ANSI 和 UTF8 編碼就不一樣
而一些情況下 沒有BOM 會視為 ANSI
(這要看對文本的 沒BOM 預設處理是用 ANSI 還是 UTF-8)
簡單說不同程式處理文本可能判斷都不一樣

而 grub4dos /uefi  是用 具BOM的 UTF-8
不具BOM UTF-8 大概會判斷為 ANSI 來處理
如果 menu.lst 沒中文可能還好...有中文編碼就會有問題
發表於 2021-7-25 12:03:42 | 顯示全部樓層
阿達金田一 發表於 2021-7-22 20:50
如果不是指令問題...
檢查一下...最基本的東西
例如

原來是chainloader指令有些錯誤
kernel /initrd因為相容性問題也不能啟動

而且發現gurb4uefi需要set root到WIM等路徑才可以正常啟動
不能用%isodir%/123.iso之類啟動
發表於 2021-7-25 13:30:53 | 顯示全部樓層
saiz 發表於 2021-7-25 12:03
原來是chainloader指令有些錯誤
kernel /initrd因為相容性問題也不能啟動

個人覺的 PE 啟動未必一定要用 ntloader
引導給 bootmgr 啟動...只要能順利載入 bootmgrfw.efi
基本上... bcd 沒錯...就可以啟動

如果你一定要直接啟動 wim
也可以去用 wimboot ...這也是用來直接啟動 wim 的外部指令工具

其實類似的 linux 開機(grub/grub2) 的 win/wim 啟動 ...
大多是用 linux 核心 搭一個 ntldr/bootmgr 的啟動環境
再丟給 ntldr/bootmgr ... 所以最終還是 ntldr/boogmr 再啟動
所以如果搭建啟動環境有問題...啟動可能也會失敗

這類的外部指令工具...主要只是方便
至於相容性...因為我是沒在用 ntloader 和 wimboot 所以不清楚
發表於 2021-7-25 14:16:10 | 顯示全部樓層
本帖最後由 阿達金田一 於 2021-7-25 14:35 編輯
saiz 發表於 2021-7-25 12:03
原來是chainloader指令有些錯誤
kernel /initrd因為相容性問題也不能啟動

剛去下載 ntloader 1.04
的確有你說的 root 要是 wim 所在分區 的問題
不過我 kernel 和 initrd 都沒問題... (反而 chainloader 會有問題...)
不管 ntloader 和 wim 是否同分區
我從頭到尾都用 kernel 和 initrd 去測
都可以啟動 wim ...只要注意 root 要是 wim 的分區就好
set wim=/iso/10pe.wim
find --ignore-floppies --ignore-cd /EFI/grub/ntloader | set bd=
find --ignore-floppies --ignore-cd --set-root %wim%
uuid ()
kernel  %bd%/EFI/grub/ntloader uuid=%?_UUID% hires=0 file=%wim%
initrd  %bd%/EFI/grub/initrd.lz1

這應該是沒問題的 (話說 wim 放 /iso 下...怪怪的...)
至少我測試是沒問題


另外...我又去仔細看了 ntloader 官方的資料
grub4dos(efi) ... 正常應該是用 kernel 和 initrd
chainloader 那是 GNU GRUB2 用的 ( a1ive GRUB2 用法又不一樣)
我用 chainloader 會失敗 (也有可能是我用的 g4e 版本比較舊的關係)

本帖子中包含更多資源

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

x
發表於 2021-7-31 15:35:41 | 顯示全部樓層
阿達金田一 發表於 2021-7-25 14:16
剛去下載 ntloader 1.04
的確有你說的 root 要是 wim 所在分區 的問題
不過我 kernel 和 initrd 都沒問題. ...

因為以前是都用 ISO/IMG去跑
但後來有點問題.有的引導跑ISO不一定會成功
加上更新WIM比較快.不用重做ISO檔
目錄又不能用中文名 英文名太長也麻煩多餘 就懶得改目錄名稱了

至於kernel/ chainloader問題
我在我的Acer AO756上是不能用kernel去啟動啦...
grub4uefi也不知有沒有支援用wimboot
menu.lst範本內也沒有
所以優先用範本推廌的啟動方式去測試
比較省麻煩
發表於 2021-8-1 04:12:53 | 顯示全部樓層
本帖最後由 阿達金田一 於 2021-8-1 04:22 編輯
saiz 發表於 2021-7-31 15:35
因為以前是都用 ISO/IMG去跑
但後來有點問題.有的引導跑ISO不一定會成功
加上更新WIM比較快.不用重做ISO ...

可能 AO756 的 uefi 版本太舊吧
也可能 grud4efi 有些問題...
個人感覺 grub4efi 好像比較要看 uefi 版本 或 廠商 uefi 設計
感覺實機出問題的案例不少
不同版本 uefi 跑可能會有差異...
像之前有個站友要用 map --mem
好像實機版本比較舊會失敗
反正 vbox uefi 2.7 用 grub4efi 是比較沒問題(沒大問題)
或許用 grub2 + ntloader 比較穩一點吧
發表於 2022-7-24 01:28:23 | 顯示全部樓層
小白請教 :下載了grub4dos for uefi 但內容沒有 ntloader 及initrd.lz1這二個檔,請問如何取得
發表於 2022-7-25 06:36:17 | 顯示全部樓層
roger3349 發表於 2022-7-24 01:28
小白請教 :下載了grub4dos for uefi 但內容沒有 ntloader 及initrd.lz1這二個檔,請問如何取得 ...

https://github.com/grub4dos/ntloader/releases
您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

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

GMT+8, 2025-4-6 14:24 , Processed in 0.156559 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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