grub2 efi boot cdrom



1、下载grub2 2.00源码

2、不了不和系统原有的grub2 x86重合,单独指定目录:
mkdir ~/grub-efi
tar xvf grub-2.00.gz -C /tmp
cd /tmp/grub-2.00
mkdir build && cd build
../configure --with-platform=efi --prefix=$HOME/grub-efi  ( 需要freetype2-devel 依赖)
make && make intall  

生成grub.efi文件,后面模块尽量指定启动时需要的模块,比如目标磁盘是gpt,则part_gpt是必须的。否则启动后不识别磁盘分区也就找不到efi分区
bin/grub-mkimage -o grub.efi -O x86_64-efi -d lib/grub/x86_64-efi/ boot linux part_gpt part_msdos fat ext2 iso9660 ntfs normal  configfile loadenv search   chain font multiboot lvm exfat boot configfile minicmd

把生成的grub.efi放置在 efi分区 \efi\boot\bootx64.efi,默认值
默认根为启动的分区 例如 root=(hd0,gpt1)
默认前缀 prefix=\boot\grub
模块目录 \boot\grub\x86_64-efi
配置文件 \boot\grub\grub.cfg

如果要改变默认值可以生成grub.efi嵌入一个内置菜单文件来指定这些值。

内置菜单:
vim bootconfig.cfg

search -f -n --set=root /boot/x86_64-efi/grub.cfg
prefix=($root)/boot/x86_64-efi
configfile /boot/x86_64-efi/grub.cfg

cd ~/grub-efi
bin/grub-mkimage -o ~/grub.efi -O x86_64-efi   -d lib/grub/x86_64-efi/ boot linux part_gpt part_msdos fat ext2 iso9660 udf ntfs  normal  configfile loadenv search   chain font multiboot lvm exfat configfile minicmd -c bootconfig.cfg

当前目录下生成了grub.efi文件。
制作一个软盘做为非光盘非模拟文件

dd if=/dev/zero of=efi.img bs=512 count=2880
mkfs.msdos  efi.img
mkdir -p ./mnt/fd0 && sudo mount -o loop efi.img ./mnt/fd0

sudo mkdir  -p ./mnt/fd0/efi/boot
sudo mv grub.efi ./mnt/fd0/efi/boot/bootx64.efi

sudo sync && sudo umount /mnt/fd0

 生成光盘镜像
mkdir -p /tmp/grub-iso/boot
cp -R lib/grub /tmp/grub-iso/boot
cp efi.img /tmp/grub-iso/boot
mkisofs -U -v -J -R -e boot/efi.img -no-emul-boot -o grub-efi.iso /tmp/grub-iso/ .

sudo mkisofs -U -A "Custom1404" -V "Custom1404" -volset "Custom1404" -J -joliet-long -r -v -T -o ../Custom1404.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot .


如果要做efi和bios两启动的光盘:
注:mkisofs for win32的版本没有-e (efi引导) 参数,所以要用oscdimg制作。。

mkisofs -U -V "GRUB-efi-x86" -J -R  -v -b boot/isocore.img  -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efi.img -o grubcore.iso grub-iso/

oscdimg方法:
把grub.efi放置在\efi\boot\bootx64.efi,然后把这目录结构制作成标准软盘grub-efi.vfd
oscdimg -bgrub-efi.vfd grub-efi grub.iso

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mounter625

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值