由于我现在已经将ubuntu作为主系统,便希望能在ubuntu下完成这一个创建Myos虚拟机实验。
在此之前我已经安装了虚拟机VirtualBox,于是此次实验我便在VirtualBox环境下完成。
首先是编译引导文件。编译.asm文件在linux环境下同样可以用nasm,安装命令如下:
sudo apt-get install nasm
编译命令跟windows环境下一样:
nasm boot.asm -o boot.bin
其次是创建一个虚拟软盘。由于VirtualBox在不能像创建虚拟空白硬盘一样创建虚拟软盘,而只能选择一个已有的虚拟软驱介质(.img),所以我们要先创建一个基于我们先前编译得到的boot.bin的虚拟软盘。参考于渊的书,我找到了这一条命令:
dd if=boot.bin of=floppy.img bs=512 count=1
这条命令能在主文件夹下创建一个大小为512B,名为floppy.img,写入了boot.bin的虚拟软盘镜像(由于boot.bin限制,floppy.img大小只能为512B)。其中boot.bin是读取位置,loppy.img是写入位置,bs=512是每次读512个字节,count=1是指读取一次。
现在便可以在VirtualBox里创建MyOS虚拟机。点击新建按键后,安装过程中需要改动默认的有:操作系统和版本都选择other,内存大小选4mb,去掉Star-up Disk的勾选。
建成后先不要启动,还有最后一个步骤。选中建好的MyOS,设置-Storage-添加软盘控制器-选中软盘控制器-添加虚拟软驱-Choose disk-选择主文件夹下的floppy.img-确定。
这时开始虚拟机MyOS便大功告成,画面如下:
完成上述实验这后,考虑到floppy.img只能受限于512字节,咯显不完美,便又百度了一下,查找到了下面这一条创建任意大小空白虚拟软盘的命令(这里创建的是1MB大小):
dd if=/dev/zero of=floppy.img bs=1048576 count=1
然后我再用wine打开FloppyWriter.exe,将boot.bin写入,之后过程和上面的一样,最后同样能成功的得到如上的画面。