https://time.geekbang.org/column/article/369502
https://gitee.com/lmos/cosmos

一、下载Virtual Box

Oracle VM VirtualBox

二、下载Ubuntu 镜像

Index of /ubuntu-releases/20.04/ (aliyun.com)

三、创建虚拟机

1. 点击新建

image-20211119164837210

2. 填写信息

image-20211119164955108

3.根据你的内存大小选择,我们运行GUI所以给大点

image-20211119165046447

4. 创建硬盘(之后默认即可)

image-20211119165116449

5. 启动安装Ubuntu

image-20211119165207555

image-20211119165227214

image-20211119165236028

image-20211119165251009

6. 安装Ubuntu

image-20211119165527007

你可以选择中文,这样你的apt源就会是中国的,或者选英文之后再改。一路默认即可。

三、配置环境

1. 安装nasm

sudo apt install nasm

2. 安装gcc和make

sudo apt install gcc make -y

四、编译和配置grub

make

成功后会出现

image-20211119170055316

sudo cp HelloOS.bin /boot/
cd /boot/
cd /grub/

你会看到grub.cfg

sudo nano grub.cfg

添加这个

image-20211119170523989

这里是/dev/sda5 所以要把下面的"hd0, msdos4" -> "hd0, msdos5"

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
}

image-20211119171014509

sudo reboot

五、错误

发现重启后没有按照grub启动,因为默认启动被隐藏了

sudo su
cd /etc/default
nano grub

1.找到hidden,注释掉

image-20211119171449596

2. 把GRUB_TIMEOUT=0改成30,GRUB_CMDLINE_LINUX_DEFAULT改成text,如下图

image-20211119171642806

3. 保存,重启

Ctrl + O 保存

Ctrl + X 退出

sudo update-grub

<font color="red">这里我重启之后发现HelloOS没有,然后发现之前的/boot/grub/grub.cfg里面写的内容消失了,重新写一次就行。</font>

六、成功

image-20211119172421389

image-20211119172458263

最后修改:2021 年 11 月 19 日
如果觉得我的文章对你有用,请随意赞赏