无忧启动论坛

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

[分享] 在移动硬盘从零开始部署grub2多启动维护盘

  [复制链接]
跳转到指定楼层
1#
发表于 2017-3-2 10:16:24 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Jvcon 于 2017-3-4 14:06 编辑

关于这个帖子:

这一个帖子是我的新人贴,一个错误把我带入grub2的世界里,同时遇到wsgdmzr、wintoflash、窄口牛的热心解答。所以打算从这里开始记录我慢慢部署自己的多启动维护盘的过程。持续龟速更新。。。(新手勿喷)

2017.03.02 这个神奇的错误
Grub新手,通过自己用命令行mkimage在windows下定制grub2,测试从bios方式启动grub2的时候,一开始提示normal模块not found,我复制了i386-pc文件夹到boot\grub之后,又提示如图情况。
请问各位大大,该如何解决?

2017.03.03 测试突然正常了
在重新将目标移动硬盘用Bootice格式化,写入选择grub2.0主引导,重写了mbr,(依然使用g2ldr,grldr的方式没有尝试)测试变得成功了。
但感觉wintoflash大大提出的定制命令问题,的确感觉有点冗余,但怎么调整,因为对grub2还不算太了解,还需要摸索,谢谢大家指点。

折腾的目标
  • 三种方式引导正常,并且能够得到一定保护
  • 引导linux镜像(livecd)
  • 启动win10pe和03PE(网络启动)
  • 可以安装windows
  • 可以引导小型的vhd
  • 可以作为临时本机系统的引导菜单,对应引导丢失的情况


Issues
  • GPT和MBR的选择,保护分区的方法
  • 通过Secure Boot的方法


Part1 Windows下定制Grub2
1 首先下载grub2 for windows的源代码 戳这里
2 grub启动关系和目录架构
  1. Grub2
  2. ---Grub 2 File Manager
  3. =========
  4. ---ArchLinux LiveCD
  5. ---Ubuntu LiveCD
  6. ---CentOS LiveCD
  7. =========
  8. ---Win7 iso
  9. ---Win8 iso
  10. ---Win10 iso
  11. =========
  12. ---bootmgr
  13. ------Win10PE
  14. ------03PE(网启)
  15. ------Win8 VHD
  16. =========
  17. ---引导本机系统
复制代码


参考
2#
 楼主| 发表于 2017-3-2 10:51:13 | 显示全部楼层
wintoflash大神在哪里??求指教

点评

贴一下你的定制命令吧  详情 回复 发表于 2017-3-2 11:18
回复

使用道具 举报

3#
 楼主| 发表于 2017-3-2 17:33:34 | 显示全部楼层
wintoflash 发表于 2017-3-2 11:18
贴一下你的定制命令吧

定制的方法是学习帖子windows下定制grub2的。

这一部分是mkimage的指令
  1. grub-mkimage.exe -d i386-pc -C auto -c config.cfg -p /boot/grub -o .\out\core.img -O i386-pc -v biosdisk loopback tar part_msdos fat exfat ntfs reboot configfile normal search_fs_file
复制代码

这一部分是config.cfg
  1. search.file /boot/grub/grub-bios.cfg root
  2. loopback memdisk /boot/grub/memdisk.tar
  3. set prefix=(memdisk)/boot/grub
  4. insmod part_gpt
  5. insmod iso9660
  6. insmod memdisk
  7. insmod ext2
  8. insmod blocklist
  9. insmod echo
  10. insmod test
  11. insmod configfile
  12. normal (memdisk)/boot/grub/grub.cfg
复制代码

点评

你的memdisk.tar是不是没有放对位置。  详情 回复 发表于 2017-3-2 19:56
回复

使用道具 举报

4#
 楼主| 发表于 2017-3-3 11:28:26 | 显示全部楼层
wintoflash 发表于 2017-3-2 19:56
你的memdisk.tar是不是没有放对位置。

我的memdisk.tar放在boot\grub下,和cfg、locale、fonts那些一起
回复

使用道具 举报

5#
 楼主| 发表于 2017-3-3 11:28:58 | 显示全部楼层
窄口牛 发表于 2017-3-2 20:15
core.img和哪个合并的?

boot.img
回复

使用道具 举报

6#
 楼主| 发表于 2017-3-3 12:34:01 | 显示全部楼层
窄口牛 发表于 2017-3-3 11:48
建议core和lnxboot合并改名为grldr,然后用g4d的mbr写入磁盘,这样启动成功率相对较高。

用inxboot合并吗?我试一试,g4d是什么?求普及
回复

使用道具 举报

7#
 楼主| 发表于 2017-3-3 13:36:56 | 显示全部楼层
本帖最后由 Jvcon 于 2017-3-3 13:44 编辑
wintoflash 发表于 2017-3-3 12:29
一开始搜索的是($root)/boot/grub/grub-bios.cfg,但是最终加载的是(memdisk)/boot/grub/grub.cfg,多此 ...


grub-bios.dfg是以bios方式启动时加载的菜单
grub.cfg是一个判断efi64、efi32、bios三种方式对应grub-efi-64,grub-efi-32、grub-bios菜单(这一部分是参考了论坛里面小白定制的命令)

memdisk.tar主要是打包了字体、语言、i386-pc、grub.cfg,以减小大小,令整个boot\grub目录里面只有三个cfg、themes文件夹和memdisk.tar

你这么一提点,感觉好像是多余了,那么normal这一行是可以去掉的吧?

有一个,新的理解
按照小白定制的命令理解,好像search是为了定根目录,用来确定memdisk.tar所在位置,跟着三种方式都以grub.cfg为分叉点,去往不同的cfg。在efi定制的config.cfg里面的代码是直接这样的:
  1. normal (memdisk)/boot/grub/grub.cfg
复制代码
回复

使用道具 举报

8#
 楼主| 发表于 2017-3-4 13:45:40 | 显示全部楼层
wsgdmzr 发表于 2017-3-3 16:28
支持定制折腾,可是当你折腾好后你会发现你定制的GRUB2无法通过Secure Boot关卡,这问题令人很尴尬。


好像发现论坛里有能通过secure boot的压缩包~??请指教

点评

我目前用深度的EFI文件,可通过安全启动。  详情 回复 发表于 2017-3-4 22:16
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-16 18:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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