【Grub2】BIOS添加Grub2引导(Windows下操作)

2023-11-11

电脑上安装的系统是Windows10,BIOS+MBR,想利用Grub2安装CentOS,和RemixOS三个操作系统。
为了实现硬盘安装CentOS,需要用到Grub2.

第一步、Grub2下载,文件准备
到Grub2官网ftp://ftp.gnu.org/gnu/grub/ 下载文件grub-2.02-for-windows.zip,将其解压至任意路径下,比如D:\。这样Grub2的主程序目录将位于D:\grub-2.02-for-windows

第二步,Grub2安装
以管理员身份运行CMD,输入命令wmic diskdrive list brief,记录下安装目标磁盘DeviceID,本教程将安装至 \\.\PHYSICALDRIVE0
==================================================================================
Microsoft Windows [Version 10.0.10586]
(c) 2015 Microsoft Corporation. All rights reserved.
C:\Windows\system32>wmic diskdrive list brief
Caption                DeviceID            Model                  Partitions  Size
WDC WD5000AAKX-001CA0  \\.\PHYSICALDRIVE0  WDC WD5000AAKX-001CA0  3           500105249280
C:\Windows\system32>
==================================================================================
将当前路径切换至Grub2主程序所在路径,输入cd /d d:\grub-2.02-for-windows
==================================================================================
C:\Windows\system32>cd /d d:\grub-2.02-for-windows
d:\grub-2.02-for-windows>
==================================================================================
查看grub-install.exe的帮助文件,可以输入grub-install.exe --help或grub-install.exe -?,显示如下内容:
==================================================================================
Usage: grub-install [OPTION...] [OPTION] [INSTALL_DEVICE]
Install GRUB on your drive.

      --compress=no|xz|gz|lzo   compress GRUB files [optional]
  -d, --directory=DIR        use images and modules under DIR
                             [default=C:\grub-2.02-for-windows/<platform>]
      --fonts=FONTS          install FONTS [default=unicode]
      --install-modules=MODULES   install only MODULES and their dependencies
                             [default=all]
  -k, --pubkey=FILE          embed FILE as public key for signature checking
      --locale-directory=DIR use translations under DIR
                             [default=C:\grub-2.02-for-windows/locale]
      --locales=LOCALES      install only LOCALES [default=all]
      --modules=MODULES      pre-load specified modules MODULES
      --themes=THEMES        install THEMES [default=starfield]
  -v, --verbose              print verbose messages.
      --allow-floppy         make the drive also bootable as floppy (default
                             for fdX devices). May break on some BIOSes.
      --boot-directory=DIR   install GRUB images under the directory DIR/grub
                             instead of the boot/grub directory
      --bootloader-id=ID     the ID of bootloader. This option is only
                             available on EFI and Macs.
      --core-compress=xz|none|auto
                             choose the compression to use for core image
      --disk-module=MODULE   disk module to use (biosdisk or native). This
                             option is only available on BIOS target.
      --efi-directory=DIR    use DIR as the EFI System Partition root.
      --force                install even if problems are detected
      --force-file-id        use identifier file even if UUID is available
      --label-bgcolor=COLOR  use COLOR for label background
      --label-color=COLOR    use COLOR for label
      --label-font=FILE      use FILE as font for label
      --macppc-directory=DIR use DIR for PPC MAC install.
      --no-bootsector        do not install bootsector
      --no-nvram             don't update the `boot-device'/`Boot*' NVRAM
                             variables. This option is only available on EFI
                             and IEEE1275 targets.
      --no-rs-codes          Do not apply any reed-solomon codes when
                             embedding core.img. This option is only available
                             on x86 BIOS targets.
      --product-version=STRING   use STRING as product version
      --recheck              delete device map if it already exists
      --removable            the installation device is removable. This option
                             is only available on EFI.
  -s, --skip-fs-probe        do not probe for filesystems in DEVICE
      --target=TARGET        install GRUB for TARGET platform
                             [default=i386-pc]; available targets: arm-efi,
                             arm-uboot, arm64-efi, i386-coreboot, i386-efi,
                             i386-ieee1275, i386-multiboot, i386-pc,
                             i386-qemu, i386-xen, ia64-efi, mips-arc,
                             mips-qemu_mips, mipsel-arc, mipsel-loongson,
                             mipsel-qemu_mips, powerpc-ieee1275,
                             sparc64-ieee1275, x86_64-efi, x86_64-xen
  -?, --help                 give this help list
      --usage                give a short usage message
  -V, --version              print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

INSTALL_DEVICE must be system device filename.
grub-install copies GRUB images into boot/grub.  On some platforms, it may
also install GRUB into the boot sector.

Report bugs to <bug-grub@gnu.org>.
==================================================================================
参数说明:
大体思路是,先指定源文件的路径,如:fonts,locale,i386-pc,然后再通过参数确定安装哪些字体,主题,模块。
--directory 指定镜像和模块的路径,本教程将此参数设置为--directory=D:\grub-2.02-for-windows\i386-pc,如果把grub2压缩包解压至c盘,此参数可以不进行设置,因为default=C:\grub-2.02-for-windows/<platform>,platform会根据当前的平台从i386-pc和i386-efi两个路径中进行自动选择。
--fonts 指定字体,默认的为unicode,留空将会在最终安装完成目录下生成unicode.pf2文件。
--install-modules 指定安装模块,留空将安装全部。
--modules 指定预加载的模块。
--locale-directory 指定locale的路径,本教程将此餐宿设置为 --locale-directory=D:\grub-2.02-for-windows\locale,如果把grub2压缩包解压至c盘,此参数可以不进行设置,因为default=C:\grub-2.02-for-windows/locale。
--locales 指定安装的locale,需要将zh_CN文件夹内的grub.mo改名为zh_CN.mo,并放置在locales文件夹目录下
--modules 指定预加载模块。
--themes 指定主题
--boot-directory 指定启动路径,本教程将grub文件夹设置在c:\,故将参数设置为--boot-directory=c:,grub文件夹自动生成。
--force 强制执行,但是遇到32 Sector存在FlexNET的问题,依然无法强制写入,只能是保证后续程序继续运行。
--label-bgcolor 设置启动项标签的背景色
--label-color 设置标签的颜色
--label-font 设置标签的字体
--no-bootsector 不写入启动扇区设置
--recheck 如果存在磁盘映射,将删除磁盘映射
--target 设置安装目标,在本教程中此项可留空。因为默认即为i386-pc,完整命令为--target=i386-pc
完整的运行命令为:

d:\grub-2.02-for-windows>grub-install.exe --directory=D:\grub-2.02-for-windows\i386-pc --locale-directory=D:\grub-2.02-for-windows\locale --locales=zh_CN --themes=starfield --boot-directory=c: --force --recheck --target=i386-pc \\.\PHYSICALDRIVE0
==================================================================================

grub-install.exe 
--directory=D:\grub-2.02-for-windows\i386-pc 
--fonts=unicode (为默认项,可不写)
--install-modules=all (如果安装全部,参数不能为all,必须删除) 
--locale-directory=D:\grub-2.02-for-windows\locale
--locales=zh_CN (默认为all)
--themes=starfield (此项参数为默认,可不写)
--boot-directory=c:
--force
--label-bgcolor=black (默认项,可不写)
--label-color=wite (默认项,可不写)
--label-font =unicode(默认项,可不写)

--recheck
--target=i386-pc (默认项可不写)
\\.\PHYSICALDRIVE0 (安装设备)

如果文件解压路径为C:\,命令可以进行精简,其他的都使用默认设置,其他的使用以上的默认设置:

d:\grub-2.02-for-windows>grub-install.exe \\.\PHYSICALDRIVE0
第三步、grub.cfg文件生成

由于windows环境下无法使用grub-mkcofig生成grub.cfg文件,需要自己编辑生成grub.cfg文件,该文件的编码格式为UTF-8,我们可以使用记事本生成。

首先使用记事本新建一个文本文档,然后输入grub.cfg内容,另存为-将编码格式修改为UTF-8。

具体内容如下:

==================================================================================

#################################################
#设置菜单的超时时间为5秒
set timeout=5
#每一满屏后暂停输出,以免信息太多一闪而过看不清
set pager=1
################################################
#默认启动第一个菜单项
set default=0
#如果第一个菜单项启动失败,转而启动第二个菜单项
set fallback=1
#################################################
#开启密码验证功能,并设置一个名为'admin'的超级用户
set superusers=admin
#################################################
#设置主题模式,支持的模式可以grub引导界面,输入e,进入命令行,输入videoinfo查看。
set gfxmode=1600x900x32,auto
#设置主题
set theme=$prefix/themes/starfield/theme.txt
#################################################
#指定翻译文件(*.mo)的目录,若未明确设置此目录,则无法显示中文界面。
set locale_dir=$prefix/locale
#将GRUB2设置为简体中文界面
set lang=zh_CN
#################################################
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
function load_disk {
insmod part_gpt
insmod part_msdos
}
function load_filesystem {
insmod ext2
insmod ext3
insmod ext4
insmod ntfs
}
load_video
load_disk
load_filesystem
#################################################
#激活图形模式的输出终端
insmod gfxterm
terminal_output  gfxterm

insmod gfxmenu
insmod png

loadfont $prefix/themes/starfield/dejavu_bold_14.pf2
export theme
#################################################
#设置'root'用户的哈希密码[通过"grub-mkpasswd-pbkdf2"工具生成]
password_pbkdf2 admin grub.pbkdf2.sha512.10000.29CFC23F7FC74CA1A2AA0CFFCC3CE9D38EB7D3FCFD7A9BFA172AAC1816D580C3076DFC7DCBB2B6944B86765793F10D5B804760FFBBF012CE4B79A5ACD6DB8298.7A3F7ADB7A50D7B387BCF07E425276C6247039F63A37EEC744E91D0191283C8353167B9D32751E9E27E9E99A9EBB8ABBEB40BE5171098096EA47735A5F8CC418
#################################################
menuentry 'Windows 10' --class class --users admin --hotkey "w" --id windows {
search --file --set=root --no-floppy /bootmgr 
chainloader +1
}

menuentry 'CentOS 7' --class fedora --class gnu-linux --class gnu --class os --unrestricted --hotkey "c" --id linux {
search --file --set=root --no-floppy /CentOS7.iso
loopback loop0 /CentOS7.iso
linux (loop0)/isolinux/vmlinuz inst.repo=hd:LABEL=WorkData:/CentOS7.iso rootwait inst.lang=zh_CN.UTF-8
initrd (loop0)/isolinux/initrd.img
}

menuentry 'RemixOS-PC' --class class --unrestricted --hotkey "r" --id android {

}







本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Grub2】BIOS添加Grub2引导(Windows下操作) 的相关文章

随机推荐

  • JS_一维数组转对象

    如果您想将一个一维数组转换为一个对象 可以使用 JavaScript 中的 Object fromEntries 方法 该方法接收一个键值对数组作为参数 并返回一个对象 其中每个键值对对应一个对象属性 const arr name John
  • 超详细手把手教你部署全分布模式Hadoop集群

    1 Hadoop 集群部署规划 全分布模式下部署 Hadoop 集群时 最低需要两台机器 一个主节点和一个从节点 本书拟将 Hadoop 集群运行在 Linux 上 将使用三台安装有 Linux 操作系统的机器 主机名分别为 hadoop
  • The JAVA_HOME environment variable is not defined correctly This environment variable is needed to r

    win10配置MAVEN HOME报错 cmd 中输入mvn v 会报错 The JAVA HOME environment variable is not defined correctly This environment variab
  • CGAL 使用PCA计算点云法向量

    目录 一 算法原理 1 主要函数 二 代码实现 一 算法原理 见 PCL 计算点云法向量并显示 1 主要函数 头文件 include
  • 在CentOS7上面搭建GitLab服务器

    首先要在CentOS系统上面安装所需的依赖 ssh 防火墙 postfix 用于邮件通知 wegt 以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问 1 安装SSH协议 安装命令 sudo yum install y curl p
  • Git 通过change push代码时,失败 提示没有找到change-id

    提示错误如下 没有找到change id 导致不能push成功 那么如何解决该问题呢 解决方案如下 首先通过git reset mixed 71d4 版本号 回退commit 操作 问题来了 版本号如何获取呢 如下操作 在idea 上的gi
  • ubantu22安装配置VS Code(图文教程)

    平台 uabntu22 文件版本 code 1 74 2 1671533413 amd64 deb VSCode下载链接 Download Visual Studio Code Mac Linux Windowshttps code vis
  • android项目开发难点_APP应用开发中的三大难点

    虽然许多开发人员将移动应用程序作为业余爱好 但企业将移动应用程序视为其品牌战略的绝对重要方面 谁可以责怪公司利用移动性和营销趋势 但是 这给移动应用程序开发人员和测试人员带来了很大的压力 问题是移动应用程序开发并不容易 它需要相同的时间 精
  • MFC 播放视频 FFMPEG SDL

    使用MFC播放RTSP视频流 采用vlc的sdk有延时 使用FFMPEG SDL机制会好很多 本文总结了网络上的 只需四行代码即可简单实现SDL嵌入MFC播放视频和图片 和 100行代码实现最简单的基于FFMPEG SDL的视频播放器 先向
  • STM32 工作流程

    工作流程 上电后 芯片复位启动 MCU通过指令 数据总线从FLASH中读取指令或数据 配合解析执行 然后再通过RAM和通用寄存器 R0 R12的内部寄存器 处理可变数据 根据执行的指令 配置和操作外设的寄存器 从而驱动对应的外设实现具体的功
  • vue3.2从0-1封装一个组件库 ( 组件项目的创建 - 发布npm - 使用组件库 )

    目录 vue3 2从0 1封装一个组件库 1 组件的项目初建 1 1创建项目 1 2 packages button index js 1 3 packages button index vue 1 4 packages index js
  • 最详细的——C#对MySQL数据库数据的增删改查

    提示 建议将所有关于处理数据库数据的方法都封装在一个类里面 之后要相应的操作直接调用就可以了 文章目录 前言 一 创建yyl mysql类 自定义类名 二 主窗体样式 三 增 1 添加窗体 2 添加按钮绑定事件 3 运行效果 四 删 1 删
  • CSS自适应

    CSS一列的自适应
  • Fuch混沌映射

    一 Fuch混沌映射 Fuch混沌映射公式如下 该映射具有对初值不敏感 遍历均衡和收敛较快等优点 且在初值不为0的情形下均能产生混沌 二 Fuch混沌映射代码 x 1 rand for i 2 2000 x i cos 1 x i 1 2
  • Java实现符号函数功能

    Java实现符号函数功能 符号函数 Sign Function 又称为符号判断函数 是一种常见的数学函数 用于判断一个数的正负性 如果输入的数大于0 则返回1 如果输入的数等于0 则返回0 如果输入的数小于0 则返回 1 在Java中 我们
  • 大数据~几个入选的技术框架对比

    技术 特点 使用场景 对比 备注 Maxwell 轻量级数据同步中间件 支持刷全量 断点还原 随机读数据 固定JSON数据格式 mysql数据全量 增量同步 Canal 数据落地需要定制开发 不支持刷全量 虽然高版本有了adapter客户端
  • 华为swot分析2020_2020年全球与中国人工智能与分析系统行业现状及未来5年市场预测分析报告...

    本文研究全球及中国市场人工智能与分析系统现状及未来发展趋势 侧重分析全球及中国市场的主要企业 同时对比北美 欧洲 日本 中国 东南亚 印度等地区的现状及未来发展趋势 2019年全球人工智能与分析系统市场规模达到了xx亿元 预计2026年将达
  • springboot添加验证码功能

    开源验证码 1 Happy Captcha 提供了图片和动画两种展现形式 验证码内容包括中文 数字 09 中文数字 零至九 中文大写数字 零至玖 数字与字母混合 09 az AZ 数字与小写字母混合 09 az 数字与大写字母混合 09 A
  • Clang 中 AST 相关类简介(不定时更新)

    Clang 中 AST 相关类简介 不定时更新 1 Decl declaration 1 1 FunctionDecl 2 Stmt statement 3 Expr expression 3 1 FullExpr 3 2 ExprWith
  • 【Grub2】BIOS添加Grub2引导(Windows下操作)

    电脑上安装的系统是Windows10 BIOS MBR 想利用Grub2安装CentOS 和RemixOS三个操作系统 为了实现硬盘安装CentOS 需要用到Grub2 第一步 Grub2下载 文件准备到Grub2官网ftp ftp gnu