无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 極限驅動
打印 上一主题 下一主题

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

    [复制链接]
1#
发表于 2014-10-25 16:50:07 | 显示全部楼层
楼主您好。我想问一下,Bios的引导和UEFI的32位64位引导,他们能不能共用同一个Grub.cfg文件。这样就简化了菜单的编辑。

点评

當然可以了,在Grub.CFG的菜單裏做好分類就行  详情 回复 发表于 2014-10-25 18:10
可参考:http://bbs.wuyou.com/forum.php?mod=viewthread&tid=337383&extra=page%3D1  详情 回复 发表于 2014-10-25 17:06
回复

使用道具 举报

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

点评

指向同一路径即可。  详情 回复 发表于 2014-10-26 09:36
Grub2在啟動後會自動讀取內核文件夾所在目錄下的Grub.CFG菜單文件 所以,只要叁個內核文件夾直接放到同壹目錄下就行了,記得還要字體和語言文件。剩下的就是在定制命令中把路勁修改。  详情 回复 发表于 2014-10-26 09:36
回复

使用道具 举报

3#
发表于 2014-10-26 10:06:57 | 显示全部楼层
本帖最后由 ludun 于 2014-10-26 10:25 编辑
2011phzhc 发表于 2014-10-26 09:36
指向同一路径即可。


指向同一路径的命令是什么?比如说都指向Grub2/bios/grub.cfg,这个命令怎样写?
grub-mkimage.exe -d I386-PC -p (hd0,1)/Grub2/BIOS -o Core.img -O i386-pc biosdisk part_msdos fat exfat ntfs
这个命令是让Grub启动指向Grub2/Bios/grub.cfg
那么EFI启动怎么指向Grub2/Bios/grub.cfg?
比如我用(以bootia.efi启动为例)
grub-mkimage.exe -d i386-efi  -c I386-EFI.CFG -o I386-EFI.EFI -O  i386-e
fi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal sear
I386-EFI.CFG配置如下
search.file /grub2/BIOS/Grub.CFG root
set prefix=/grub2/UEFI_i386
但是在启动的时候,只能启动到类似命令符的   GRUB>   状态。
能请您帮助写下命令吗?
多谢!

点评

在帖子里头有命令的解释啊,你没看吗  详情 回复 发表于 2014-10-27 11:03
BIOS模式定制: grub-mkimage.exe -d I386-PC -c Config.CFG -o Core.img -O i386-pc biosdisk part_msdos fat exfat ntfs ext2 iso9660 udf configfile search help reiserfs font linux chain search_fs_file  详情 回复 发表于 2014-10-26 21:31
回复

使用道具 举报

4#
发表于 2014-10-26 10:09:38 | 显示全部楼层
本帖最后由 ludun 于 2014-10-26 10:34 编辑
極限驅動 发表于 2014-10-26 09:36
Grub2在啟動後會自動讀取內核文件夾所在目錄下的Grub.CFG菜單文件
所以,只要叁個內核文件夾直接放到同 ...


定制命令中把路勁修改
谢谢回答。我现在就是没有明白UEFI定制时指向的路径。琢磨了两天了(我比较笨)

bootia32.efi定制的命令
J:\grub>grub-mkimage.exe -d i386-efi  -p /grub2/bios -o I386-EFI.EFI -O  i386-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal sear
ch_fs_file

Grub.cfg文件中的部分命令

#加载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 /grub2/bios/back.jpg

但是在运行的时候不能加载字体和图片
回复

使用道具 举报

5#
发表于 2014-10-26 22:02:15 | 显示全部楼层
本帖最后由 ludun 于 2014-10-26 23:13 编辑
2011phzhc 发表于 2014-10-26 21:31
BIOS模式定制:
grub-mkimage.exe -d I386-PC  -c Config.CFG  -o Core.img -O i386-pc biosdisk part_ ...


谢谢!我试一下,启动了回来给你加分。多谢!
大侠,模拟启动还是停在 grub>  ,其中出现下图

新建截图-20141026222625.jpg (35.99 KB, 下载次数: 356)

这是Bios启动中出现的问题

这是Bios启动中出现的问题

新建截图-20141026222609.jpg (27.2 KB, 下载次数: 363)

这是Bios模式启动结果

这是Bios模式启动结果

新建截图-20141026230951.jpg (55.63 KB, 下载次数: 341)

按照你给的命令,Bootia32.efi启动

按照你给的命令,Bootia32.efi启动

新建截图-20141026231007.jpg (41.21 KB, 下载次数: 343)

按照你给的命令,Bootia32.efi启动,发现不了halt

按照你给的命令,Bootia32.efi启动,发现不了halt

点评

这帖子很详细,你先要看完,你你可以去把楼主的grub2下载过来,然后全部复制到一起,在根据楼主的命令去修改路径,就可以了  详情 回复 发表于 2014-10-27 11:48
另外,字体文件等也应放在boot/grub下。 注意路径:boot/grub  详情 回复 发表于 2014-10-26 23:56
1、运行BOOTICE,选择U盘,主引导记录/恢复MBR/选择grldr.mbr/恢复。 2、grub.cfg放在boot/grub下  详情 回复 发表于 2014-10-26 23:52
回复

使用道具 举报

6#
发表于 2014-10-27 15:55:41 | 显示全部楼层
本帖最后由 ludun 于 2014-10-27 16:12 编辑
天地四叶草 发表于 2014-10-27 11:03
在帖子里头有命令的解释啊,你没看吗


帖子里面的每个命令我都实际操作了,也按照我需要的修改了路径,但是EFI的启动就是不能加载汉字,现在我把EFI的启动指向了GRUB2/bios/grub.cfg,并且把I386-efi和x86_64-efi的包也复制到Grub2/Bios 下,才能识别汉字和图片。
回复

使用道具 举报

7#
发表于 2014-10-27 16:06:41 | 显示全部楼层
本帖最后由 ludun 于 2014-10-27 16:10 编辑
天地四叶草 发表于 2014-10-27 11:48
这帖子很详细,你先要看完,你你可以去把楼主的grub2下载过来,然后全部复制到一起,在根据楼主的命令去 ...


这个帖子的命令我也操作了,但是  BIOS模式定制 命令不能启动系统,显示的就是Unknown command ‘?search.file '. 其他的“UEFI模式的32Bit定制和UEFI模式的64Bit定制”可以执行。
另外,在Bios定制模式中,这个命令grub-mkimage.exe -d I386-PC  -c Config.CFG  -o Core.img -O i386-pc biosdisk part_msdos fat exfat ntfs ext2 iso9660 udf configfile search help  reiserfs font linux chain search_fs_file生成的Core.img 文件的大小是133K,与Boot.img合并生成的G2ldr文件,在用BOOTICE恢复主分区引导MBR是需要占用275扇区,手动修改成63扇区,仍然不能启动到Grub.cfg菜单。或者是用楼主的-p不加(hd0,1)的 grub-mkimage.exe命令,也是不能启动到Grub.cfg菜单。不知道是什么原因。请大家分析一下。

我的U盘和2011phzhc的U盘品牌是一样的, 也是闪迪(SanDisk)至尊极速(CZ80)32G U盘 USB3.0

点评

呵呵,到现在还没有弄好呀?  详情 回复 发表于 2014-10-27 16:19
回复

使用道具 举报

8#
发表于 2014-10-27 18:04:50 | 显示全部楼层
本帖最后由 ludun 于 2014-10-27 18:12 编辑
2011phzhc 发表于 2014-10-27 16:19
呵呵,到现在还没有弄好呀?


启动已经成功,我只是想弄明白为什么用下面的命令就不能成功启动。
BIOS模式定制:
grub-mkimage.exe -d I386-PC  -c Config.CFG  -o Core.img -O i386-pc biosdisk part_msdos fat exfat ntfs ext2 iso9660 udf configfile search help  reiserfs font linux chain search_fs_file
这个命令生成的core.img与lnxboot.img合并生成G2ldr文件大小是133K,bootice导入的时候,占用265扇区,就是不能引导。我的U盘是闪迪(SanDisk)至尊极速(CZ80)32G U盘 USB3.0,被电脑识别为本地磁盘。
Config.CFG内容:
search.file /boot/grub/grub.cfg root
set prefix=($root)/boot/grub/

新建截图-20141027180005.jpg (91.53 KB, 下载次数: 300)

BIOS模式定制

BIOS模式定制

新建截图-20141027180044.jpg (82.25 KB, 下载次数: 343)

Uefi32模式

Uefi32模式

点评

你把原來的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/ 你成功定制的命令  详情 回复 发表于 2014-10-28 09:21
1、Copy /B i386-pc\lnxBoot.img+Core.img Grldr 将生成的Grldr放在启动盘的根目录。 2、运行BOOTICE,选择U盘,主引导记录/恢复MBR/选择grldr.mbr/恢复。 grldr.mbr只占16扇区而已。  详情 回复 发表于 2014-10-27 19:16
回复

使用道具 举报

9#
发表于 2014-10-27 19:49:31 | 显示全部楼层
2011phzhc 发表于 2014-10-27 19:16
1、Copy /B i386-pc\lnxBoot.img+Core.img  Grldr
   将生成的Grldr放在启动盘的根目录。
2、运行BOO ...

你的意思是用Grub4Dos引导grldr。谢谢回复!
回复

使用道具 举报

10#
发表于 2014-10-28 11:29:57 | 显示全部楼层
極限驅動 发表于 2014-10-28 09:21
你把原來的Config.CFG内容:
search.file /boot/grub/grub.cfg root
set prefix=($root)/boot/grub/
...

U盘有两个分区,启动区在第二部分(想把启动区隐藏,这个区在ls命令下显示为(hd0,msdos2),文件结构如下:
卷 SYS 的文件夹 PATH 列表
卷序列号为 0008-C1F1
j:
├─EFI
│  ├─Boot
│  │  │  Bootia32.EFI
│  │  │  Bootx64.EFI
│  │  │  
│  │  ├─en-us
│  │  │      bootx64pe.efi.mui
│  │  │      
│  │  └─zh-cn
│  │          bootx64pe.efi.mui
│  │          bootia32.efi.mui
│  │         
│  └─microsoft
│      └─boot
│          │  BCD
│          │  memtest.efi
│          │  
│          ├─en-us
│          │      memtest.efi.mui
│          │      
│          └─Fonts
│         
├─Grub2
│  │  bootmgr
│  │  
│  └─Bios
│      │  Grldr
│      │  grub.cfg
│      │  I386-PC.CFG
│      │  memdisk
│      │  back.jpg
│      │  Config.CFG
│      │  
│      ├─i386-pc
│      │      acpi.mod
│      │      adler32.mod (这里面的文件没有全部列出)
│      ├─i386-efi
│      │      acpi.mod
│      │      adler32.mod
│      │      affs.mod    (这里面的文件没有全部列出)
│      ├─x86_64-efi
│      │      acpi.mod    (这里面的文件没有全部列出)
│      │      
│      └─fonts
│              unicode.pf2
│              
└─boot
    │  BCD
    │  boot.sdi
    │  
    ├─zh-cn
    │      bootmgr.exe.mui
    │      
    └─fonts
            chs_boot.ttf
            wgl4_boot.ttf
成果启动的命令是:
bios模式:
grub-mkimage.exe -d I386-PC -p /Grub2/BIOS -o Core.img -O i386-pc biosdisk part_msdos fat exfat ntfs

Copy /B i386-pc\Boot.img+Core.img G2ldr(用BOOTICEx86_v1.33—主引导记录—恢复MBR)

UEFI模式的32Bit定制:
grub-mkimage.exe -d i386-efi  -c Config.CFG -o Bootia32.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  -c Config.CFG -o Bootx64.EFI -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file

Config.CFG内容:
search.file /Grub2/BIOS/grub.cfg root
set prefix=($root)/Grub2/BIOS

点评

从你列出的结构看Config.CFG路径有误。 Config.CFG内容: search.file /EFI/Grub2/BIOS/grub.cfg root set prefix=($root)/EFI/Grub2/BIOS 另外,Config.CFG文件应与grub-mkimage.exe 放在同一位置。  详情 回复 发表于 2014-10-28 23:35
你的Grub2的結構沒什麼問題了,不過在定制完成後可以刪掉不要這些文件:Config.CFG、I386-PC.CFG 目前電腦只對硬碟的識別是比較固定的,不像U盤在不同的機器上面會有不同的識別 由於你的U盤有兩個分區,那定制命令  详情 回复 发表于 2014-10-28 12:32
回复

使用道具 举报

11#
发表于 2014-10-28 22:29:46 | 显示全部楼层
本帖最后由 ludun 于 2014-10-28 22:32 编辑
極限驅動 发表于 2014-10-28 12:32
你的Grub2的結構沒什麼問題了,不過在定制完成後可以刪掉這些文件:Config.CFG、I386-PC.CFG
目前電腦 ...


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

点评

不可能的。我跟你一模一样,系统也是win8.1,U盘也是闪迪CZ80  详情 回复 发表于 2014-10-28 22:58
回复

使用道具 举报

12#
发表于 2014-10-28 23:43:33 | 显示全部楼层
但是在用Dos下显示config.cfg文件内的时候,确实在前面多了个亮点,不知是什么。
另外,在用同样的命令编辑core.img文件的时候,dos查看文件的大小的时候,后编辑的文件比原来的文件少了3个字节。而且,我用原来的命令做引导的时候,总会出现Unknown command "???search.fle".。而后编辑的引导时就没有了前面的三个问号。

现在还怀疑grub2.02是不是不支持search.file这个命令了。真实愁疼!!!!!!!!
谢谢回复!这么晚还没休息呢。

点评

你先修正一下路径,然后定制看看,应该可以的。你的情况跟我一模一样呀! 如果还不行,我发一个批处理给你,简单操作。  详情 回复 发表于 2014-10-28 23:53
回复

使用道具 举报

13#
发表于 2014-10-28 23:57:35 | 显示全部楼层
朋友,确实找到毛病了,刚刚用Dos下编辑的config.cfg和grub.cfg文件,引导后一切正常啊!

另外,你的系统和U盘是和我的一样,但是我在编辑CFG文件的是使用的输入法是Win8.1自带的中文输入法,可能和输入法也有关系。找到了一些经验,失败是成功之母吗。终于找到毛病了,再次谢谢大家的回复与关心。

点评

行就好!互相帮助嘛!  详情 回复 发表于 2014-10-29 00:00
回复

使用道具 举报

14#
发表于 2014-10-29 17:37:12 | 显示全部楼层
本帖最后由 ludun 于 2014-10-29 17:39 编辑

如果啟動時出現閃過的錯誤提示,可以忽略掉,出現原因是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

这个是这次我做引导不成功的主要原因啊。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-5 02:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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