第四章的引导盘Linux识别不了

41 views
Skip to first unread message

Rilon

unread,
Nov 1, 2009, 1:16:25 AM11/1/09
to 自己动手写操作系统
作者说在引导程序开头加上如下定义,DOS和LINUX就能够识别:
BS_OEMName DB 'ForrestY' ; OEM String, 必须 8 个字节
BPB_BytsPerSec DW 512 ; 每扇区字节数
BPB_SecPerClus DB 1 ; 每簇多少扇区
BPB_RsvdSecCnt DW 1 ; Boot 记录占用多少扇区
BPB_NumFATs DB 2 ; 共有多少 FAT 表
BPB_RootEntCnt DW 224 ; 根目录文件数最大值
BPB_TotSec16 DW 2880 ; 逻辑扇区总数
BPB_Media DB 0xF0 ; 媒体描述符
BPB_FATSz16 DW 9 ; 每FAT扇区数
BPB_SecPerTrk DW 18 ; 每磁道扇区数
BPB_NumHeads DW 2 ; 磁头数(面数)
BPB_HiddSec DD 0 ; 隐藏扇区数
BPB_TotSec32 DD 0 ; 如果 wTotalSectorCount 是 0 由这个值记录扇区数
BS_DrvNum DB 0 ; 中断 13 的驱动器号
BS_Reserved1 DB 0 ; 未使用
BS_BootSig DB 29h ; 扩展引导标记 (29h)
BS_VolID DD 0 ; 卷序列号
BS_VolLab DB 'OrangeS0.02'; 卷标, 必须 11 个字节
BS_FileSysType DB 'FAT12 ' ; 文件系统类型, 必须 8个字节
但是,我编译了boot.asm后,用dd命令将*.bin目标文件写进软盘引导区后,再用mount命令挂载软驱,Linux却提示说:you
must specify the filesystem type,也就是不能够识别磁盘的文件系统类型。
请问是怎么回事?你们的多能够识别吗?
我用的是ubuntu 9.04的系统。给点提示……

baby20...@163.com

unread,
Nov 1, 2009, 4:37:19 AM11/1/09
to 自己动手写操作系统
开头,出了最开头的3个字节
jmp short LABEL_START

> 我用的是ubuntu 9.04的系统。给点提示......

baby20...@163.com

unread,
Nov 1, 2009, 4:40:35 AM11/1/09
to 自己动手写操作系统
可以参照108页代码4.1

On 11月1日, 下午1时16分, Rilon <lang19880...@163.com> wrote:

> 我用的是ubuntu 9.04的系统。给点提示......

Rilon

unread,
Nov 1, 2009, 7:19:40 AM11/1/09
to 自己动手写操作系统
大哥,你能否讲清楚点,我是用光盘上的实例来重新编译的.但是我却用不了!
我在上面贴出来的那断代码也是光盘上的实例.方法也一样.我就不懂了!
我拿光盘上第四章的a实例重新用bximage生成虚拟软盘a.img,使用dd 命令把boot.bin写入软盘的引导扇区,然后再使用
mount命令挂载的时候还是有此提示:must specify the filesystem type?
我现在真的很急? 好心人,说清楚一点?

Nick

unread,
Nov 1, 2009, 8:16:33 AM11/1/09
to osfrom...@googlegroups.com
Rilon 写道:
mount -t msdos -o loop boot.img mountfd/ -o uid=500,gid=500

baby20...@163.com

unread,
Nov 1, 2009, 9:24:56 AM11/1/09
to 自己动手写操作系统
把软盘做个镜像发我邮箱里看看

Rilon

unread,
Nov 1, 2009, 9:40:41 AM11/1/09
to 自己动手写操作系统

朋友,你就把光驱里的chapter4/a/boot.asm重新编译,用bximage生成虚拟软盘a.img,使用dd 命令把boot.bin
写入软盘的引导扇区,然后再使用
mount命令挂载,都自己动手一次,如果能够成功,请你把你的步骤回复给我好吗?
因为我自己搞了一次 ,在mount时出现了此提示:must specify the filesystem type !
我等你的佳音……

Rilon

unread,
Nov 1, 2009, 9:44:22 AM11/1/09
to 自己动手写操作系统

> mount -t msdos -o loop boot.img mountfd/ -o uid=500,gid=500

朋友,在使用你给的以上命令可以挂 载上,但是在复制文件的时候有如下提示:
cp: 无法创建一般文件 “/media/floppy/my.bin”: 设备上没有剩余空间
不明白: 设备上没有剩余空间,是什么意思?
请继续给提示……

Forrest Y. Yu

unread,
Dec 2, 2009, 7:44:46 AM12/2/09
to osfrom...@googlegroups.com, lang19...@163.com
其实这种问题还是比较容易查错的,你就把成功的 img 和不成功的 img 比较一下就知道哪里的问题了。

用个二进制查看器比如 hexcurse 之类的。

2009/11/1 Rilon <lang19...@163.com>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "
自己动手写操作系统" group.
To post to this group, send email to osfrom...@googlegroups.com
To unsubscribe from this group, send email to osfromscratc...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/osfromscratch?hl=en
-~----------~----~----~----~------~----~------~--~---




--
Stupid is as stupid does.

Reply all
Reply to author
Forward
0 new messages