无忧启动论坛

 找回密码
 注册
搜索
WEPE笔记本电脑手机维修小包 IT发烧友的必备工具最纯净的「微PE装机优盘」UEPON大师作品卡瑞飞系统和装机二合一超级U盘
杏雨梨云专业量产版USB-CD启动U盘,装机专用系统gho:最纯净好用系统下载站广告联系 QQ:184822951 微信:wuyouceo
查看: 13327|回复: 77

[原创] Windows下将GRUB2装入memdisk

    [复制链接]
发表于 2015-3-1 15:56:22 | 显示全部楼层 |阅读模式
本帖最后由 ql1307096 于 2015-3-7 10:38 编辑

在论坛几位前辈的帮助下,成功将grub2装入到memdisk中,这样不用带着一大堆的模块,整个grub2就几个文件。发布一下方法,供新手参考吧,老手的话看看能否提出更好的意见。。
1,首先下载grub2的Windows包
http://alpha.gnu.org/gnu/grub/grub-2.02~beta2-for-windows.zip
2,下载并安装Cygwin(在windows下使用linux命令,在本文中主要为了打包cpio文件),下载并安装cygwin需要点时间,可以搜索下载离线安装包,在下载或者安装的过程中可以干些其他的事情,,
3,解压grub2的windows包,随便解压到哪里都行,我解压到D盘根目录下,进入到解压后的i386-pc目录里,这里有grub2的全部模块,如果全部安装到memdisk中,最后编译的时候会提示内核太大而失败,因此只能做适当的精简,保留必须的,文件太多了,一个个的复制实在是麻烦,我写了个批处理,放到i386-pc目录运行一下就行,运行成功后会在i386-pc目录生成memdisk.cpio\boot\grub\i386-pc新的目录结构,memdisk.cpio\boot\grub\i386-pc下面则是精简后的模块了。现在的目录应该是这样的:d:\grub-2.02~beta2-for-windows\i386-pc\memdisk.cpio\boot\grub\i386-pc
4,下面的几步操作都在memdisk.cpio目录下进行的,在boot\grub下新建一文本文件,改名为grub.cfg,输入以下内容,保存为utf-8无bom格式编码,
set locale_dir=${prefix}/locale
if search -s -f /grub2/grub.cfg; then
        search --no-floppy -f --set=root  /grub2/grub.cfg
        configfile /grub2/grub.cfg
  else
        loadfont $prefix/font.pf2
        menuentry "" {
        true
        }
        menuentry "===cat (memdisk)/bot/grub/grub.cfg===" {
        true
        }
fi

5,在boot\grub下建立目录locale,将d:\grub-2.02~beta2-for-windows\locale\zh_CN\grub.mo改名为zh_CN.mo并复制到刚刚新建的locale目录下,将附件中的font.pf2复制到boot\grub下,现在文件基本上都准备好了memdisk目录下的文件如下:

memdisk中的文件

memdisk中的文件

6,现在cygwin应该安装好了吧?运行一次看看,@前面的就是用户名了,

cygwin

cygwin

将memdisk目录下的整个boot目录剪切到cygwin安装目录下的home/用户名/目录下,在cygwin中运行命令:find boot -print|cpio -o -H newc > /memdisk.cpio,如果无错误的话应该显示如下图:生成的文件memdisk.cpio在cygwin的安装目录下,

cygwin打包

cygwin打包

7,移动memdisk.cpio到d:\grub-2.02~beta2-for-windows下,运行cmd,切换到d:\grub-2.02~beta2-for-windows目录,运行:
grub-mkimage.exe -O i386-pc -d i386-pc -p (memdisk)/boot/grub -o core.img -m memdisk.cpio -v biosdisk newc blocklist fat iso9660 pxe reiserfs memdisk cpio minicmd part_msdos ext2 ntfs loopback gfxmenu gfxterm reboot normal search。生成的core.img大约300多K,将core.img移动到d:\grub-2.02~beta2-for-windows\i386-pc下,命令行下运行copy /b lnxboot.img+core.img g2ldr

8,完成了,g2ldr可以用Grub4dos的kernel启动,应该也可以用g2ldr.mbr启动,这个我没有试过,最后看看启动的画面

g4d引导

g4d引导

grub2菜单

grub2菜单

grub2环境

grub2环境


本文所提及的附件 附件.7z (209.18 KB, 下载次数: 200)

点评

grub-2.02~beta2-for-windows.zip 本来就是直接在windows命令行中使用的东西为什么要多此一举安装个Cygwin运行环境?  发表于 2016-4-17 23:30
既然在linux下已经完全能实现了,何必多此一举在windows再安装伪环境再折腾一次呢?如果说网友只需要成品,你这就是残缺的本成品,如果网友需要掌握过程,就不如在linux下直接操作.  发表于 2015-4-8 12:48
http://www.gaoxuey.com/ 古代穿越小说  发表于 2015-3-5 05:48
http://www.nbymzx.com/Show/5e3pUWEp0WtT/ 妃子谋:王爷采花我采草  发表于 2015-3-3 21:51

评分

参与人数 1无忧币 +5 收起 理由
shan + 5 赞一个!

查看全部评分

 楼主| 发表于 2015-3-1 16:01:04 | 显示全部楼层
为什么不用winly?不知道是不是我的操作问题,按照神雕大侠的方法,下载他的源码在linux下编译后,生成的winlyldr和winly.bin都是0字节的,另外在linux下编译grub2,最后得到的文件不能启动,只能在windows下使用cygwin了,也许是我的方法不对,再不就是我电脑的问题了吧{:soso_e100:}
回复

使用道具 举报

发表于 2015-3-1 18:10:56 | 显示全部楼层
谢谢楼主公布自己心得,新年快乐哈!

点评

同乐  详情 回复 发表于 2015-3-1 21:45
回复

使用道具 举报

发表于 2015-3-1 20:51:54 | 显示全部楼层
楼主啊,CYGWIN 选择包进行安装  应该选择安装那些呢?详细指点一下吧!是在不懂,一头雾水呢。。。

点评

我是默认状态安装一遍,然后搜索cpio再次安装就有了  详情 回复 发表于 2015-3-1 21:42
回复

使用道具 举报

 楼主| 发表于 2015-3-1 21:42:54 | 显示全部楼层
shan 发表于 2015-3-1 20:51
楼主啊,CYGWIN 选择包进行安装  应该选择安装那些呢?详细指点一下吧!是在不懂,一头雾水呢。。。

我是默认状态安装一遍,然后搜索cpio再次安装就有了
回复

使用道具 举报

 楼主| 发表于 2015-3-1 21:45:44 | 显示全部楼层
shan 发表于 2015-3-1 18:10
谢谢楼主公布自己心得,新年快乐哈!

同乐
回复

使用道具 举报

发表于 2015-3-2 10:32:18 | 显示全部楼层
楼主辛苦了,收一个先。。。
回复

使用道具 举报

发表于 2015-3-2 20:40:20 | 显示全部楼层
Windows下将GRUB2装入memdisk
回复

使用道具 举报

发表于 2015-3-3 08:37:43 | 显示全部楼层
真的假的,不过还是先谢了
回复

使用道具 举报

发表于 2015-3-3 10:02:42 | 显示全部楼层
成品不错学习
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2019-6-24 23:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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