首页
社区
课程
招聘
[求助]boot阶段怎么读写磁盘
发表于: 2011-9-26 13:57 8360

[求助]boot阶段怎么读写磁盘

2011-9-26 13:57
8360

boot阶段,磁盘控制器驱动还没加载之前,神马srb之类的肯定发不了
求方法

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 229
活跃值: (483)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
保护模式下,非实模式
2011-9-26 13:58
0
雪    币: 1683
活跃值: (674)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
IO端口行不行?SRB到最后也是IO端口
2011-9-26 14:22
0
雪    币: 416
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我記得組合語言的硬體中斷表,本身就有讀寫硬碟的中斷。

因為是16位元,所以int的中斷表可以用,大部分應該在BIOS階段都會用中斷表
2011-9-26 15:21
0
雪    币: 135
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
bios int 13h~
2011-9-26 16:01
0
雪    币: 27
活跃值: (90)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
6
int 13h好像只能寻址很小的硬盘空间,
不知道是不是?
2011-9-26 16:10
0
雪    币: 135
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Basic Int13h是8G的磁盘空间
扩展int 13h就多了
2011-9-26 16:33
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
保护模式下就操作端口咯,《Orangs一个操作系统的实现》里面有介绍
2011-9-26 18:47
0
雪    币: 768
活跃值: (515)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
9
int 13,调试一下,主引导扇区的代码:)

debug
a
mov ax,0201
mov bx,0200
mov cx,0100
mov dx,0080
int 13
t...

忆起当年在网吧被还原卡虐的经历,这段代码不知敲了多少遍~ ,往事不堪回首
2011-9-26 18:57
0
雪    币: 229
活跃值: (483)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
10
调int 13需要切换到实模式 ,在驱动中不怎么现实吧
2011-9-26 23:04
0
雪    币: 229
活跃值: (483)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
11
不过ntldr中保护模式阶段的磁盘io,也是通过int 13
但是windows内核起来之后,再切换到实模式 不知能不能搞
2011-9-26 23:07
0
雪    币: 229
活跃值: (483)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
12
由于我的磁盘io操作是要在内核加载之后,磁盘控制器驱动工作之前
所以感觉局限性有些大
2011-9-26 23:09
0
雪    币: 304
活跃值: (507)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
ntldr阶段是 int 13x
但是一旦进入保护模式直到磁盘控制器驱动工作之前

是完全没有读写磁盘操作的

当初做pxe时研究过~
因为我hook int13x 根本没必要考虑保护模式的问题
2011-9-28 17:47
0
雪    币: 229
活跃值: (483)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
14
我就是要在这个“完全没有读写磁盘操作”的阶段读磁盘
实在没办法的话 就只能用内存来传递了
我是在实模式pxe环境下,通过tcp协议下载30k~2M左右的数据,然后内核加载后的boot阶段使用。测试了下,通过内存的话,最多只能传递0.5M左右的数据,看来只能满足有限的需求了。
2011-9-28 20:26
0
雪    币: 229
活跃值: (483)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
15
hook int 13进行网络转发,做虚拟盘 、传统无盘的话,确实是没必要考虑保护模式。应为到了你的hook函数里面来了就是实模式了。

但是现在要显示一个功能就是,NBP(net boot proogram)启动时从网络上下载当前机器的网卡驱动,然后在boot阶段加载,驱动网卡无盘启动。

体积小的驱动直接放到内存中就行了,这个已测试通过。
就怕遇到体积大得网卡驱动,那就得通过其他途径来传递了。
2011-9-28 20:37
0
游客
登录 | 注册 方可回帖
返回
//