"a.img: x86 boot sector, code offset 0x65"
之后我用mount 命令加载 sudo mount -o loop a.img /mnt/floppy 出错
“mount: 您必须指定文件系统类型”
不知道怎么办才好,求指导
12 个解决方案
#1
那就指定文件系統,類似mount -t vfat /dev/sdb1 /mnt/usb。
#2
我是通过先mount挂载操作完毕之后在dd写入a.img,然后在通过bochs加载曲线救国的
#3
楼主很有想法呀,呵呵,那就指定下文件系统类型呗,成功的话说一下,学习学习
#4
-fat -fat32
#5
之后我用mount 命令加载 sudo mount -o loop a.img /mnt/floppy 出错
===============
可以试试iso9660,man mount了下,没有发现有合适的选项
===============
可以试试iso9660,man mount了下,没有发现有合适的选项
#6
应该是boot.bin里面没有文件系统的信息导致的,如果在boot.s最开始加上如下的代码:
再去mount的时候就会知道这是个FAT12的分区(以上代码有几个宏没贴出来,需要根据具体的介质来定义大小,我是用了一个10M的image:bochsrc里面有一行 ata0-master: type=disk, path="disk_10M.img", mode=flat, cylinders=20, heads=16, spt=63,来指定,然后烧到U盘里去启动的,如果是软盘的话,这几个值也是很好算出来的),如果楼主的boot.bin里这样的信息没有的话,就算指定了vfat,fat32也是没有用的。另外楼主如果想用fat32的文件系统的话,可以去查下fat32在mbr中的信息是如何存储的。
PS:楼主是如何将boot.bin dd到a.img里的? 是dd if=boot.bin of=a.img 吗?如果是这样的话,a.img就不是1.44M了,大小是boot.bin的大小。
jmp LABEL_START
nop
#下面是 FAT12 磁盘的头
BS_OEMName: .ascii "HelloWLD" # OEM String, 必须 8 个字节
BPB_BytsPerSec: .short 0x200 # 每扇区字节数
BPB_SecPerClus: .byte 0x1 # 每簇多少扇区
BPB_RsvdSecCnt: .short 0x1 # Boot 记录占用多少扇区
BPB_NumFATs: .byte 0x2 # 共有多少 FAT 表
BPB_RootEntCnt: .short 0xE0 # 根目录文件数最大值
BPB_TotSec16: .short HEADS*SECTORS_PER_TRACK*CYLINDERS # 逻辑扇>区总数
BPB_Media: .byte 0xF0 # 媒体描述符
BPB_FATSz16: .short 0x9 # 每FAT扇区数
BPB_SecPerTrk: .short SECTORS_PER_TRACK # 每磁道扇区数
BPB_NumHeads: .short HEADS # 磁头数(面数)
BPB_HiddSec: .int 0x0 # 隐藏扇区数
BPB_TotSec32: .int 0x0 # wTotalSectorCount为0时这个值记录扇区
数
BS_DrvNum: .byte 0x0 # 中断 13 的驱动器号
BS_Reserved1: .byte 0x0 # 未使用
BS_BootSig: .byte 0x29 # 扩展引导标记 (29h)
BS_VolID: .int 0 # 卷序列号
BS_VolLab: .ascii "Tracy_Zhang"# 卷标, 必须 11 个字节
BS_FileSysType: .ascii "FAT12 " # 文件系统类型, 必须 8个字节
再去mount的时候就会知道这是个FAT12的分区(以上代码有几个宏没贴出来,需要根据具体的介质来定义大小,我是用了一个10M的image:bochsrc里面有一行 ata0-master: type=disk, path="disk_10M.img", mode=flat, cylinders=20, heads=16, spt=63,来指定,然后烧到U盘里去启动的,如果是软盘的话,这几个值也是很好算出来的),如果楼主的boot.bin里这样的信息没有的话,就算指定了vfat,fat32也是没有用的。另外楼主如果想用fat32的文件系统的话,可以去查下fat32在mbr中的信息是如何存储的。
PS:楼主是如何将boot.bin dd到a.img里的? 是dd if=boot.bin of=a.img 吗?如果是这样的话,a.img就不是1.44M了,大小是boot.bin的大小。
#7
PS:楼主是如何将boot.bin dd到a.img里的? 是dd if=boot.bin of=a.img 吗?如果是这样的话,a.img就不是1.44M了,大小是boot.bin的大小。
谢谢这位朋友那么热心的解答:
现在我的情况是我 dd if=boot.bin bs=512 of=a.img count=1 conv=notrunc 用了非截断参数conv=notrunc,那么a.img应该还是原样把
#8
谢谢这位朋友,有空就试试
#9
谢谢你,按照你的方法解决了。不过上次我也用同样的命令试过,好像有什么错误提示,我也忘了,如果遇到的话再提问了
#10
顶。
#11
大阪也开始水了阿
#12
大版也要挣分的呀~~~
#1
那就指定文件系統,類似mount -t vfat /dev/sdb1 /mnt/usb。
#2
我是通过先mount挂载操作完毕之后在dd写入a.img,然后在通过bochs加载曲线救国的
#3
楼主很有想法呀,呵呵,那就指定下文件系统类型呗,成功的话说一下,学习学习
#4
-fat -fat32
#5
之后我用mount 命令加载 sudo mount -o loop a.img /mnt/floppy 出错
===============
可以试试iso9660,man mount了下,没有发现有合适的选项
===============
可以试试iso9660,man mount了下,没有发现有合适的选项
#6
应该是boot.bin里面没有文件系统的信息导致的,如果在boot.s最开始加上如下的代码:
再去mount的时候就会知道这是个FAT12的分区(以上代码有几个宏没贴出来,需要根据具体的介质来定义大小,我是用了一个10M的image:bochsrc里面有一行 ata0-master: type=disk, path="disk_10M.img", mode=flat, cylinders=20, heads=16, spt=63,来指定,然后烧到U盘里去启动的,如果是软盘的话,这几个值也是很好算出来的),如果楼主的boot.bin里这样的信息没有的话,就算指定了vfat,fat32也是没有用的。另外楼主如果想用fat32的文件系统的话,可以去查下fat32在mbr中的信息是如何存储的。
PS:楼主是如何将boot.bin dd到a.img里的? 是dd if=boot.bin of=a.img 吗?如果是这样的话,a.img就不是1.44M了,大小是boot.bin的大小。
jmp LABEL_START
nop
#下面是 FAT12 磁盘的头
BS_OEMName: .ascii "HelloWLD" # OEM String, 必须 8 个字节
BPB_BytsPerSec: .short 0x200 # 每扇区字节数
BPB_SecPerClus: .byte 0x1 # 每簇多少扇区
BPB_RsvdSecCnt: .short 0x1 # Boot 记录占用多少扇区
BPB_NumFATs: .byte 0x2 # 共有多少 FAT 表
BPB_RootEntCnt: .short 0xE0 # 根目录文件数最大值
BPB_TotSec16: .short HEADS*SECTORS_PER_TRACK*CYLINDERS # 逻辑扇>区总数
BPB_Media: .byte 0xF0 # 媒体描述符
BPB_FATSz16: .short 0x9 # 每FAT扇区数
BPB_SecPerTrk: .short SECTORS_PER_TRACK # 每磁道扇区数
BPB_NumHeads: .short HEADS # 磁头数(面数)
BPB_HiddSec: .int 0x0 # 隐藏扇区数
BPB_TotSec32: .int 0x0 # wTotalSectorCount为0时这个值记录扇区
数
BS_DrvNum: .byte 0x0 # 中断 13 的驱动器号
BS_Reserved1: .byte 0x0 # 未使用
BS_BootSig: .byte 0x29 # 扩展引导标记 (29h)
BS_VolID: .int 0 # 卷序列号
BS_VolLab: .ascii "Tracy_Zhang"# 卷标, 必须 11 个字节
BS_FileSysType: .ascii "FAT12 " # 文件系统类型, 必须 8个字节
再去mount的时候就会知道这是个FAT12的分区(以上代码有几个宏没贴出来,需要根据具体的介质来定义大小,我是用了一个10M的image:bochsrc里面有一行 ata0-master: type=disk, path="disk_10M.img", mode=flat, cylinders=20, heads=16, spt=63,来指定,然后烧到U盘里去启动的,如果是软盘的话,这几个值也是很好算出来的),如果楼主的boot.bin里这样的信息没有的话,就算指定了vfat,fat32也是没有用的。另外楼主如果想用fat32的文件系统的话,可以去查下fat32在mbr中的信息是如何存储的。
PS:楼主是如何将boot.bin dd到a.img里的? 是dd if=boot.bin of=a.img 吗?如果是这样的话,a.img就不是1.44M了,大小是boot.bin的大小。
#7
PS:楼主是如何将boot.bin dd到a.img里的? 是dd if=boot.bin of=a.img 吗?如果是这样的话,a.img就不是1.44M了,大小是boot.bin的大小。
谢谢这位朋友那么热心的解答:
现在我的情况是我 dd if=boot.bin bs=512 of=a.img count=1 conv=notrunc 用了非截断参数conv=notrunc,那么a.img应该还是原样把
#8
谢谢这位朋友,有空就试试
#9
谢谢你,按照你的方法解决了。不过上次我也用同样的命令试过,好像有什么错误提示,我也忘了,如果遇到的话再提问了
#10
顶。
#11
大阪也开始水了阿
#12
大版也要挣分的呀~~~