build bootable grub iso image && hard disk

一、pre-work

1. 安装grub-install  grub-mkrescue命令

apt install gub2-common  grub-pc  grub-efi-ia32  grub-efi-amd64:i386 grub-efi-amd64

二、iso image

1. bios iso
#!/bin/sh

mkdir bios_iso
mkdir -p bios_iso/boot/grub

cp grub.cfg bios_iso/boot/grub/

grub-mkrescue -o bios.iso ./bios_iso/
2. efi  iso
#!/bin/sh

mkdir efi_iso
mkdir -p efi_iso/boot/grub

cp grub.cfg efi_iso/boot/grub/

grub-mkrescue /usr/lib/grub/x86_64-efi -o efi.iso ./efi_iso/

三、hard disk

1.bios hd image
#!/bin/sh

dd bs=512 if=/dev/zero of=hd.img count=204800

losetup /dev/loop12 hd.img  #choose unused loop device

mkfs.ext4 -q /dev/loop12

mount -o loop ./hd.img ./hdisk

mkdir -p ./hdisk/boot

sudo grub-install --boot-directory=./hdisk/boot --force --allow-floppy /dev/loop12


echo "copy grub.cfg to ./hdisk/boot && sync && umount ./hdisk && losetup -d /dev/loop12"
2. efi hd image
#!/bin/sh

mkdir efi_iso
mkdir -p efi_iso/boot/grub

cp grub.cfg efi_iso/boot/grub/

grub-mkrescue /usr/lib/grub/x86_64-efi -o efi.iso ./efi_iso/


dd bs=512 if=efi.iso of=efi_hd.img  #of can be a actual disk device, e.g. /dev/sda

四、qemu运行

qemu-system-x86_64 -drive format=raw, file=hd.img -m 512M -cpu kvm64,smep,smap -s

qemu-system-x86_64 -drive format=raw, file=bios.iso -m 512M -cpu kvm64,smep,smap -s

# run uefi bios
qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -drive format=raw, file=efi.iso -m 512M -cpu kvm64,smep,smap -s

五、参考:

GNU GRUB Manual 2.12: Top

GNU GRUB Manual 2.12: Making a GRUB bootable CD-ROM

GRUB - OSDev Wiki

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值