工具:Bochs、WinImage、Notepad++
环境:Windows,Bochs中运行的是Linux 0.11
步骤:
-
使用bximage.exe创建一个镜像,然后复制到Linux 0.11所在的目录下(我用的是diskb.img):
-
然后,修改``bochsrc.bxrc`(建议使用Notepad++):
romimage: file=$BXSHARE/BIOS-bochs-latest megs: 16 vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest floppya: 1_44="bootimage-0.11", status=inserted floppyb: 1_44="diskb.img", status=inserted ata0-master: type=disk, path="hdc-0.11.img", mode=flat, cylinders=410, heads=16, spt=38 boot: floppy log: bochslog.txt
将第五行中的floppyb: 1_44=“你刚才用步骤一创建的img文件名”,其他不用改。
-
修改好后,双击
bochsrc.bxrc
,进入系统后,执行如下:[usr/root]# mdir a: #一定要先执行这个,否则会出现好多"Reset-floppy called" [usr/root]# mdir b:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hm2CoiGQ-1570524279751)(C:/Users/Futur/Desktop/exp8/images/floppyb.png)]
未执行mdir a:
而直接执行mdir b:
的运行结果:
-
现在先安装WinImage(官网有下)了,安装好后,用它打开你创建的img文件(先关闭Bochs):
里面是空的,下面将Windows本地的文件写进去:
-
ok,我写入了三个文件:
现在,将这三个文件复制到当前文件夹中mcopy b:文件名 目的路径
:
[/usr/root]# mkdir kernel # 创建一个文件夹
[/usr/root]# cd kernel #进入kernel文件夹
[/usr/root/kernel]# mcopy b:makefile . #将b盘中的makefile复制到当前文件夹下
vi下看一下makefile,好像多了好多^M
-
好吧,我坑你了,哈哈,sorry。用Notepad++解决问题:
嗯,现在可以了。 -
如果要将img中的文件导出,在WinImage中打开img文件后,右键点击
Extrat
。
P.S.
- 如果vi出现xxxx busy xxxx的:
rm /temp/*
。 - 以上打开img文件都要关闭Bochs。