打卡第一天:通过GRUB启动我们自己的操作系统HelloOS

(2021年10月28日打卡第一天)



1、安装nasm

通过命令

sudo apt-get install nasm

安装nasm:
在这里插入图片描述

2、把windows主机上的源码复制到虚拟机ubuntu中

在这里插入图片描述

3、通过make自动编译操作系统HelloOS

在这里插入图片描述
在源码lesson02目录空白处右击鼠标,点击Openin Terminal打开一个命令窗口,输入命令make回车即可:
在这里插入图片描述

4、拷贝编译生成的HelloOS.bin到boot目录下

在这里插入图片描述

5、修改/etc/default/grub

在这里插入图片描述

  • 我们可以看到该文件的属性是只读的,不能直接用vim或者gedit修改,怎么办呢?
    在这里插入图片描述
    在该界面空白处右击鼠标,打开一个命令窗口,输入命令
    sudo chmod 777 grub
    修改该文件权限,然后就可以用gedit grub打开该文件进行修改了。
    在这里插入图片描述
    我们可以看到此时grub文件的属性就是可读可写了。
    在这里插入图片描述
    备注:当修改保存的时候,如果提示无法修改该只读文件的时候,要么通过sudo chmod 777 /etc/default/grub修改该文件权限,要么在上图vim中输入命令
    :w !sudo tee %
    强制修改该只读文件,按照提示输入大写字母O,按回车,输入命令!q退出vim,再次more或者cat该文件可以发现已经修改成功。

6、更新grub配置

sudo update-grub

7、修改/boot/grub/grub.cfg,增加HelloOS启动项

//install.md
menuentry 'HelloOS' {
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos4' #注意boot目录挂载的分区,这是我机器上的情况
    multiboot2 /boot/HelloOS.bin
    boot
}

把install.md中的内容复制到/boot/grub/grub.cfg中的启动选项后面(其中msdos4按照本机实际情况改为msdos1,具体参考下面** 9、通过命令ls验证系统GRUB引导在硬盘的哪个分区的内容):
在这里插入图片描述
备注:当修改保存的时候,如果提示无法修改该只读文件的时候,要么通过sudo chmod 777 /boot/grub/grub.cfg修改该文件权限(具体参考上面
5、修改/etc/default/grub**的内容),要么在上图vim中输入命令
:w !sudo tee %
强制修改该只读文件,按照提示输入大写字母O,按回车,输入命令!q退出vim,再次more或者cat该文件可以发现已经修改成功。

8、重启虚拟机

在命令行中输入sudo reboot,或者sudo shutdown -r now重启虚拟机后,显示如下界面:
在这里插入图片描述

9、通过命令ls验证系统GRUB引导在硬盘的哪个分区

按C键进入命令模式:
在这里插入图片描述
注意,输入上图所示的ls (hd0,msdos1)之后,按一下tab键,该命令尾部会自动加上反斜线/:
在这里插入图片描述
然后再按tab键,即可列出该分区下的目录名,看是否有boot目录:
在这里插入图片描述
确认该分区存在boot目录后,输入命令ls (hd0,msdos1)/boot,按下tab键,自动补上反斜线/:
在这里插入图片描述
然后再按tab键,即可列出boot目录下的所有文件,查看是否有我们生成的HelloOS.bin文件:
在这里插入图片描述
找到我们生成的HelloOS.bin文件后,确认该分区与/boot/grub/grub.cfg文件中的
set root='hd0,msdos1' #注意boot目录挂载的分区一致,按esc键返回启动选项界面,选中最后一行HelloOS选项按回车键,成功启动我们自己的 Hello OS:
在这里插入图片描述

  • 如果要关机或者重启,通过虚拟机电源选项进行:
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值