操作系统实战45讲第一课:实验环境搭建和遇到bug解决方案

搭建实验环境

  1. 首先点击该篇博文:无法获得锁
    完成以上步骤:就安装好了gcc和nasm,此时再安装make
sudo apt install -y gcc nasm make //不安装会报错make: *** 没有规则可以创建目标“menuconfig”
  1. 克隆代码,进入源码目录
git clone https://gitee.com/lmos/cosmos  // 克隆源代码
cd cosmos/lesson02/HelloOS/  //进入源码目录
sudo apt install -y gcc nasm make //记得安装
make  # 编译HelloOS内核文件HelloOS.bin
sudo cp HelloOS.bin /boot/HelloOS.bin  //拷贝内核文件到grub的引导分区里
  1. 添加grub启动项
# 编辑grub的配置文件
sudo vim /boot/grub/grub.cfg

# 在键盘上依次按下:
shift + g + o  #进入文件,这些都是vim相关的操作

# 把下面内容粘贴到文末
#### BEGIN HelloOS.bin ####
menuentry 'HelloOS' {
     insmod part_msdos #GRUB加载分区模块识别分区
     insmod ext2 #GRUB加载ext文件系统模块识别ext文件系统
     set root='hd0,msdos5' #注意boot目录挂载的分区,这是我机器上的情况
     multiboot2 /boot/HelloOS.bin #GRUB以multiboot2协议加载HelloOS.bin
     boot #GRUB启动HelloOS.bin
}
#### End /boot/HelloOS.bin ####

#添加的内容保存好,vim的基本操作:wq!
# 在终端重启系统,输入:
reboot

  1. 重启Ubuntu系统后,在系统启动项菜单里选择 HelloOS,回车

在这里插入图片描述

实验问题

1、正在等待缓存锁:无法获得锁:https://blog.csdn.net/qq_44231964/article/details/117002883
  • 请跳转搭建实验环境1。
2、make: *** 没有规则可以创建目标“menuconfig”
  • 添加命令:sudo apt install -y gcc nasm make //前面写过了哦,我自己在操作的时候没有写这个命令出错的
3、重启选择HelloOS启动后显示 error: file `/boot/HelloOS.bin’ not found.
  • 原因就是boot目录挂载的分区写错了,请看问题4.
4、set root=‘hd0,msdos5’ #boot目录挂载的分区,怎么写
  • set root=‘hd0,msdos5’ #注意boot目录挂载的分区 先查看一下自己机器的分区:

    java df /boot /
    在这里插入图片描述

    看见自己的数字是几就在BEGIN HelloOS.bin的set root的msdos+你的数字,我的数字是5,所以为set root=‘hd0,msdos5’

5、没有出现引导菜单,让选择HelloOS来启动

原因:

在这里插入图片描述
看见hiden了吗,因为你隐藏了,改为menu,下一行的0改为任意一个数只是设置一下menu的大小

课程思维导图

在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值