无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4179|回复: 6

[求助] grub能否通过外部命令bios查询硬盘物理序列号

[复制链接]
发表于 2012-12-26 09:32:17 | 显示全部楼层 |阅读模式
grub能否通过外部命令bios查询硬盘物理序列号
现在想在grub启动后查询硬盘物理序列号,但没有发现这个功能,只有dos环境 linux环境 和windows环境有这样的功能。
请知道的大侠指点下 grub下如何查询磁盘物理序列号。
发表于 2012-12-26 10:45:35 | 显示全部楼层
把你的 DOS 程序、Linux 程序的源代码拿过来,重新改造、编译为 grub4dos 的程序,就可以了。

目前的 bios 命令也主要是调用 BIOS 罢了。查询物理序列号,估计不是调用 BIOS,可能还需要访问 IO 指令。

总之,需要生成 grub4dos 的可执行程序才行。
回复

使用道具 举报

 楼主| 发表于 2012-12-27 21:30:32 | 显示全部楼层

回复 #2 不点 的帖子

网上找到的查看硬盘序列号的源码都需要 dos.h 这类头文件。grub只有 grub4dos.h 这个头文件。
回复

使用道具 举报

发表于 2012-12-27 21:39:06 | 显示全部楼层
只要有源码,就有希望。dos.h 之类的,都是小问题。

你不妨把源码拿来,说不定这里有人能帮你搞定。
回复

使用道具 举报

 楼主| 发表于 2012-12-29 21:16:38 | 显示全部楼层

回复 #4 不点 的帖子

6f5df6935f28.rar (940 Bytes, 下载次数: 15)
回复

使用道具 举报

发表于 2012-12-30 09:41:10 | 显示全部楼层
while (inp (0x1F7) != 0x50)/* Wait for controller not busy */;

outp (0x1F6, 0xA0); /* Get first/second drive */

outp (0x1F7, 0xEC); /* Get drive info data */

while (inp (0x1F7) != 0x58) /* Wait for data ready */;
这几句是关键.
如果我猜的不错.这是在读写端口.  0X1F7是硬盘端口?  0X50表示硬盘不忙?
0X1F6选择硬盘. 0X1F7发送指令.  0X1F7即是状态寄存器又是指令寄存器
回复

使用道具 举报

 楼主| 发表于 2013-1-1 10:42:48 | 显示全部楼层

回复 #6 sgw888 的帖子

这个看代码 只能读取ide 硬盘的序列号,对sata硬盘无效。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-11-7 09:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表