无忧启动论坛

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

我的硬盘gpt格式

  [复制链接]
跳转到指定楼层
1#
发表于 2019-3-29 17:59:21 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
linux下bootlace写不了grldr.mbr到硬盘

bootlace.com --gpt /dev/sda
2#
发表于 2019-3-29 19:26:57 | 只看该作者

是不是WINDOWS和LINUX公用一个ESP分区就可以?
删掉一个ESP分区。
回复

使用道具 举报

3#
发表于 2019-3-29 19:28:49 | 只看该作者
wintoflash 发表于 2019-3-29 19:19
貌似dg GPT分区不会在开头留空间来兼容mbr。用gparted创建分区表就可以。

gpt也可以兼容mbr?头次听说,这样的话,grldr还可以一直用下去。
wintoflash能否详细介绍下gpt兼容mbr的情况
回复

使用道具 举报

4#
 楼主| 发表于 2019-3-30 10:05:35 来自手机 | 只看该作者
那会儿成功写入了。这次是三孙的m2接口ssd,ahci传输
回复

使用道具 举报

5#
 楼主| 发表于 2019-3-30 18:48:52 来自手机 | 只看该作者
gparted分区靠不住,尽量避免用它。
回复

使用道具 举报

6#
发表于 2019-4-2 09:27:41 | 只看该作者
你把磁盘前64扇区复制出来,发上来。
回复

使用道具 举报

7#
 楼主| 发表于 2019-4-2 10:53:52 | 只看该作者
是不是我把所有零碎的空白区域都合并所致?
33.bin.txt (32 KB, 下载次数: 15)
回复

使用道具 举报

8#
发表于 2019-4-2 11:51:29 | 只看该作者
如果你的 Linux 操作系统是 64 位的,你好像得用 bootlace64.com 才行吧?
回复

使用道具 举报

9#
发表于 2019-4-2 22:16:29 | 只看该作者
本帖最后由 2011yaya2007777 于 2019-4-3 09:15 编辑

试一试
回复

使用道具 举报

10#
 楼主| 发表于 2019-4-3 06:33:54 | 只看该作者
root@porteus:/mnt/sda5/bootlace# ./bootlace.com --gpt /dev/sda
Trace/breakpoint trap
回复

使用道具 举报

11#
发表于 2019-4-3 08:47:21 来自手机 | 只看该作者
为什么64位系统不使用bootlace64.com?
回复

使用道具 举报

12#
发表于 2019-4-3 08:50:44 来自手机 | 只看该作者
测试代码内有int 3,你的系统不让运行?
回复

使用道具 举报

13#
 楼主| 发表于 2019-4-3 08:55:40 来自手机 | 只看该作者
porteus不是六十四,深度才是64,因为深度不是root登陆,不爱用。不懂,我没明白它的提示是什么意思。
回复

使用道具 举报

14#
发表于 2019-4-3 09:12:17 | 只看该作者
本帖最后由 2011yaya2007777 于 2019-4-4 09:28 编辑

因为程序内部有 int 3 代码。不管提示,关键是安装了没有。
回复

使用道具 举报

15#
 楼主| 发表于 2019-4-3 10:14:52 | 只看该作者
本帖最后由 窄口牛 于 2019-4-3 10:19 编辑

root@porteus:/mnt/sda5# ./bootlace.com --gpt /dev/sda
段错误
administrator@DeepIn-Pc:/media/administrator/03D093C40D34FBF2$ sudo ./bootlace64.com --gpt /dev/sda
[sudo] administrator 的密码:
段错误
回复

使用道具 举报

16#
发表于 2019-4-3 11:07:52 | 只看该作者
段错误的原英文是什么?便于定位代码错误。

点评

Segment fault  详情 回复 发表于 2019-4-3 11:23
回复

使用道具 举报

17#
 楼主| 发表于 2019-4-3 11:36:55 来自手机 | 只看该作者
嗯嗯,是的。
回复

使用道具 举报

18#
发表于 2019-4-3 12:14:25 来自手机 | 只看该作者
本帖最后由 2011yaya2007777 于 2019-4-3 12:32 编辑

这么说,是系统报的错误,不是bootlace报的。

点评

segmentation fault 的含义,是程序代码有错误,通常是执行了非法指令,触发了操作系统的 CPU 保护代码,显示这一信息,并终止程序的运行。 比如,可以试试在 C 语言中,执行除以零的操作,那么程序运行后,就可  详情 回复 发表于 2019-4-3 14:34
回复

使用道具 举报

19#
 楼主| 发表于 2019-4-3 12:36:41 来自手机 | 只看该作者
不排除这个可能性,之前bootlace会报错后显示它的帮助信息,现在只有一句。
回复

使用道具 举报

20#
发表于 2019-4-3 14:34:43 | 只看该作者
2011yaya2007777 发表于 2019-4-3 12:14
这么说,是系统报的错误,不是bootlace报的。

segmentation fault 的含义,是程序代码有错误,通常是执行了非法指令,触发了操作系统的 CPU 保护代码,显示这一信息,并终止程序的运行。

比如,可以试试在 C 语言中,执行除以零的操作,那么程序运行后,就可能出现 “段错误”,或者更精确地显示为 “除以零错误”。

我猜,如果程序中有 int 3 之类的,也有可能被某些操作系统判定为 “异常”。
回复

使用道具 举报

21#
发表于 2019-4-4 09:07:20 | 只看该作者
本帖最后由 2011yaya2007777 于 2019-4-4 09:11 编辑

以前 bootlace.com 在 gpt 分区安装 grldr_mbr,是安装在分区表项的空隙。
楼主的磁盘分区的空隙,只有 0x30-0x22=0xe 扇区,不够安装 grldr_mbr (需0x10扇区)。
现在强行安装在第一分区前(即0x30扇区前),占用了一些分区表项的空间(当然保证这些空间没有被使用)。

报段错误,是新代码引起的。判断分区表项的空间是否为空时,确定数据地址有误。dos 和 linux 不同。不太熟悉 linux.

试一试。

bootlace.rar

37.96 KB, 下载次数: 11, 下载积分: 无忧币 -2

点评

在保护模式(Windows、Linux)下,如果你试图访问不该访问的内存地址,会触发 CPU 保护异常,在 Linux 下产生 “段错误”,在 Windows 下也会给出一个异常的对话框。程序被终止执行。  详情 回复 发表于 2019-4-4 09:43
回复

使用道具 举报

22#
发表于 2019-4-4 09:43:15 | 只看该作者
2011yaya2007777 发表于 2019-4-4 09:07
以前 bootlace.com 在 gpt 分区安装 grldr_mbr,是安装在分区表项的空隙。
楼主的磁盘分区的空隙,只有 0x ...
确定数据地址有误

在保护模式(Windows、Linux)下,如果你试图访问不该访问的内存地址,会触发 CPU 保护异常,在 Linux 下产生 “段错误”,在 Windows 下也会给出一个异常的对话框。程序被终止执行。
回复

使用道具 举报

23#
发表于 2019-4-4 14:49:18 | 只看该作者
在 windows 命令行,键入
bootlace --gpt 33.bin
成功写入。

要写入 33.bin 偏移 0x4000 字节,代码是 movl  $0x4000, %edi。在 windows 可以,在 linux 不行。
在 linux 代码必须是 movl  $MBR(0x4000), %edi。当然,也可用于 dos 及 windows 命令行。

#ifdef __DOS_16
#define MBR(x) (x)
#else
#define MBR(x) (grldr_mbr_start + 0x2000 + x - _start + 0x00400000)
#endif
回复

使用道具 举报

24#
发表于 2019-4-4 15:19:51 | 只看该作者
hybrid 能够解决
回复

使用道具 举报

25#
 楼主| 发表于 2019-4-4 15:27:45 | 只看该作者
提示是成功了,但是并不能启动,bootice查看也不是g4d的主引导。
回复

使用道具 举报

26#
发表于 2019-4-4 19:57:19 来自手机 | 只看该作者
请把安装成功的磁盘前64扇区截上来。
回复

使用道具 举报

27#
 楼主| 发表于 2019-4-4 20:52:17 | 只看该作者
烦劳了。
55.bin.txt (32 KB, 下载次数: 13)
回复

使用道具 举报

28#
发表于 2019-4-6 11:38:38 | 只看该作者
mbr 引导代码安装上了,就 0x66 字节。
grldr_mbr 代码应当安装在 0x4000 字节处,不知为何少了 2 扇区。我这里使用虚拟机 Ubuntu 测试:
    ./bootlace.com --gpt /dev/sdb
没有问题。

你再试一试。

bootlace.rar

37.77 KB, 下载次数: 14, 下载积分: 无忧币 -2

点评

少掉的 2 扇区,如果仅仅是少掉了,倒也没啥危险。如果是写到别的位置了,那就是个炸弹。  详情 回复 发表于 2019-4-6 13:52
回复

使用道具 举报

29#
发表于 2019-4-6 13:52:58 | 只看该作者
2011yaya2007777 发表于 2019-4-6 11:38
mbr 引导代码安装上了,就 0x66 字节。
grldr_mbr 代码应当安装在 0x4000 字节处,不知为何少了 2 扇区。 ...

少掉的 2 扇区,如果仅仅是少掉了,倒也没啥危险。如果是写到别的位置了,那就是个炸弹。
回复

使用道具 举报

30#
发表于 2019-4-6 14:13:09 来自手机 | 只看该作者
我怀疑,是楼主又格式化了。真好强行占用了2扇区分区表,一格式化就把前2扇区清零了。

点评

还有一种可能性,如果你正好写到主板或 Windows “不喜欢” 让你写的地方(比如它用 “校验和”进行检查,发现那个区域的校验和不正确),它就可能认为你写的是非法的,于是它自动重建分区表,看起来就像重新格式化  详情 回复 发表于 2019-4-6 14:56
一件事出来以后,可能性有很多。比如: 1、流氓软件造成的问题。 2、其他分区软件、格式化软件造成的问题。 3、主板 BIOS 造成的问题。 4、用户自己造成的问题。 5、bootlace 的 bug。 既然报告者放弃了,  详情 回复 发表于 2019-4-6 14:43
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-5 06:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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