无忧启动论坛

 找回密码
 注册
搜索
WEPE笔记本电脑手机维修小包 IT发烧友的必备工具最纯净的「微PE装机优盘」UEPON大师作品卡瑞飞系统和装机二合一超级U盘
广告位招租系统gho:最纯净好用系统下载站广告联系 QQ:184822951 微信:wuyouceo
查看: 13339|回复: 73

umbr 测试(适用于BIOS+GPT磁盘的MBR程序)

    [复制链接]
发表于 2016-1-12 16:32:36 | 显示全部楼层 |阅读模式
本帖最后由 chenall 于 2016-1-18 15:00 编辑

介绍
附件的umbr是一个GRUB4DOS下的可执行程序.(必须配合附件的GRLDR使用).

可以安装在MBR上,因为这个是根据扇区定位的所以和磁盘分区格式无关像GPT也是一样使用.

可以指定多个备用启动文件,以防止文件移动或修改导致的启动失败.

这只是一个简单的MBR(占用MBR一个扇区),直接启动固定位置的引导程序.

使用方法:
首先把GRLDR文件复制到硬盘上保存多份(也可以直接写入到分区间隙等)

然后用附件的GRLDR启动进入GRUB4DOS命令行使用类似以下命令安装(程序只改写MBR)

umbr -d=0 (hd0,0)/grldr (hd0,0)/boot/grub/grldr (hd0)xxxx+yyyy

参数介绍
-p=0 启动失败时默认自动启动分区0.
-d=0 安装到(hd0),后面的文件也必须是在(hd0)上面
--test        不写入磁盘直接测试启动效果.


后面可以指定3个启动位置必须都在(hd0)上面,

启动时优先启动第一个指定的文件,如果启动失败(根据校验信息),则尝试下一个.

注:

1. 我对汇编不太熟,可能会有BUG,请不要实机测试.有兴趣的可以虚拟机测试,也可以一起改进.
2. 请把引导的文件放在尽量靠近硬盘开头的地方,放在靠后可能会无法读取.
3. 由于部份电脑不支持读大文件,可以尝试启动WEE63.MBR


2016-01-13
12:00 更新        增加错误提示信息
13:10 更新        新增 --test参数用于测试启动,不写硬盘,直接启动.

2016-01-14
     重新修改了一下,现在支持启动PBR
    例子: 当wee启动失败时启动(hd0,1)的pbr

2016-01-14 20:40 更新,

1.新的版本由于代码的的增加,只能指定3个位置一般也够用了,
2.新增标志信息在MBR偏移0x8处有UMBR字样,0XC处是版本标志(目前是1),方便以后有人开发WINDOWS下的GUI工具.

进入实用性阶段,现在的代码空间已经用得差不多了,功能也基本实现了.没有什么BUG的话可能不会再更新.

针对grub4dos的修改稍后会并入源码.

源码已经上传

其它介绍在这里 http://chenall.net/post/grub4dos_umbr/

umbr.zip

173.3 KB, 下载次数: 245, 下载积分: 无忧币 -2

评分

参与人数 1无忧币 +5 收起 理由
yang77 + 5 很给力!

查看全部评分

发表于 2016-1-12 17:37:04 | 显示全部楼层
最好再介绍详细一点。初次接触的人,对此没有概念。比如说:

占用多少个扇区?

启动的逻辑线索、步骤大致是怎样的?

与其他引导代码有何共同点与不同点?

点评

其实这个很早之前就有介绍过 就是一个MBR引导程序只需要一个扇区, 功能很简单,只是直接启动固定的位置的引导程序. 为了防止由于文件移动或其它原因导致的启动失败,用户最多可以指定4个位置.启动时通过内置  详情 回复 发表于 2016-1-12 20:05
回复

使用道具 举报

发表于 2016-1-12 18:02:57 | 显示全部楼层
支持,又有好东西了
回复

使用道具 举报

发表于 2016-1-12 19:31:33 | 显示全部楼层
辛苦了!

留下脚印,待有条件测试。
回复

使用道具 举报

发表于 2016-1-12 19:39:42 | 显示全部楼层
本帖最后由 qj_tzy 于 2016-1-12 19:55 编辑

感谢C大又出新东西,非常期待,很想在实机硬盘上测试一下,但我的两个硬盘上均有重要数据,怕出问题,所以,只有暂时不在实机硬盘上测试了。

点评

建议在虚拟机,比如可以在QEMU下加添-snapshot 参数,这样就可以在QEMU下模拟写入实机硬盘测试,没问题了再写入实机. 运行umbr会写入硬盘的0扇区也就是修改MBR内容.只写入0x1b0字节,不影响分区表等.  详情 回复 发表于 2016-1-12 19:55
回复

使用道具 举报

 楼主| 发表于 2016-1-12 19:55:58 | 显示全部楼层
本帖最后由 chenall 于 2016-1-12 19:57 编辑


建议先在虚拟机,比如可以在QEMU下加添-snapshot 参数,这样就可以在QEMU下模拟写入实机硬盘测试,没问题了再写入实机.

运行umbr会写入硬盘的0扇区也就是修改MBR内容.只写入0x1b0字节,理论上不影响分区表等.


回复

使用道具 举报

 楼主| 发表于 2016-1-12 20:05:26 | 显示全部楼层
不点 发表于 2016-1-12 17:37
最好再介绍详细一点。初次接触的人,对此没有概念。比如说:

占用多少个扇区?

其实这个很早之前就有介绍过

就是一个MBR引导程序只需要一个扇区,

功能很简单,只是直接启动固定的位置的引导程序.

为了防止由于文件移动或其它原因导致的启动失败,用户最多可以指定4个位置.启动时通过内置的简单校验判断启动文件是否完整(修改或移动).

总之4个只要有其中一个可以正常使用就可以保证启动不失败.

我对汇编和引导都不熟,完全是参考wee63.mbr来改写的,依葫芦画瓢.

主要是用于GPT格式磁盘,当然了MBR格式的也可以用.

点评

有这个介绍就很好。让人起码知道,只需一个扇区。  详情 回复 发表于 2016-1-12 20:46
回复

使用道具 举报

发表于 2016-1-12 20:23:03 | 显示全部楼层
不错,支持一下。
回复

使用道具 举报

发表于 2016-1-12 20:46:06 | 显示全部楼层
chenall 发表于 2016-1-12 20:05
其实这个很早之前就有介绍过

就是一个MBR引导程序只需要一个扇区,

有这个介绍就很好。让人起码知道,只需一个扇区。

点评

请问一下要如何启动某个分区的PBR? 比如知道(hd0,0)分区的位置,我想直接启动(hd0,0)+1,直接加载启动好像不行,我看了WEE源码没找到关键的地方,需要额外设置什么数据? 我想在umbr的启动记录最后一条添加直接启动  详情 回复 发表于 2016-1-13 10:08
回复

使用道具 举报

 楼主| 发表于 2016-1-13 10:08:10 | 显示全部楼层
不点 发表于 2016-1-12 20:46
有这个介绍就很好。让人起码知道,只需一个扇区。

请问一下要如何启动某个分区的PBR?

比如知道(hd0,0)分区的位置,我想直接启动(hd0,0)+1,直接加载启动好像不行,我看了WEE源码没找到关键的地方,需要额外设置什么数据?

我想在umbr的启动记录最后一条添加直接启动第一个分区,直接启动第一个分区

点评

应该可以加载 PBR 启动的。需要加载 512 字节到 0000:7C00 处,并设置正确的 DL 寄存器。扩展分区里面的逻辑分区上的 PBR 是不能启动的,因为 PBR 偏移 0x1C 处的 “分区起始扇区号” 是错误的。必须纠正为正确值才  详情 回复 发表于 2016-1-13 17:03
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2019-7-20 04:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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