Grub2 引导 WIM / Slax Linux (BIOS & UEFI)

文章目录

  • Grub2 引导 WIM / Slax Linux (BIOS & UEFI)
    • 安装Grub2到U盘 / 硬盘
      • 1. 准备分区格式
      • 2.安装Grub2
      • 3.复制Grub2 配置文件和主题
      • 4. 目录结构
      • 5. 测试引导
    • WIM引导说明
      • 1. Legacy BIOS模式下引导大致原理
      • 2. 如何自定义bootmgr的BCD文件位置
      • 3.如何修改BCD文件配置
      • 4. UEFI引导大致原理
    • 配置文件下载
    • 参考

Grub2 引导 WIM / Slax Linux (BIOS & UEFI)

安装Grub2到U盘 / 硬盘

1. 准备分区格式

  • 主分区1(FAT32) (UEFI引导需要)
  • 主分区2(NTFS)

Grub2 引导 WIM / Slax Linux (BIOS & UEFI)_第1张图片

2.安装Grub2

sudo -s
# 安装依赖库
apt install grub2-common grub-pc grub-efi-amd64
# 挂载要安装的硬盘或者U盘,根据实际的设备修改(以下类似)
mount /dev/sda1 /mnt
grub-install --target=i386-pc --boot-directory=/mnt/boot /dev/sda
grub-install --target=x86_64-efi --efi-directory=/mnt --boot-directory=/mnt/boot --removable

结果如下

在这里插入图片描述

3.复制Grub2 配置文件和主题

以下主题是从该项目中生成

https://github.com/vinceliuice/grub2-themes

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###

set default="0"

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi
export menuentry_id_option

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}


font=unicode
if loadfont $font ; then
  set gfxmode=1024x768x32,1024x768x24,1024x768x16,1024x768,auto
  set gfxpayload=keep
  load_video
  insmod gfxterm
  terminal_output gfxterm
fi
insmod part_msdos
insmod ntfs

insmod gfxmenu
loadfont $prefix/themes/Tela/unifont-regular-16.pf2
insmod jpeg
insmod png
set theme=$prefix/themes/Tela/theme.txt
export theme
set timeout=15

### BEGIN /etc/grub.d/05_debian_theme ###
# set menu_color_normal=white/black
# set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

menuentry "微PE X64" --class windows {
    if [ x$grub_platform == xpc ] ; then
	insmod ntldr
        if search --file --set /WEPE/WEPE64.WIM ; then
            ntldr /WEPE/WEPEMGR
	fi
    elif [ x$grub_platform == xefi ] ; then
        if search --file --set /WEPE/WEPE64.WIM ; then
            chainloader /WEPE/bootmgfw.efi
        fi
    fi
}

# 从Slax光盘复制slax文件夹到硬盘/U盘即可
# 虚拟机下硬盘类型选择为IDE模式,否则slax可能无法引导
menuentry "Slax Linux" --class debian {
    search --file --set /slax/boot/vmlinuz
    linux /slax/boot/vmlinuz vga=normal load_ramdisk=1 prompt_ramdisk=0 ro printk.time=0 slax.flags=toram
    initrd /slax/boot/initrfs.img
}

menuentry '引导本地硬盘Window' --class cancel {
    if [ 'pc' == $grub_platform ] ; then
        if search --file --hint-bios=hd1,msdos1 --set /bootmgr ; then
            chainloader +1
        elif search --file --hint-bios=hd1,msdos1 --set /ntldr ; then
            chainloader +1
        fi
    elif [ 'efi' == $grub_platform ] ; then
        if search --file --hint-efi=hd1,msdos1 --set /EFI/Microsoft/Boot/bootmgfw.efi ; then
            chainloader /EFI/Microsoft/Boot/bootmgfw.efi
        fi
    fi
}

menuentry '关闭计算机' --class shutdown {
    halt
}

menuentry '重启计算机' --class restart {
    reboot
}

Grub2 引导 WIM / Slax Linux (BIOS & UEFI)_第2张图片

4. 目录结构

Grub2 引导 WIM / Slax Linux (BIOS & UEFI)_第3张图片
Grub2 引导 WIM / Slax Linux (BIOS & UEFI)_第4张图片

5. 测试引导

WIM引导说明

1. Legacy BIOS模式下引导大致原理

BIOS
GRUB2
BOOTMGR
读取BCD配置,加载WIM文件引导

2. 如何自定义bootmgr的BCD文件位置

bootmgr 默认是寻找\boot\bcd, 可以使用工具修改位置,本例中修改到\WEPE\B64

使用工具BMplus

Grub2 引导 WIM / Slax Linux (BIOS & UEFI)_第5张图片

3.如何修改BCD文件配置

从PE光盘镜像中提取样本BCD(传统模式和UEFI模式模板有可能同,分别单独提取编辑)文件,修改wimboot.sdi路径即可

使用工具BOOTICE

Legacy BIOS B64

Grub2 引导 WIM / Slax Linux (BIOS & UEFI)_第6张图片

UEFI模式bcd保持原名, bootmgfw.efi会寻找同目录该文件

Grub2 引导 WIM / Slax Linux (BIOS & UEFI)_第7张图片

4. UEFI引导大致原理

UEFI BIOS
/EFI/BOOT/BOOTX64.EFI即grub2的EFI文件
chainloader windows的bootmgfw.efi,从windows关盘/EFI/BOOT/BOOTX64.EFI复制修改

配置文件下载

  • 链接: https://pan.baidu.com/s/13f3DAsvB7a4NQLEnLTgjIg

  • 提取码: tszu

参考

  • https://www.aioboot.com/en/install-grub2-from-windows/
  • http://www.jinbuguo.com/linux/grub.cfg.html
  • http://www.wepe.com.cn/download.html
  • ······

你可能感兴趣的:(工具使用)