说明

此项目仅用于生成UEFI版本的Grub2的efi文件,若是想要制作同时支持 BIOS和UEFI启动的U盘启动盘,请参考项目:USB_Boot_With_Grub_Grub2_ISOLINUX

生成EFI 的 grub2启动项

UEFI启动是fat/fat32分区/EFI/Boot/bootia32.efi或者/EFI/Boot/bootx64.efi,然后进程由UEFI交给efi程序,我们就是制作这个efi程序,使用grub-mkimage命令即可生成。

efi程序中需要内置配置文件,类似grub的grldr文件,一旦生成后就很难修改了,所以,我们需要一个类似与menu.lst的配置文件,所以我们指定的配置文件中指向外部的cfg配置文件

grub-2.02-for-windows/make-your-own-EFI.bat 为自制efi版grub2的脚本,其配置文件为x86_64-efi.cfg (会根据这个配置文件来生成efi文件,这个配置文件定义了生成的efi文件将要到哪个目录去搜寻grub的配置文件)

x86_64-efi.cfg文件示例:

search.file /EFI/grub/x64.cfg root

set prefix=($root)/EFI/grub

configfile ($root)/EFI/grub/x64.cfg

运行make-your-own-EFI.bat即可生成z_bootx64.efi,将其改名为bootx64.efi,放到esp分区/EFI/boot/bootx64.efi,

生成命令:

grub-mkimage.exe -d x86_64-efi -c x86_64-efi.cfg -p /EFI/grub -o z_bootx64.efi -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs xfs appleldr hfs iso9660 normal search_fs_file configfile linux linux16 chain loopback echo efi_gop efi_uga video_bochs video_cirrus file gfxmenu gfxterm gfxterm_background gfxterm_menu halt reboot help jpeg ls png true

-d 表示指定查找模块目录

-c 表示指定配置文件,这个配置文件会集成到efi文件内,就是我们刚刚编写的x86_64-efi.cfg

-p 设置偏好文件夹,cfg文件中会调

-o 表示生成的目标文件

-O 表示集成的模块

复制locale (地区语言) 和x86_64-efi (模块目录)以及unicode.pf2(字体) background.jpg (背景图片)到/EFI/boot/

这样定制的efi文件就完成了 但是这时还差一个grub的配置文件(也就是你的x86_64-efi.cfg 文件中定义efi去搜寻的(grub2)配置文件,默认的是x64.cfg 文件

接下来是定制你自己的grub2文件(x64.cfg ),你可以参考Demo中的文件来定义

整个EFI引导目录如下:

FAT/FAT32

#########################

/EFI/Boot/bootx64.efi

/EFI/grub/x64.cfg

/EFI/grub/unicode.pf2

/EFI/grub/x86_64-efi/

/EFI/grub/locale/

#####################

#其它说明:

通过此repo你可以来制作UEFI版本启动U盘

步骤主要为:

1. 使用grub-2.02-for-windows目录下的make-your-own-EFI.bat来制作你自己的efi文件

2. 编写第一步骤中你自己的efi中定义的x64.cfg文件

3. 在U盘上格式化第一个分区为FAT/FAT32分区,而后将所有文件放入到此分区中

直接使用Demo

EFI文件夹为Demo文件夹,可以直接将其拷贝到ESP分区(第一个FAT/FAT32分区)根目录,即可启动EFI版grub2,/EFI/grub/x64.cfg为其配置文件

/EFI/grub/x64.cfg 文件定义了以下几种启动方式(有的可能工作不正常,有的没有测试):

引导启动本地windows

引导进入clover四叶草,进而引导macos(clover的引导文件/EFI/CLOVER/)

引导U盘中的kubuntu系统(已经安装好的kubuntu非Live ISO)

引导ISO文件(ISO文件需要是Live ISO)[你可以将系统ISO或者一些工具如:kali-linux clonezilla gparted直接通过此方式引导]

引导进入super grub2工具 (这个工具可以自动搜寻磁盘里的系统 然后引导 并且可以使用iso启动)[EFI方式引导]

demo所定义的配置对应的U盘分区结构

支持windows本地盘启动

支持windows PE

支持直接引导U盘上的某个分区上的windows安装文件,进而直接安装Windows

支持super grub2 的grub 引导方式

linux efi分区安装grub2,GitHub - beatfan/UEFI_grub2: uefi 版本 grub2,可以引导多系统,以及linux的安装...相关推荐

  1. 【Grub2】制作UEFI版本Grub2引导

    可以直接下载以下操作的所有文件:https://download.csdn.net/download/u010875635/10655981 本来不想设置积分,无奈最低只能设置1分,大家见谅.没有积分 ...

  2. 新电脑安装Ubuntu的血泪史:UEFI+GPT模式下在同一块固态硬盘上安装win10和Ubuntu16.04双系统

    一.背景交代 笔者由于实在受不了自己开机要等一个世纪,浏览器经常卡到崩溃,风扇声音像在开拖拉机,CPU温度能烧开水的又丑又破的笔记本,遂下定决心入手一个新电脑.经过几天的纠结和挑选,笔者花费了七千多大 ...

  3. 信创:国产飞腾服务器-安装麒麟的高级ARM版本,无法引导进系统

    最近几天在进行公司对象存储的信创兼容性测试验证,服务器是使用国产的飞腾服务器,操作OS为麒麟KylinV10SP2,系统安装好后重启系统验证是否安装成功,But,问题出现了,一直无法进入系统...此时 ...

  4. Linux创建分区步骤手写,手写笔记应用程序Write,附Write for Linux版的安装说明

    本文介绍一款手写笔记应用程序Write.下载及Linux版本的安装方法,支持的操作系统有:Linux.Windows.macOS和Android,同时iOS版本可从App Store获得. 简介 Wr ...

  5. 双系统格盘后因grub无法进入xp系统问题,将linux所在分区格后启动停在grub。。。无法进入系统

    解决办法:grub>chainloader(hd0,0)+1 grub>boot 彻底解决办法:通过系统盘启动进入dos 输入fdisk/mbr即可

  6. 安装中文bootmgr启动菜单到硬盘EFI分区

    目录 安装中文bootmgr启动菜单到硬盘EFI分区 前言 方法步骤 安装中文bootmgr启动菜单到硬盘EFI分区 前言 经实测,低版本Windows,如7及更低版本Windows的UEFI启动文件 ...

  7. linux fedora分区,Fedora32双系统安装分区教程

    Fedora32正式版在上个月底发布了,笔者已经下载了.在安装的时候想起UEFI+GPT模式的分区一直没做介绍.基于Fedora的分区界面不太直观,新手可能会望而却步,所以本篇文章就来说一下Fedor ...

  8. linux会自动平板电脑,GitHub - Dysonnnn/linux-chuwi_Vi10: 驰为Vi10 平板电脑装linux系统

    linux-chuwi_Vi10 让ubuntu 在 驰为 chuwiVi10 上运行 windows.安卓二合一平板:驰为Vi10 平板介绍 CPU/GPU 处理器架构X86架构 处理器技术英特尔芯 ...

  9. Windows系统删除隐藏U盘EFI分区的方法

    Windows系统删除隐藏U盘EFI分区的方法 如Windows系统上显示有容量为96M或256M的efi系统分区,在磁盘管理中无法删除或隐藏,可使用DiskPart工具删除误显示的盘符. 使用Dis ...

  10. linux redis数据库安装配置,Linux系统中redis的安装配置步骤

    Linux系统中redis的安装配置步骤 发布时间:2020-06-23 10:13:36 来源:亿速云 阅读:87 作者:Leah 这篇文章将为大家详细讲解有关Linux系统中redis的安装配置步 ...

最新文章

  1. iOS开发UI篇—核心动画简介
  2. VB.NET程序如何巧妙释放内存
  3. Unity面试题精选(2)
  4. Flask 参数简介
  5. 游戏开发之动态创建对象及构造函数、析构函数的执行(C++基础)
  6. 1364:Field 'sex' doesn't have a default value [ SQL语句 ]
  7. opencv快速下载
  8. 单片机c语言 一小时,1小时单片机C语言入门..doc
  9. matlab 双音多频 接收端检测到的号码,实验一数字信号处理在双音多频拨号系统中的应用.doc...
  10. php获取百度搜索的关键词,【2020年】百度搜索词获取,获取百度搜索的关键词【真实有效】...
  11. springweb项目连接数据库的时候报错Access denied for user ‘cyy‘@‘192.168.56.1‘ (using password: YES)
  12. 【报告分享】2021中国品牌消费趋势报告-京东大数据研究院(附下载)
  13. Python制作CSDN数据中心——CSDN机器人访客
  14. java毕业设计物业管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  15. python中有没有switch_为什么python没有switch/case
  16. 帅某---考研---空间直线绕坐标轴旋转、二次曲面方程
  17. 第五章 语法分析——自上而下分析
  18. MS5358 适合用于像 DTV,DVR 和 AV 接收器的系统
  19. 【kafka】连接kafka报错 partitions have leader brokers without a matching listener
  20. 什么是延迟?如何在直播中实现低延迟

热门文章

  1. 读取位置时发生访问冲突 c++_王道计算机网络|第三章数据链路层1314介质访问控制...
  2. python基础: 选择语句
  3. 创建一个基于Spring IO Platform的多模块Gradle项目
  4. Python机器学习(sklearn)——分类模型评估与调参总结(上)
  5. Python操作IHTMLDocument2用于自动化测试
  6. 【静态化平台】☞( 一)网页静态化服务
  7. 二元最近的共同祖先问题(O(n) time 而且,只有一次遍历,O(1) Space (它不考虑函数调用栈空间))...
  8. 【转载】张逸--ThoughtWorks(中国)程序员读书雷达
  9. 起面的英怯——幸运的舆图
  10. 究竟先操作缓存,还是数据库?