文章目录
本文目的在于自定义一个简易操作系统,通过引导程序启动后打印一行字符串,先演示操作,最后介绍原理。
1 操作过程
我的环境:
在virtualBox上面先安装好虚拟机Ubuntu 16.04
源码:
https://gitee.com/hnuwjw/os-hello-os
1.1 设置grub进入引导菜单
- 安装nasm,才能执行make
先安装nasm:
sudo apt-get install -y nasm
然后在HelloOS目录下执行:
make -f Makefile
就可以得到HelloOS.bin文件了
- 配置下启动项,不然无法选择HelloOS菜单
先修改文件:
/etc/default/grub
如果修改的时候报错“readonly option is set XXXXX”,则使用超级管理员角色编辑文件:
sudo vim grub
然后执行:
sudo update-grub
1.2 增加HelloOS启动选项
修改/boot/grub/grub.cfg,增加HelloOS启动项:
menuentry 'HelloOS' {
insmod part_msdos #GRUB加载分区模块识别分区
insmod ext2 #GRUB加载ext文件系统模块识别ext文件系统
set root='hd0,msdos1' #注意boot目录挂载的分区,这是我机器上的情况
multiboot2 /boot/HelloOS.bin #GRUB以multiboot2协议加载HelloOS.bin
boot #GRUB启动HelloOS.bin
}
文件系统 1K-块 已用 可用 已用% 挂载点