Bo2SS

Bo2SS

1 尝尝鲜:从一个Hello到另一个Hello

环境:Windows 下的 Ubuntu 18.04 虚拟机

实践一下#

🎯目标:让自己的系统输出 "Hello OS"

下载源码#

  1. 可在系统任意位置,打开终端执行以下命令,下载源码到虚拟机上
git clone https://gitee.com/lmos/cosmos.git

生成 bin 文件#

  1. 在库中具体位置:/lesson02/HelloOS 下,编译源码,生成 HelloOS.bin
  • 首先,需要安装工具 gcc、make、nasm,默认只有 nasm 没有,其它工具如没有再安装
sudo apt update
sudo apt install nasm
  • 然后,执行编译即可,默认按照 Makefile 里的规则,生成 HelloOS.bin
make

移动 bin 文件#

  1. 将 HelloOS.bin 放到 /boot/ 目录下
mv HelloOS.bin /boot/

修改 grub 启动配置⭐#

  1. 修改 /boot/grub/grub.cfg 文件
  • 使用 sudo 权限,用 vim 打开
sudo vim /boot/grub/grub.cfg
  • 在最后位置插入以下代码,注意修改两个地方:set root、multiboot2
menuentry 'HelloOS' {
     insmod part_msdos            # GRUB加载分区模块识别分区
     insmod ext2                  # GRUB加载ext文件系统模块识别ext文件系统
     set root='hd0,msdos4'        # 注意boot目录挂载的分区
     multiboot2 /boot/HelloOS.bin # GRUB以multiboot2协议加载HelloOS.bin
     boot                         # GRUB启动HelloOS.bin
}
  • 修改内容参考此步骤,再打开一个终端,观察 df /boot/ 的结果,关注两个地方:文件系统、挂载点
image-20210515092657939
  • 文件系统⭐
    • 若为 /dev/sda1,即 1 对应修改 set root='hd0,msdos1'
    • 如果不是 sda [其它系统环境],还需看情况修改 [看课程评论]
  • 挂载点⭐
    • 若为 /boot,对应修改 multiboot2 /HelloOS.bin
    • 若为 /,则无需修改

PS:使用:w!保存,使用:q退出编辑

image-20210515092718504

重启机器#

  1. 重启机器,在加载系统前疯狂按 shift 键 [也可能是其他键,如 esc 键],进入 grub 引导界面
image-20210515092730798
  • 选择自己的系统,按 enter 键
image-20210515092740876
  • 如果此处报错,主要涉及系统类型(物理机、其它虚拟机系统)、系统分区类型(UEFI)、分区表类型(GPT)等因素,可参考以下参考内容👇

参考内容#

如果在其他环境下运行,可参考课程里的评论和相关博客

课程链接#

扫码即可加入:

image-20210523213829681

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。