https://time.geekbang.org/column/article/369502
https://gitee.com/lmos/cosmos
一、下载Virtual Box
二、下载Ubuntu 镜像
Index of /ubuntu-releases/20.04/ (aliyun.com)
三、创建虚拟机
1. 点击新建
2. 填写信息
3.根据你的内存大小选择,我们运行GUI所以给大点
4. 创建硬盘(之后默认即可)
5. 启动安装Ubuntu
6. 安装Ubuntu
你可以选择中文,这样你的apt源就会是中国的,或者选英文之后再改。一路默认即可。
三、配置环境
1. 安装nasm
sudo apt install nasm
2. 安装gcc和make
sudo apt install gcc make -y
四、编译和配置grub
make
成功后会出现
sudo cp HelloOS.bin /boot/
cd /boot/
cd /grub/
你会看到grub.cfg
sudo nano grub.cfg
添加这个
这里是/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
}
sudo reboot
五、错误
发现重启后没有按照grub启动,因为默认启动被隐藏了
sudo su
cd /etc/default
nano grub
1.找到hidden,注释掉
2. 把GRUB_TIMEOUT=0改成30,GRUB_CMDLINE_LINUX_DEFAULT改成text,如下图
3. 保存,重启
Ctrl + O 保存
Ctrl + X 退出
sudo update-grub
<font color="red">这里我重启之后发现HelloOS没有,然后发现之前的/boot/grub/grub.cfg里面写的内容消失了,重新写一次就行。</font>