grub2 引导自制kernel

本文介绍如何利用GRUB2遵循multiboot规范引导自制内核。首先从GNU官网下载multiboot示例代码,包括multiboot.h、boot.S和kernel.c。接着编写链接脚本link.ld,并进行编译和链接。最后,将生成的kernel文件复制到GRUB启动盘根目录,在QEMU中测试,通过multiboot /kernel和boot:命令启动内核。这种方法让内核开发可以避免过多关注汇编细节。
摘要由CSDN通过智能技术生成

1、grub遵循multiboot引导规范,从gnu的multiboot网页(http://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Examples)

下载示例代码

2、编写链接脚本link.ld内容如下:

ENTRY(start)
<span style="white-space:pre">	</span>. = 0x100000;
	SECTIONS 
{
	
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1.目录说明 cong@msi:/work/os/rootfs/grub/grub0.97$ tree . ├── bash -->a.out格式 ├── bochrc -->bochs启动配置 ├── bzImage -->linux-2.4.12的内核 ├── createminix.sh -->创建minix文件系统硬盘镜像的脚本 ├── creatext2.sh -->创建ext文件系统硬盘镜像的脚本 ├── grub -->在grub的install时会用到 │ ├── default │ ├── device.map │ ├── e2fs_stage1_5 │ ├── fat_stage1_5 │ ├── installed-version │ ├── jfs_stage1_5 │ ├── menu.lst -->现在默认是引导bzImage │ ├── menu.lst_bak │ ├── minix_stage1_5 │ ├── reiserfs_stage1_5 │ ├── stage1 │ ├── stage2 │ └── xfs_stage1_5 ├── grub-floppy ├── grub-install ├── grub-md5-crypt ├── grub-mkdevicemap ├── grub-probe ├── grub-reboot ├── grub-set-default ├── grub_sh -->grub的命令行,但与grub目录重名,改名了 ├── grub-terminfo ├── Image -->linux-0.12的内核 ├── Makefile -->make qemu 启动qemu ├── mkfs -->格式化minix文件系统的命令 └── Readme.txt 2. 使用说明 2.1 创建minix的硬盘镜像 a. 执行createminix.sh脚本会在当前目录下生成hdminix.img cong@msi:/work/os/rootfs/grub/grub0.97$ ./执行createminix.sh b.启动qemu即可看到启动grub的界面 cong@msi:/work/os/rootfs/grub/grub0.97$ make qemu 默认是引导了bzImage,需要默认引导Image就把menu.lst中的default 0 --->default 1 2.2 创建ext2的硬盘镜像 a. 执行creatext2.sh脚本会在当前目录下生成hdc.img cong@msi:/work/os/rootfs/grub/grub0.97$ ./creatext2.sh b.启动qemu即可看到启动grub的界面 cong@msi:/work/os/rootfs/grub/grub0.97$ make qemu 默认是引导了bzImage
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值