无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7123|回复: 7
打印 上一主题 下一主题

[求助] 关于grub2-mkimage的疑惑?

[复制链接]
跳转到指定楼层
1#
发表于 2014-12-11 21:43:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提供bootconfig.cfg写法(放置于HOME文件夹):
search.file /boot/grub/grub.cfg root
set prefix=($root)/boot/grub/
提供g2ldr生成命令写法:
sudo grub-mkimage -d /boot/grub/i386-pc -c bootconfig.cfg -o core.img -O i386-pc biosdisk part_msdos fat exfat ntfs ext2 iso9660 udf configfile search help  reiserfs font linux chain
sudo cat /boot/grub/i386-pc/lnxboot.img core.img > g2ldr

原来以为bootconfig.cfg是grub2的配置文件,后来才明白是生成core.img的选项,就是说core.img的内部内置了一个菜单,内容就是bootconfig .cfg内容,这两行是grub2的命令,查找 /boot/grub/grub.cfg,找到后将第一个找到此文件的分区名赋值给root,第二句是设定那些模块或者主题或者grub.cfg的路径为这个分区的boot/grub目录在使用insmod插入模块命令时,系统会在那个找到的分区的/boot/grub/i386-pc目录里着模块了?
另外如果运行:sudo cat /boot/grub/i386-pc/cdboot.img core.img >cdboot.bin
那这个cdboot.bin可以作为光盘引导文件了吧?前面那个img在i386目录里有很多类似的img,boot.img是硬盘的吧?

如果改成:
search.file /boot/xxxx/aaabbbccc root
set prefix=($root)/boot/grub/
configfile  xyz.cfg
确保grub目录下有aaabbbccc和菜单配置文件xyz.cfg
会不会最后生成的引导文件会在/boot/grub目录查找xyz.cfg,并显示相应菜单呢?或者第三行更本就不起作用,默认还是/boot/xxxx/grub.cfg?
有人试过么,
2#
 楼主| 发表于 2014-12-11 21:46:50 | 只看该作者
此外还有个-m参数,使用memdisk,这过选项能用在生成efi文件上么?生成单独全内置efi文件,所有模块都存在与内存盘上,不用担心找不到grub2模块目录,也不用担心grub2目录所在分区的文件系统无法访问的问题了?
回复

使用道具 举报

3#
 楼主| 发表于 2014-12-11 21:48:56 | 只看该作者
这个memdisk有什么要求,只知道是cpio格式的,至于里边是不是grub2配置文件和一些模块以及字体等,就像boot/grub目录一样呢?》

点评

memdisk是grub2的“内存盘设备” 目录结构和磁盘上是一样的。根设备表示为 (memdisk) 使用grub-mkimage生成的bios模式core.img文件不能过大。所以只要放些必要的 模块和文件即可。 使用efi则没有限制。我生成  详情 回复 发表于 2014-12-21 00:19
回复

使用道具 举报

4#
发表于 2014-12-12 00:43:25 | 只看该作者
最后一句configfile  xyz.cfg

是有效的
回复

使用道具 举报

5#
 楼主| 发表于 2014-12-12 05:56:53 来自手机 | 只看该作者
谢谢告知,看来-c确实是定制内置菜单的。
回复

使用道具 举报

6#
发表于 2014-12-21 00:19:37 | 只看该作者
my9823 发表于 2014-12-11 21:48
这个memdisk有什么要求,只知道是cpio格式的,至于里边是不是grub2配置文件和一些模块以及字体等,就像boot ...

memdisk是grub2的“内存盘设备”  目录结构和磁盘上是一样的。根设备表示为 (memdisk)

使用grub-mkimage生成的bios模式core.img文件不能过大。所以只要放些必要的 模块和文件即可。
使用efi则没有限制。我生成过包含了字体,背景图片的efi文件是8MB大小 也能运行。

如果改成:
search.file /boot/xxxx/aaabbbccc root
set prefix=($root)/boot/grub/
configfile  xyz.cfg
确保grub目录下有aaabbbccc和菜单配置文件xyz.cfg


xyz.cfg文件不能被找到。prefix是表示模块等文件的目录。root 是定义根。要写成:
configfile /xxx/xxx/xyz.cfg  文件的实际目录路径。


附件是grub2的文档,还有个“grub2中文info修订1.pdf”写的很全面。
grub2文档.7z (408.44 KB, 下载次数: 80)


点评

谢谢分享。  发表于 2015-1-7 20:16
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 06:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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