linux0.01编译出的Image核心文件的启动方法

看了几天的linux0.01的资料,前天终于编译出来了Image文件,这个文件可以用来启动bochs虚拟机。但问题是直接把Image加到bochssrc.txt中没有成功。

后来看资料中说要利用软盘并输入命令make disk来把Image写入到软盘中。这本书是2004年出版的。现在2016哪里还有软盘呢。后来记得linux 的 dd命令可以制作img文件。折腾了好长时间才弄明白。其实我就是差一个参数就不用折腾这么久了。

正因为如此,我把过程记录下来,以后说不定能帮到大家。

编译linux0.01的过程省略。我们得到Image文件后。可以在bochs的目录中找到bximage这个命令。这个命令也可以在linux下单独安装。运行此命令后,一切按默认的设置会生成一个a.img的文件。这是一个1.44的软盘镜像。但里面什么都没有。

关键的地方来了:

dd if=./Image of=./a.img bs=512 conv=notrunc

后面这个参数是不截断a.img文件。这样才是一个完整的软盘镜像文件啊。bochs才能识别出来。把他加入到bochssrc.txt中。加载起来吧。


此外,还要注意bochssrc.txt中相关启动设备的参数,比如说:ata0-master: type=disk, path="c.img", cylinders=20, heads=16, spt=63后面这几个参数要和生成的c.img要对应。

这个c.img是硬盘的镜像,在利用bximage生成c.img时,有相关的参数提示。大家按需要改即可。生成过程中的部分输入信息如下:

Please type flat, sparse or growing. [flat] 


Enter the hard disk size in megabytes, between 1 and 129023
[10] 


I will create a 'flat' hard disk image with
  cyl=20
  heads=16
  sectors per track=63
  total sectors=20160
  total size=9.84 megabytes


What should I name the image?
[c.img] 


上面的参数就是这个镜像文件的硬盘参数了。

附上dd的说明:

dd指令使用 
语法格式
dd   [option] 
dd指令选项详解

if=file:输入文件名,缺省为标准输入

of=file:输出文件名,缺省为标准输出
ibs=bytes:一次读入 bytes 个字节(即一个块大小为 bytes 个字节)
obs=bytes:一次写 bytes 个字节(即一个块大小为 bytes 个字节)
bs=bytes:同时设置读写块的大小为 bytes ,可代替 ibs 和 obs
cbs=bytes:一次转换 bytes 个字节,即转换缓冲区大小
skip=blocks:从输入文件开头跳过 blocks 个块后再开始复制
seek=blocks:从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)
count=blocks:仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数
conv=ASCII:把EBCDIC码转换为ASCIl码。 
conv=ebcdic:把ASCIl码转换为EBCDIC码。 
conv=ibm:把ASCIl码转换为alternate EBCDIC码。 
conv=block:把变动位转换成固定字符。 
conv=ublock:把固定位转换成变动位。 
conv=ucase:把字母由小写转换为大写。 
conv=lcase:把字母由大写转换为小写。 
conv=notrunc:不截短输出文件。 
conv=swab:交换每一对输入字节。 
conv=noerror:出错时不停止处理。 
conv=sync:把每个输入记录的大小都调到ibs的大小(用NUL填充)。 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值