无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 181241|回复: 269
打印 上一主题 下一主题

[分享] Windows定制Grub2(包括BIOS和UEFI、自定义Grub2路徑)

    [复制链接]
跳转到指定楼层
1#
发表于 2014-9-29 17:03:17 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 極限驅動 于 2014-10-12 22:22 编辑

都知道Grub2的安装和定制大多都要在Linux环境下进行,但是很多地方都没怎么提到Windows下能否定制以及具体细节

在以前看到这个帖子
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=334058
知道在Windows下是可以安装Grub2,但是没提到定制

这是有关Grub2定制的,但是却是在Ubuntu的环境下定制,实际上在Windows系统下的一旦需要定制或是修改就安装Ubuntu,有点不方便
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=310626

這是也是有關Grub2定制的,不過同樣也是Ubuntu的环境下定制
http://forum.ubuntu.org.cn/viewtopic.php?t=324418


后面就自己琢磨这着怎么定制。还好吧,Ubuntu环境和Windows环境下的定制命令几乎没差别,所以命令基本可以参照。

首先,下载Grub2和bootice基本就只用到这两个小东东

Windows下的Grub2 版本是2.02 Beta2
http://alpha.gnu.org/gnu/grub/grub-2.02~beta2-for-windows.zip


【BOOTICE: 启动维护工具】用于安装Grub2
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=57675



下载Windows下的Grub2包,放在哪裡無所謂,为了简洁点我就直接解压到C盘,解压后我的路径是C:\grub-2.02~beta2-for-windows  解壓後在能看到




其中,方便點較為重要的我都用鼠標選中了,下面我簡單解釋下
i386-pc文件夾是BIOS模式的所需要的
i386-efi文件夾是UEFI模式的32Bit
x86_64-efi文件夾是UEFI模式的64Bit
unicode.pf2是Grub2的字體,支持简体、繁體漢字
grub-mkimage.exe自然就是grub-mkimage命令,用於定制Grub2
locale文件夾是語言文件,打開後看裏面文件夾名稱,就能知道有很多由各種語言簡稱命名的文件夾,不過每個文件夾裏面都是相同的名稱grub.mo,後面要自己改壹下,基本只要zh_CN、zh_TW這兩個文件夾
分別把裏面的grub.mo改成和文件夾相對應的名稱
zh_CN文件夾裏面的grub.mo改名為zh_CN.mo
zh_TW文件夾裏面的grub.mo改名為zh_TW.mo


基本就只用到grub-mkimage命令来定制,至于更深层次的,我就没怎么了解,在Windows下可以通过命令   -?或 --help 來獲取其他參數。
需要同時支持BIOS和UEFI模式,然後把Grub2安裝到U盤,(這個U盤只有壹個分區)這是定制目的,下面就開始重點了。

(支持BIOS和UEFI、定制路徑)
先在U盤根目錄基礎上建立些文件夾,先看下面:
EFI>Boot
Grub2>BIOS
Grub2>UEFI_i386-efi
Grub2>UEFI_x86_64-efi

在根目錄建立EFI目的是為了支持UEFI啟動,裏面再建立Boot目錄,用於放置EFI啟動文件,32Bit默認啟動文件名為Bootia32.EFI、64Bit默認啟動文件名為Bootx64.EFI
同樣也在根目錄建立個Grub2文件夾,裏面再分別建立BIOS、UEFI_i386-efi、UEFI_x86_64-efi這叁個目錄,分別用於支持啟動BIOS模式、32Bit的UEFI模式、64Bit的UEFI模式。
以BIOS目錄為例子,不過先看看完成BIOS目錄裏面的結構(這裡標識加粗的文字表示裏面的Fonts目錄、Locale目錄可以直接複製到UEFI_i386-efi文件夾、UEFI_x86_64-efi文件夾):
Grub2>BIOS>I386-PC
Grub2>BIOS>Fonts>unicode.pf2
Grub2>BIOS>Locale>zh_CN.mo
Grub2>BIOS>Locale>zh_TW.mo

下面就來開始手動建立

找到解壓到C盤的Grub2包,把裏面的i386-pc文件夾整個複製到這個BIOS目錄中(裏面有很多模塊)
這樣就完成了這第壹步
Grub2>BIOS>I386-PC

把Grub2包裏的i386-efi文件夾複製到UEFI_i386-efi文件夾
把Grub2包裏的x86_64-efi文件夾複製到UEFI_x86_64-efi文件夾
自然就完成
Grub2>UEFI_i386-efi>i386-efi
Grub2>UEFI_x86_64-efi>x86_64-efi


BIOS目錄中建立Fonts文件夾,然後把unicode.pf2字體複製到Fonts文件夾裏面
第貳步也完成了
Grub2>BIOS>Fonts>unicode.pf2


BIOS目錄中建立Locale文件夾,然後把Grub2其中的語言文件zh_CN.mo、zh_TW.mo複製到Locale文件夾中(在上面有提到Grub2的locale文件夾裏面的zh_CN文件夾、zh_TW文件夾以及zh_CN.mo、zh_TW.mo)
第叁部也完成了
Grub2>BIOS>Locale>zh_CN.mo
Grub2>BIOS>Locale>zh_TW.mo

這叁步就完成了Grub2的路徑定制



最後就是用grub-mkimage命令定制
這裡我再詳細點
BIOS模式定制的是內核文件Core.img,後面會用到啟動文件Boot.img,用這兩個文件以二進制合并成G2ldr
UEFI模式定制的是EFI啟動文件,有點不同的是UEFI是分64Bit啟動文件和32Bit啟動文件
同樣的,這裡我先直接給出定制的命令(基本可以照搬),後面我再解釋

BIOS模式定制:
注意了,BIOS模式對應的是MBR分區表,那麼啟動扇區的扇區數量為63
因為啟動扇區數量為63,有時定制BIOS模式時定制的模塊可以不要太多,基本上取biosdisk part_msdos fat exfat ntfs這些模塊就可以了,還有下面給出的定制命令,其實也能直接用的,原因後面再講

grub-mkimage.exe -d I386-PC -p (hd0,1)/Grub2/BIOS -o Core.img -O i386-pc biosdisk part_msdos fat exfat ext2 ntfs normal iso9660 search_fs_file

UEFI模式的32Bit定制:
grub-mkimage.exe -d i386-efi  -p (hd0,1)/Grub2/UEFI_i386-efi -o I386-EFI.EFI -O  i386-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file

UEFI模式的64Bit定制:
grub-mkimage.exe -d x86_64-efi  -p (hd0,1)/Grub2/UEFI_x86_64-efi -o X86_64-EFI.EFI -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file

grub-mkimage命令參數解釋(注意,大小寫,不能搞混,以及路徑用的是正斜杠 / ):
-d 表示在定制的模式時需要用到的文件所在的路徑,壹般不用給完整路徑,直接給出和模式對應的文件夾名稱就行了,在定制時會默認的路徑,在Windows下,我的Grub2包放在C盤,那麼路徑是C:\grub-2.02~beta2-for-windows,模式對應的路徑默認自然就是C:\grub-2.02~beta2-for-windows\i386-pc
-p 定制後對應的路徑,因為涉及Grub2的prefix变量值以及Grub2啟動路勁,所以這裡才是基本完成路徑定制,不過還有些問題我後面再講
-o (這裡是小o) 表示定制後輸出的文件名稱以及路徑,壹般只寫文件名稱就行,在Windows下,會直接輸出到Grub2包所在的路徑中
-O (這裡是大O)表示定制模式,後面接的自然就是包含的模塊,可以自己在模式對應的目錄裏面查找并選需要的模塊

最後,就可以打開Windows下的命令行,開始執行定制命令了,不過命令行的路徑壹般的默認路徑大多是C:\Windows\System32,還不能直接執行定制命令。


要轉到Grub2包的路徑中,我的在C盤,執行如下命令:
cd /d c:\grub-2.02~beta2-for-windows
轉後如如下:


現在可以開始執行定制的命令了,先把BIOS模式定制的命令照搬

grub-mkimage.exe -d I386-PC -p (hd0,1)/Grub2/BIOS -o Core.img -O i386-pc biosdisk part_msdos fat exfat ext2 ntfs normal iso9660 search_fs_file

命令執行完後,會在我的C:\grub-2.02~beta2-for-windows路徑中生成個Core.img,文件 86.5 KB大小,後面會詳細講下這個文件


當然,如果是UEFI模式定制,就簡單了,定制命令直接照搬,直接生成EFI啟動文件就徹底完成了。
在執行完定制UEFI模式的32Bit和64Bit命令後,會看到於Grub2包裏面的I386-EFI.EFI和X86_64-EFI.EFI兩個EFI啟動文件,大小無所謂


I386-EFI.EFI 更名為Bootia32.EFI
X86_64-EFI.EFI更名為Bootx64.EFI
注意:默認下UEFI模式是按照EFI啟動文件的名稱來引導啟動的,32Bit默認引導Bootia32.EFI、64Bit默認引導Bootx64.EFI
更名完後直接放置到前面提到的用於EFI啟動的目錄
EFI>Boot

放置完,UEFI模式的定制就徹底完成。BIOS模式還有個步驟要完成


在這裡就主要講BIOS模式的最後壹步

步驟中,已經生成BIOS模式所需的內核文件Core.img,其大小是86.5 KB
生成的只是單單BIOS模式的內核文件,還無法引導Grub2,還需要個啟動文件Boot.img,該文件很小,只有512Byte,位於i386-pc文件夾,該文件的作用是啟動Grub2,然後加載內核文件Core.img
所以這裡的最後壹步就是把啟動文件Boot.img和內核文件Core.img以二進制形式合并,合并後的文件我個人稱呼為扇區文件G2ldr(不知道這個文件有沒標準的名稱),因為可以直接導入到扇區,來引導啟動Grub2,也可以由GRUB4DOS直接加載這個扇區文件來啟動Grub2。
老樣子,先給出命令(如果命令行的路徑不是Grub2包所在的路徑,就先要修改命令行的路徑,前面有提到)
Copy /B i386-pc\Boot.img+Core.img G2ldr

Copy是Windows下的複製命令,自帶了個二進制的參數 /B ,加上去就表示二進制,文件在命令行中已經轉入到Grub2包所在的路徑,啟動文件Boot.img位於Grub2包裏的i386-pc文件夾,加上前面生成的內核文件Core.img,在後面只有壹個名稱G2ldr,表示兩個文件以二進制形式合并,其實名稱不一定非要取名G2ldr喜歡可以自己改。

注意:合并時必須以二進制方式,并且時啟動文件Boot.img必須放在內核文件Core.img前面才能進行合并,也就是說內核文件Core.img壹但放在啟動文件Boot.img前面,就會出現無法引導Grub2的情況,為了防止錯物的命令被複製,我就上圖了


合并後能看到扇區文件G2ldr,大小是87.0 KB



合并完了也就基本完成BIOS模式的,這個文件能夠可以導入到扇區,也可以由GRUB4DOS加載啟動。
順便把定制出的內核文件Core.img複製到Grub2>BIOS>I386-PC這個文件夾裏面,扇區文件G2ldr複製到Grub2>BIOS文件夾中

那現在就來導入到扇區,前面提到過【BOOTICE: 启动维护工具】是用來安裝Grub2的,安裝方式我就上圖解說:
目标磁盘選擇U盤,不要選錯了,然後選擇主引导记录(M)


在主引导记录介面選擇恢复MBR(R)


最後就可以選擇前面合并好的扇區文件G2ldr,請注意下打扇區文件G2ldr後的圖


看到沒有,在恢复扇区数:的數字框中可以看到扇區數量為175,徹底大於前面說的63,其實也無所謂了,在数字框中手動填入63就可以,Grub2還是可以啟動的


如果不修改為63,而是直接把175扇區數量寫入的話,Grub2會無法啟動,其他問題嘛(┬_┬)。。。。可能會把U盤的其他數據損壞


另外我這裡再給出個不超過63扇區的定制命令:
grub-mkimage.exe -d I386-PC -p (hd0,1)/Grub2/BIOS -o Core.img -O i386-pc biosdisk part_msdos fat exfat ntfs

內核文件Core.img,大小30.5 KB
合并后的扇区文件G2ldr,大小是31.0 KB
用bootice打開後會看到扇區大小剛好是63


这壹步完成后就基本完成了(BIOS和UEFI、自定義Grub2路徑)基本上就能啟動了。
不過還差個Grub.CFG文件,是個文本文件,改個後綴名就行了,編碼是UTF8,文件放置在和模式對應自定義的文件夾裏面,我這裡放置在Grub2>BIOS裏面,Grub.CFG文件配置大多都通用,只是注意路徑用的都是正斜杠 /
在論壇裏面有很多例子可以用,基本上只要拿過來後,只要自己修改路徑
BIOS模式的Grub.CFG文件配置
set pager=1
insmod all_video
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
insmod font
insmod gfxterm
insmod gfxmenu
insmod gettext
insmod jpeg
insmod png

#加载unicode字体显示中文
loadfont /Grub2/BIOS/Fonts/unicode.pf2
set locale_dir=/Grub2/BIOS/Locale
set lang=zh_CN

#设置分辨率
set gfxmode=auto
terminal_output gfxterm
#设置背景图片
background_image /

#倒计时
set timeout=300

#颜色
set color_normal=green/black
set color_highlight=white/cyan


UEFI模式的Grub.CFG文件配置(這個注意了,因為有32Bit和64Bit,對應的路徑需要自己改壹下)
set pager=1
insmod all_video
insmod video_bochs
insmod video_cirrus
insmod efi_gop
insmod efi_uga
insmod font
insmod gfxterm
insmod gfxmenu
insmod gettext
insmod jpeg
insmod png

#加载unicode字体显示中文
loadfont /Grub2/UEFI_i386-efi/Fonts/unicode.pf2
set locale_dir=/Grub2/UEFI_i386-efi/Locale
set lang=zh_CN

#设置分辨率
set gfxmode=auto
terminal_output gfxterm
#设置背景图片
#background_image /

#倒计时
set timeout=300

#颜色
set color_normal=green/black
set color_highlight=white/cyan




這裡最後我說壹下關於路徑的問題
目前GRUB4DOS和Grub2中(hdX,Y)表示第幾個硬碟第幾個分區
X表示第幾個硬碟
Y表示第幾個分區,不過
在GRUB4DOS中第壹塊硬碟的第壹分區的表示(hd0,0)
在Grub2裏第壹塊硬碟的第壹分區改變成(hd0,1)(我自己有點不明白為什麼要這樣改變,這個表達方式明明可以延續下來)


在Grub2啟動時是以Grub2自身為中心,來確定第幾個硬碟至於第幾個分區會按照分區是否隱藏來確定,所以在grub-mkimage命令定制時 -p 這個參數用(hd0,1)來表示U盤是第壹個硬碟上的壹個分區,如果有兩個分區,并且Grub2安裝到第貳個分區可以用(hd0,2)表示

U盤如果有特別結構帶多個分區的注意了
如果U盤做成啟動盤,并且有特別結構帶有多個分區,同時在隱藏和顯示分區之前來回切換U盤的分區時,在使用基於Qemu的啟動器來測試時會發現有時無法啟動Grub2,原因在於把U盤上哪個分區顯示出來哪個就是(hd0,1)有可能導致Grub2基本啟動後找不到相對應的路徑
如果說第壹個分區是正常使用的也就是平時看得到的,它是(hd0,1),第貳個分區是隱藏的,安裝了Grub2,它是(hd0,2),平時能夠正常啟動是因為Grub2所在的分區是隱藏的正常順序位於(hd0,2)
但是在修改時,把第壹分區隱藏了,把第貳分區顯示了,那它們之前的分區順序就反過來了,變成正常使用的是(hd0,2),安裝Grub2的的是(hd0,1),在用Qemu測試時自然就因為Grub2找不到自己的路徑從而無法正常啟動
決解方法是,在定制路徑時可以不要(hd0,1)、(hd0,2)。。。這些來表示位置,老樣子,直接給出定制命令:

BIOS模式定制:
grub-mkimage.exe -d I386-PC -p /Grub2/BIOS -o Core.img -O i386-pc biosdisk part_msdos fat exfat ext2 ntfs normal iso9660 search_fs_file

UEFI模式的32Bit定制:
grub-mkimage.exe -d i386-efi  -p /Grub2/UEFI_i386-efi -o I386-EFI.EFI -O  i386-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file

UEFI模式的64Bit定制:
grub-mkimage.exe -d x86_64-efi  -p /Grub2/UEFI_x86_64-efi -o X86_64-EFI.EFI -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file

其實就是把路徑中的(hd0,1)這些去掉,讓Grub2啟動時模糊查找,自然就能正常啟動,不會受到U盤分區隱藏顯示的影響。



上面的东西就是我自己在Windows下完成的Grub2定制时发现的错误以及解决的,最後我自己是成功启动了,不过我自己没有UEFI环境,用的都是Qemu测试的,都成功启动了。
我自己也是搞了很久才成功的,上面有些地方講的方面可能有點多餘,也不清楚哪些地方出錯,如果知道的話,那麼各位請指出來。
希望上面東西對各位在Windows定制Grub2有幫助,不知道講的夠不夠詳細

小更新:
最後我要特別感謝Qemu启动器的作者:阿弥陀佛
能同時支持BIOS和UEFI 32Bit、64Bit,要是沒這個Qemu启动器,定制時的測試,真是的個大問題

[原创] 【14.7.31最后更新+源代码】Qemu启动测试器增强版,支持64位,支持EFI,linux内核调试
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=335197

下面是我按照我這個帖子做的定制的Grub2
Grub2目錄中的扇區文件G2ldr,大小31.0 KB,扇區數量63
Grub2>BIOS目錄的扇區文件G2ldr,大小87.0 KB,扇區數量175
Grub2>BIOS>I386-PC目錄的內核文件Core.img,大小86.5 KB,和啟動文件Boot.img合并後就是Grub2>BIOS目錄的扇區文件G2ldr

我分割壓縮了,把下面的最後面的7Z後綴名去掉,就能一起解壓了
Windows定制Grub2(包括BIOS和UEFI、自定义Grub2路徑).7z.001.7Z (1 MB, 下载次数: 3526)
Windows定制Grub2(包括BIOS和UEFI、自定义Grub2路徑).7z.002.7Z (1 MB, 下载次数: 2507)
Windows定制Grub2(包括BIOS和UEFI、自定义Grub2路徑).7z.003.7Z (305.19 KB, 下载次数: 2082)


2014年 10月2日 更新:(自定义Grub2路徑)

在前面的grub-mkimage定制命令有個參數 -p 是Grub2的prefix變量,可以用來定制自己設定的Grub2路徑,但是有時候在U盤上,會因為(hdx,y)不確定時發生無法啟動的問題,雖然在上面提到可以不加(hdx,y)來啟動U盤上的Grub2,但是這樣有時候安裝在硬碟上的設備卻會出現無法啟動的情況。這樣壹來Grub2在定制後,變得U盤能啟動,硬碟無法啟動,不那麼通用,需要修改重新定制,很不靈活。還好後面找到了解決辦法

[原创] Grub2启动盘的制作,支持BIOS和UEFI哦..... (帖子開頭有提到)
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=310626

在重新查找資料時看到帖子中有提到壹個bootconfig.cfg的文件,它的參數  -c (小寫c),發現這個bootconfig.cfg文件可以很好解決上面的路徑問題。有點粗心,自己在摸索的時候不瞭解具體細節,到後面就被我徹底忽略了,造成有時候Grub2在啟動時找不到自己的路徑,形成在U盤能啟動,硬碟無法啟動的情況,還好,在及時發現并大致瞭解後我就再來更新下,以便解決Gurb2在定制時啟動後找不到路徑
我自己在上面提到的參數變量 -p 是設置變量prefix直接設定路徑的,太直接了,這樣有時Grub2在啟動時是無法定位到自己的路徑,帖子中的提到的bootconfig.cfg文件是grub-mkimage命令參數 -c (小寫c)有搜索功能,可以定制prefix變量來自定义Grub2路徑,也就是說,可以通過搜索來確定Grub2的準確路徑,這樣Grub2在啟動是就不會出現無法找到自己路徑的問題,帖子的Grub2就是定制的。

grub-mkimage命令參數 -c (小寫c)是調用壹個配置,文件名稱無所謂,在這裡我就標準點,就用Config.CFG文件名,帖子中是bootconfig.cfg,編碼不清楚,不過我用的是UTF8,在創建後的文件都放在Grub2包裏面,這樣壹來執行定制命令時只要給出文件名就能直接調用到了

先給出文件內容(下面3選1):
#搜索文件名来定位,定制时需要 search_fs_file 模块 (推荐使用这个方式定位)
search.file /Grub2/BIOS/Grub.CFG root
set prefix=/Grub2/BIOS


#搜索盘符名称(分区标签),会区分大小写,不支持中文名,定制时需要 search_label 模块
search.fs_label Grub2 root
set prefix=/Grub2/BIOS


#搜索分区UUID,要事先获取,好处是具有唯一性,但有点不好获取,定制时需要 search_fs_uuid 模块
search.fs_uuid 01234567-89ab-cdef-0123-456789abcdef root
set prefix=/Grub2/BIOS

下面是設定路徑
set prefix=/Grub2/BIOS
這部份是表示Grub2的路徑和grub-mkimage定制命令的參數 -p 是壹個意思的。只要寫上相對的Grub2路徑,不需要具體到(hdx,y),至於具體的(hdx,y)會通過上面的搜索來定位,它們後面尾部都會有個root表示搜索到了,就選定為根設備,可以避免不确定(hdx,y)的情况,上面有叁个Config.CFG的定位方式,推薦用第壹種,如下:
search.file /Grub2/BIOS/Grub.CFG root
set prefix=/Grub2/BIOS

如上面說明的通过搜索相對路徑/Grub2/BIOS下面的Grub.CFG文件名来確定根設備,接著就引導啟動被選定為根設備下Grub2的相對路徑。另外其它兩種搜索定位方式我感覺不是很好用,至少我個人是怎麼覺得的,修改的話只要修改紅色的部分,這個方式表示的是路徑,路徑和我的貼上前面自定義的路徑壹樣。

注意了:除了搜索分區UUID的方式能保證搜索到的是唯一不衝突,其它方式在搜索的時候是有可能會出現被搜索到相同的,如:可能會出現多個在相對路徑下有相同的文件名和多個相同的盤符名稱(分區標籤),為了避免搜索時可能會出現的衝突,壹般在設定搜索的內容時,需要考慮到衝突的情況,如:通過搜索文件名,不要選定那些常見的通用名稱和路徑,選那些衝突的可能性很小的文件名,就像選定自己定制路徑下的文件來定位位置,或者設定壹個就自己知道的文件名,也能避免衝突,基本上不會出現這樣的巧合;在搜索盤符名稱(分區標籤)時,名稱的設定和設定文件名是壹樣設定個就自己知道的名稱就行了

在grub-mkimage定制命令中使用參數  -c (小寫c)時就不要 -p 參數,(雖然加上去無所謂,但是已經沒這個必要了)下面我再重新給出BIOS和UEFI的定制命令,另外為了Config.CFG文件好辨認些下面會改名:


BIOS模式定制(Config.CFG文件改成I386-PC.CFG):
grub-mkimage.exe -d I386-PC -c I386-PC.CFG -o Core.img -O i386-pc biosdisk part_msdos fat exfat ext2 ntfs normal iso9660 search_fs_file

I386-PC.CFG文件內容:
search.file /Grub2/BIOS/Grub.CFG root
set prefix=/Grub2/BIOS

UEFI模式的32Bit定制(Config.CFG文件改成I386-EFI.CFG):
grub-mkimage.exe -d i386-efi  -c I386-EFI.CFG -o I386-EFI.EFI -O  i386-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file

I386-EFI.CFG文件內容:
search.file /Grub2/UEFI_i386-efi/Grub.CFG root
set prefix=/Grub2/UEFI_i386-efi

UEFI模式的64Bit定制:(Config.CFG文件改成X86_64-EFI.CFG)
grub-mkimage.exe -d x86_64-efi  -c X86_64-EFI.CFG -o X86_64-EFI.EFI -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file

X86_64-EFI.CFG文件內容:
search.file /Grub2/UEFI_x86_64-efi/Grub.CFG root
set prefix=/Grub2/UEFI_x86_64-efi

這次基本就沒問題了,理論上,Grub2在啟動時會搜索相應路徑下的Grub.CFG文件,然後設定為啟動的分區,基本不用太在乎(hdx,y)的位置了,只是記得在每個模塊目錄裏面創建個Grub.CFG文件,因為搜索的就是Grub.CFG文件。


小更新:快捷鍵
覺得還是方便壹下大家,同時在這裡我回復:qq5274202的快捷鍵 --hotkey 設置,順便說壹下菜單中的 --class 怎麼用

先看看下官方的快捷鍵說明,還有注意下Name和Key
http://www.gnu.org/software/grub/manual/grub.html#sendkey

Name 是說明
Key    是按鍵
其實看 Key 就好了,因為這才是自己要設定的快捷鍵

注意了:Grub2中已經設定好了壹些內部的快捷鍵比如:c 不過是小寫,我們就不要用快捷鍵 --hotkey 設置成和小寫的內部快捷鍵相同,注意是不要相同的小寫按鍵因為設置後快捷鍵 --hotkey 是不會生效的,但是呢,可以設置個大寫,另外在不衝突的情況下快捷鍵是不分大小寫的

先給例子:

menuentry "重启计算机" --hotkey=+ {
reboot
}

menuentry "关机计算机" --hotkey=- {
halt
}

菜單參數 --hotkey=快捷鍵

如上面的,按下 + 就會計算機就會重啟;按下 - 就會計算機就會關鍵


Grub2內部設定的快捷鍵
c (小寫)是Grub2的命令行快捷鍵
先看例子:

menuentry "重启计算机" --hotkey=c {
reboot
}

menuentry "关机计算机" --hotkey=C {
halt
}

在 重启计算机 的這個菜單快捷鍵是不會生效,也不會提示有問題,因為用 c (小寫)這是Grub2內部設定的快捷鍵
在 关机计算机 的這個菜單快捷鍵是會生效,因為用 C(大寫)不是Grub2內部設定的快捷鍵
這是我自己試驗過的


現在來說說菜單參數 --class
菜單參數  --class 名稱
其實這個參數 --class 是配合Grub2主題來用的,在使用主題後Grub2的菜單畫面會有所變化。在編輯菜單時根據每個菜單選項內容大概的標識,給參數 --class 後面加個合適的名稱,到時候在啟動主題時每個菜單前面就會有個小圖標,會好看些,具體說明看下面。

我使用主題後,比如:

大多時候菜單的是沒有加參數 --class 的
menuentry "重启计算机"  {
reboot
}
啟動后如下圖:




菜單參數 -class windows
菜單參數後面的 windows 是個標識,也可以說是個標籤,Grub2在使用主題並且啟動時會根據 windows 找出叫 windows 的ico圖標文件名,然後給菜單選項前面加上這個圖標。

menuentry "重启计算机" --class windows {
reboot
}

注意了:在參數 -class 有效時只使用從左邊開始的第壹個參數 -class ,並且只使用壹個,第壹個,無效時使用第貳個,以此類推

在Grub2主題使用時如下圖:注意下 菜單 重启计算机 前面小圖標



点评

www.gzdw8.com 打鱼机  发表于 2015-4-13 13:54

评分

参与人数 30无忧币 +148 收起 理由
qinghong0811 + 1 非常的用心了,感谢分享。
wuxin9712 + 5
pcwww + 5 总结的非常棒,细节很到位,谢谢!
不知名悲伤 + 1 很给力!
zhxy9804 + 10 赞一个!
jack612 + 1 真是一篇神作品阿,佩服佩服
liuzhaoyzz + 10 很给力!
sghihor + 5
brook + 5 太棒的教程,希望楼主以后继续书写新的篇章.
pyjhhh + 5
goodtime + 5 很给力!
yangxucs + 5 很给力!
Mindfly + 5 赞一个!
lookerJ + 5 真的感激
oldking + 5 很给力!
soul387 + 5 赞一个!
jnax + 5 很给力!
有阴也有阳 + 5 赞一个!
boy6585948 + 5 很给力!
zhanguser + 5 很给力!
MoHenHM + 5 很给力!
ql1307096 + 5
2012_JingSao + 5 很给力!
hehui + 5 赞一个!
wintoflash + 5 很给力!
2010wzq + 5 赞一个!
shan + 5 很给力!
peterpanheaven + 5 很给力!
qq5274202 + 5 grub2没有定义音量加减做快捷方式,真郁闷
LowerAI + 5 很给力!

查看全部评分

2#
 楼主| 发表于 2014-9-29 18:58:41 | 显示全部楼层
LowerAI 发表于 2014-9-29 18:37
请问楼主知不知道Grub2中的halt命令执行后只能休眠不能彻底关机是怎么回事?

這個我不清楚,不過Grub2還在開發中,目前在某一些功能還不是很好,沒GRUB4DOS穩定,需要等待開發完善。
回复

使用道具 举报

3#
 楼主| 发表于 2014-9-29 19:04:13 | 显示全部楼层
我沒網盤,文件壓縮後3M,上傳不了。沒辦法把我在用的傳上來,可以照着上面的文件夾建立和複製,命令照搬也能完成定制。
回复

使用道具 举报

4#
 楼主| 发表于 2014-9-30 09:31:07 | 显示全部楼层
420841698 发表于 2014-9-30 09:16
中文显示问题,依旧存在,据qemu测试找不路径

先檢查下路徑,中文顯示又問題的話,應該是找不到字體。

点评

我是这样改 grub-mkimage.exe -d i386-efi -p /Grub -o bootia32.EFI -O i386-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file 按道理,放在u盘下应该是efi +g  详情 回复 发表于 2014-9-30 16:31
回复

使用道具 举报

5#
 楼主| 发表于 2014-9-30 09:42:27 | 显示全部楼层
我的附件中Grub2可以在U盤中能成功啟動,如果測試的硬碟中帶有多個分區,那就要自己確定下(hdx,y)的位置以及重新執行定制命令

Grub2_BIOS_0.png (9.97 KB, 下载次数: 464)

Grub2_BIOS_0.png
回复

使用道具 举报

6#
 楼主| 发表于 2014-9-30 18:40:08 | 显示全部楼层
本帖最后由 極限驅動 于 2014-9-30 18:43 编辑
420841698 发表于 2014-9-30 16:31
我是这样改
grub-mkimage.exe -d i386-efi  -p /Grub  -o bootia32.EFI -O  i386-efi part_gpt part_msd ...


定制的命令中最好是加上(hdx,y)來定位,壹般大多是(hd0,1),除非U盤做啟動盤時結構比較特別,我在上面有提到,你如果是安裝在U盤上,只有壹個分區,那麼加上(hd0,1)應該就沒問題。你的定制命令改成:
grub-mkimage.exe -d i386-efi  -p (hd0,1)/Grub  -o bootia32.EFI -O  i386-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file

不過你這你做完後Grub2只支持UEFI的32Bit,grub.cfg這個文件只要注意裏面配置路徑就行了,順便你在grub.cfg文件底部加上下面這段,配置的具體寫法可以在這論壇找,在這論壇的東西很多都很詳細。

menuentry "重启计算机"{
reboot
}

menuentry "关机计算机"{
halt
}

点评

找到原因了,也不是(hd0,1)问题,是grub.cfg的问题,字体格式不对必须转换成utf-8格式,不过感觉asci.pf2才是ascii格式吧  详情 回复 发表于 2014-9-30 20:44
#¼ÓÔØÄ£¿éÎļþ set pager=1 insmod all_video insmod video_bochs insmod video_cirrus insmod efi_gop insmod efi_uga insmod font  详情 回复 发表于 2014-9-30 20:34
回复

使用道具 举报

7#
 楼主| 发表于 2014-9-30 21:26:45 | 显示全部楼层
420841698 发表于 2014-9-30 20:44
找到原因了,也不是(hd0,1)问题,是grub.cfg的问题,字体格式不对必须转换成utf-8格式,不过感觉asci. ...

除了編碼是要UTF8之外,字體儘量用unicode.pf2字體好了,萬國碼字體
回复

使用道具 举报

8#
 楼主| 发表于 2014-10-9 19:12:13 | 显示全部楼层
qq5274202 发表于 2014-10-9 08:50
在grub-mkimage定制命令中使用參數  -c (小寫c)

运行时,提示找不到这个配置文件

grub-mkimage定制命令中使用參數  -c (小寫c)時需要在後面加上配置文件,要確保這個配置文件的路徑沒錯誤。另外你安裝在单硬盘上可能需要替換原來的引導,EFI啟動是需要ESP分区的,实际上就是個FAT的分區,至于大小无所谓,但也别太小。

点评

感谢,这个问题已经得到解决,现在grub2能正常引导电脑,现在碰到另一个麻烦的事情 我的目的是为了在电脑上装android X86 电脑是dell venue 11 pro (I5)平板,EFI 64位 硬盘是SSD 128G,GPT分区,500M(E  详情 回复 发表于 2014-10-10 11:50
回复

使用道具 举报

9#
 楼主| 发表于 2014-10-12 22:24:47 | 显示全部楼层
本帖最后由 極限驅動 于 2014-10-12 22:30 编辑
qq5274202 发表于 2014-10-10 11:50
感谢,这个问题已经得到解决,现在grub2能正常引导电脑,现在碰到另一个麻烦的事情


帖子更新了,你看一下能不能幫上你
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=339411

点评

非常感谢,英文不好,好像没有定义音量键,也不能用组合键,平板不接键盘的话,多系统没什么意义了  详情 回复 发表于 2014-10-13 10:03
回复

使用道具 举报

10#
 楼主| 发表于 2014-10-13 12:33:50 | 显示全部楼层
qq5274202 发表于 2014-10-13 10:03
非常感谢,英文不好,好像没有定义音量键,也不能用组合键,平板不接键盘的话,多系统没什么意义了

...

我沒有找到Grub2有關音量鍵和組合鍵的相關說明,不過你可以設置數字鍵,看合不合用

点评

因为是平板,平时不接键盘鼠标的,机身上就音量键,win键,电源键  详情 回复 发表于 2014-10-14 11:22
回复

使用道具 举报

11#
 楼主| 发表于 2014-10-18 00:30:20 | 显示全部楼层
muonw 发表于 2014-10-15 22:02
楼主啊,以前我一直用grub4dos的grldr.mbr grldr menu.lst来引导nor.img nor.iso来完成系统备份恢复,很早就 ...

除了第伍個問題,你的第壹個到第肆個問題都可以規為壹類,因為這些本身就關係到路勁。
在我的第壹個截圖中除了主板模式需的內核文件夾外,unicode.pf2、zh_CN.mo、zh_TW.mo這叁個我推薦保留,除了是顯示中文外,在叁個模式中是通用的,主板模式所需的內核文件夾可以看是否自己需要。

路徑是可以隨便改的,因為在帖子中說了,grub-mkimage定制時是會涉及到Grub2啟動路勁,在參數 -p 後面的路徑或是在參數 -c 的配置文件中把路徑修改,這樣在Grub2啟動時就能找到自己

至於主板模式所需的內核文件夾其實都可以放到壹起的,只不過這樣就有點為難了Grub.CFG這個配置文件。因为啟動後Grub.CFG中的啟動菜單的參數在BIOS和UEFI的主板模式中是不通用的,其中UEFI模式還分32位和64位
另啟動EFI文件也要分成32位和64位,所以到時候你的Grub.CFG文件可能要做好分類。

我在定制命令參數 -o 中之所以不直接命名UEFI默認的引導名主要是希望能清楚些,如果自己需要是可以直接在定時命令中把定制出的EFI文件改名成UEFI的默認引導名。

Grub2的啟動文件其實不止Boot.img這壹個,其中有diskboot.img、cdboot.img、pxeboot.img、lnxboot.img。这些虽然有说明,但是有些我还不清楚具体的作用。
也不知我這帖子這麼長,字這麼多,到底好不好,看的會不會有點煩呢。
回复

使用道具 举报

12#
 楼主| 发表于 2014-10-18 01:21:57 | 显示全部楼层
qq5274202 发表于 2014-10-17 16:49
code:

Command: linux file …

我的英文不是很好,呵呵,大概理解如下:
這個參數linux 主要是說在x86的系统時會使用32位引導,這時的視頻模式VGA將會失效。但是可以使用gfxpayload來強制控制視頻模式,可以使用 set gfxpayload=keep 這樣gfxpayload可以獲取VGA來控制視頻模式

不過這個選項 vga 似乎不是必要的,我很少用Linux,具體啟動參數可以參照這個論壇裏面的,另外這個參數還要配合參數 initrd 來引導啟動

另外有點我要說明:UEFI的64位是無法引導UEFI的32位以及BIOS模式下的引導程序的。也就是說UEFI的64位不可能引導32、16位的程序,只能引導啟動64位程序,還必須是EFI文件,除非你的機子同時支持BIOS;還有BIOS模式的引導參數和UEFI模式的引導參數是不相同的,UEFI相對簡單點,基本上只要用 chainloader 加載相應的EFI啟動文件就行了。

点评

太感谢了,您一楼的方法,grub2能够引导安卓x86(安装与运行) 安卓X86我装了两个版本,一个4.3,一个4.4 4.3能够进到安卓桌面,就是看不清,有点花屏,并且会显示成两个一模一样的屏,能看到wifi,蓝牙,关机  详情 回复 发表于 2014-10-20 14:13
回复

使用道具 举报

13#
 楼主| 发表于 2014-10-25 18:10:21 | 显示全部楼层
本帖最后由 極限驅動 于 2014-10-25 18:11 编辑
ludun 发表于 2014-10-25 16:50
楼主您好。我想问一下,Bios的引导和UEFI的32位64位引导,他们能不能共用同一个Grub.cfg文件。这样就简化了 ...


當然行了,全部都可以寫在Grub.CFG的菜單裏,只是多了會有點亂,到時記得做好分類

评分

参与人数 1无忧币 +5 收起 理由
ludun + 5 谢谢回复

查看全部评分

回复

使用道具 举报

14#
 楼主| 发表于 2014-10-26 09:36:45 | 显示全部楼层
ludun 发表于 2014-10-26 08:22
您好,谢谢您的回答。怎么设置才能使这三种启动方式都指向同一个Grup.cfg文件呢?

Grub2在啟動後會自動讀取內核文件夾所在目錄下的Grub.CFG菜單文件
所以,只要叁個內核文件夾直接放到同壹目錄下就行了,記得還要字體和語言文件。剩下的就是在定制命令中把路勁修改。

点评

定制命令中把路勁修改 谢谢回答。我现在就是没有明白UEFI定制时指向的路径。琢磨了两天了(我比较笨)  详情 回复 发表于 2014-10-26 10:09
回复

使用道具 举报

15#
 楼主| 发表于 2014-10-28 09:21:45 | 显示全部楼层
本帖最后由 極限驅動 于 2014-10-28 10:21 编辑
ludun 发表于 2014-10-27 18:04
启动已经成功,我只是想弄明白为什么用下面的命令就不能成功启动。
BIOS模式定制:
grub-mkimage.exe ...


你把原來的Config.CFG内容:
search.file /boot/grub/grub.cfg root
set prefix=($root)/boot/grub/

去掉($root) 修改成
search.file /boot/grub/grub.cfg root
set prefix=/boot/grub/

你成功定制的命令是怎麼樣的,給我看一下

U盤先確定是否只有壹個分區,電腦是怎麼識別你的U盤那無所謂
壹般情況下先選用Boot.img,不行再換lnxBoot.img來啟動。
啟動到菜單的時候,如果只能看到數字和英文,其餘的都看不到,那就說明你當期模式沒有成功加載字體,這時你就要檢查Grub.CFG菜單的字體路徑
定制時沒有特別要求推薦用的參數 -p 來設定路徑,基本上U盤只有壹個分區那位置就是(hd0,1)

点评

U盘有两个分区,启动区在第二部分(想把启动区隐藏,这个区在ls命令下显示为(hd0,msdos2),文件结构如下: 卷 SYS 的文件夹 PATH 列表 卷序列号为 0008-C1F1 j: ├─EFI │ ├─Boot │ │ │ Bootia32.  详情 回复 发表于 2014-10-28 11:29
回复

使用道具 举报

16#
 楼主| 发表于 2014-10-28 12:32:57 | 显示全部楼层
本帖最后由 極限驅動 于 2014-10-29 01:09 编辑
ludun 发表于 2014-10-28 11:29
U盘有两个分区,启动区在第二部分(想把启动区隐藏,这个区在ls命令下显示为(hd0,msdos2),文件结构如 ...


你的Grub2的結構沒什麼問題了,不過在定制完成後可以刪掉這些文件:Config.CFG、I386-PC.CFG
目前電腦只對硬碟的識別是比較固定的,不像U盤在不同的機器上面會有不同的識別
由於你的U盤有兩個分區,那定制命令最好選用參數 -c 來搜索定位

參數 -c 的配置文件Config.CFG内容:
search.file /Grub2/BIOS/grub.cfg root
set prefix=/Grub2/BIOS

然後試試定制BIOS模式。

抱歉,之前沒仔細看你Grub2的路徑結構

点评

我是在win8.1下定制的文件,每次启动都会出现“?set”的错误。 现在觉得是win8.1中txt文本的UTF-8的编码问题不能成功。你们觉得是觉得是不是这个问题。 在虚拟机中试试吧。 谢谢这几天来各位大侠、朋友的回复!  详情 回复 发表于 2014-10-28 22:29

评分

参与人数 1无忧币 +5 收起 理由
ludun + 5 现在觉得是CFG文件的编码问题

查看全部评分

回复

使用道具 举报

17#
 楼主| 发表于 2014-10-29 00:33:13 来自手机 | 显示全部楼层
本帖最后由 極限驅動 于 2014-10-29 01:06 编辑

如果啟動時出現閃過的錯誤提示,可以忽略掉,出現原因是Grub.CFG文件编碼使用了UTF-8帶ROM頭,其實標準的UTF-8編碼是不帶ROM頭的。
Grub.CFG文件应該使用UTF-8無ROM編碼,使用帶ROM頭的Grub.CFG文件,它的第壹行配置參數會無法正確識別,也就是第壹行配置無效,所以會出現啟動時閃過錯誤提示。
可以實驗一下,在Grub.CFG文件的第壹行隨便填寫壹些字母,啟動時這些開頭的個別字母就會在閃過錯誤提示中出現。
因為算不上真正的錯誤,Grub2照樣能啟動。我也就沒在貼子中說出來,覺得在這點讓你迷茫了,很不好意思!下次我修改貼子!
還有Windows下自帶的文本編輯在每次保存文本為UTF-8編碼時,都是帶ROM的,必須使用其它文本編輯修改成UTF-8無ROM

点评

用Notepad++编辑即可。  详情 回复 发表于 2014-10-29 12:04
回复

使用道具 举报

18#
 楼主| 发表于 2014-10-29 01:16:47 | 显示全部楼层
本帖最后由 極限驅動 于 2014-10-29 01:26 编辑
2011phzhc 发表于 2014-10-28 23:35
从你列出的结构看Config.CFG路径有误。
Config.CFG内容:
search.file /EFI/Grub2/BIOS/grub.cfg roo ...


他在57樓路徑中你好像看錯了

內核文件夾是在 /Grub2/BIOS/ 位置是直接在根目錄中
不在根目錄的 EFI 之內,也就是只有:
/EFI/Boot
/EFI/microsoft
不存在  /EFI/Grub2/BIOS
回复

使用道具 举报

19#
 楼主| 发表于 2014-11-3 15:27:44 | 显示全部楼层
alex20092009 发表于 2014-11-2 21:53
你好:
按照你的帖子一步一步操作,试了多天一直都不成功开机,可否请你寄你批次处理档案给我,看能不能成功,t ...

你的內核文件夾的路徑是在哪裡?以及你的定制命令是什麼?我看壹下
回复

使用道具 举报

20#
 楼主| 发表于 2014-11-8 19:53:20 | 显示全部楼层
yang77 发表于 2014-11-8 18:59
在硬盘上的定制应该怎么做呢?学习一下,借鉴一下


这个方法通用的
回复

使用道具 举报

21#
 楼主| 发表于 2014-11-29 12:24:40 | 显示全部楼层
2011killwintel 发表于 2014-11-23 22:12
也就是独立以文件形势存在,可以被bootmgr引导,即使系统中只有这一个文件,也可以进入自定义的grub2,,,,,, ...

好像不行。Grub2想以獨立文件存在,還要可以被引導,估計是辦不到,即使辦到了,也會缺少很多功能。因為Grub2是依賴加載模塊來獲取某些功能的。假如,功能齊全的話,那麼這個獨立文件也會非常大。
回复

使用道具 举报

22#
 楼主| 发表于 2015-2-19 19:27:33 | 显示全部楼层
本帖最后由 極限驅動 于 2015-2-19 19:30 编辑
ql1307096 发表于 2015-2-19 10:56
楼主,按照您的方法定制core.img,在启动的时候,提示:
unknown command “?search.file'
try ‘help’ ...


Grub2.cfg的編碼準確點是要UTF-8無BOM頭
或者在你的Grub2.cfg編輯的時候在第壹行空格
不好意思,在編碼這讓你迷惑了

点评

搞定了,感谢楼主,祝楼主新年快乐  详情 回复 发表于 2015-2-22 11:14
回复

使用道具 举报

23#
 楼主| 发表于 2015-2-22 12:24:32 | 显示全部楼层
本帖最后由 極限驅動 于 2015-2-22 12:26 编辑
ql1307096 发表于 2015-2-22 11:42
楼主,按照您的方法生成的core.img和g2ldr,用grub4dos都能正常的引导,但是再装入mbr的时候却出了问题,按 ...


所謂的g2ldr.mbr其實就是G2ld2
就是Boot.img和Core.img用合并來的
在貼子中被我稱為扇區文件

如果你導入63扇區還是不能啟動的話,你可以嘗試全部導入

祝你新年快樂{:soso_e100:}

点评

把g2ldr全部导入到主引导,可以启动了,但是,如果再win7下,我不想改mbr的话,应该怎么做到呢?bootmgr好像不能引导过大的启动文件  详情 回复 发表于 2015-2-26 09:47
回复

使用道具 举报

24#
 楼主| 发表于 2015-2-28 15:20:07 | 显示全部楼层
ql1307096 发表于 2015-2-26 09:47
把g2ldr全部导入到主引导,可以启动了,但是,如果再win7下,我不想改mbr的话,应该怎么做到呢?bootmgr ...

這個我曾經嘗試過,沒成功過,但是不嫌麻煩的話可以間接啟動
bootmgr引導Grub4dos再引導Grub2

回复

使用道具 举报

25#
 楼主| 发表于 2015-3-7 10:26:12 | 显示全部楼层
青青草 发表于 2015-3-5 23:37
楼主,你好!定制好后,启动,出现如下图情况,不知怎么回事?
大意是:错误:没有视频模式激活
应如何解 ...

Grub2的定制命令發出來看壹下,很多時候都是命令出錯,啟動不了

点评

找到原因了! 谢谢!  详情 回复 发表于 2015-3-7 16:14
rem UEFI模式的64Bit定制: grub-2.02~beta2-for-windows\grub-mkimage.exe -d grub-2.02~beta2-for-windows\x86_64-efi -c Config.CFG -o %name%:\efi\boot\Bootx64.EFI -O x86_64-efi regexp part_gpt part_msdo  详情 回复 发表于 2015-3-7 12:08
回复

使用道具 举报

26#
 楼主| 发表于 2015-4-6 15:31:32 | 显示全部楼层
2012mshs 发表于 2015-4-6 15:07
Grub2 2.02-beta-22 ubuntu i386-pc
[/code]
grub-mkimage.exe -d I386-PC -p /boot/grub -o Core.img -O ...

What ?

Detailed   ^_^
回复

使用道具 举报

27#
 楼主| 发表于 2015-4-12 21:20:48 | 显示全部楼层
2012mshs 发表于 2015-4-6 20:11
Grub2 2.02-beta2-22 ubuntu i386-pc
http://mirrors.kernel.org/ubuntu/pool/main/g/grub2/grub-pc-bin_2 ...

you are all 62
回复

使用道具 举报

28#
 楼主| 发表于 2015-7-2 08:36:44 | 显示全部楼层
alex20092009 发表于 2015-6-29 20:28
楼主,按照您的方法定制core.img,在启动的时候,提示:
GRUB loading.
Welecom to GRUB!

你嘗試下導入全部扇區,不要選63扇區

点评

导入全部扇区,不选63扇区,bootice完,u碟说要重新格式化  详情 回复 发表于 2015-7-10 11:14
回复

使用道具 举报

29#
 楼主| 发表于 2015-7-10 22:50:26 | 显示全部楼层
本帖最后由 極限驅動 于 2015-7-10 22:56 编辑
alex20092009 发表于 2015-7-10 11:14
导入全部扇区,不选63扇区,bootice完,u碟说要重新格式化


這個問題我來簡單說下原因。
XP時代的起始扇區是63,也就是說在這種分區下,壹次性導入分區的扇區不能大於63,超過就分區損壞。
到了4K硬盤時代,開啟講究對齊4K,也就是起始扇區起碼是1024、2048。。。
對齊4K扇區的1024、2048,壹次性導入分區的扇區則不會引起分區損壞
估計你的U盤是的起始扇區是63,貼子中,說選63(不是一定要63)我就是怕有的人會引起分區損壞,自然就是數據沒了。
還有但是選63是有缺點的,很明顯這樣的扇區文件G2ldr導入不完整,又有可能無法成功啟動。
貼子中,是不是在導入扇區文件G2ldr這方面有點矛盾,前面給出的定制命令的文件會大於63,後面又說不能大於63,但是我卻沒在這方面解釋清楚,確實是我的疏忽。
最後,你的問題可以使用DiskGenius來重新分區下你的U盤。記得對齊4K,就是在分區是選2048
回复

使用道具 举报

30#
 楼主| 发表于 2019-3-17 13:01:03 | 显示全部楼层
alex20092009 发表于 2019-3-16 23:05
请问楼主在主引导记录介面选择恢复MBR(R),要选择Windows NT 5.x/6.x MBR, 还是GRUB 2.00那项

看你是打算用什么引导,打算恢复windows的引导就选Windows NT 5.x/6.x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-24 18:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表