taozx 发表于 2017-3-30 18:36:02

困惑!大神求解!@

1、linux+kexec -> grub4dos ->win7,无法启动(WIN7黑屏)。换WINPE可以启动,但是显示屏向上偏移5公分;
2、linux+kexec->grub4dos->winxp,看grub4dos的资料是可以的,但是到xp启动总是蓝屏(video driver failed to intialize)。

不点 发表于 2017-3-31 07:00:01

本帖最后由 不点 于 2017-3-31 08:46 编辑

grub4dos 里面,与 kexec 相关联的这部分功能,是我开发的。我早都放弃这部分功能的开发了。希望大家不要使用这个功能,就当成 “此功能从未存在过” 吧。

我说得清楚吗?希望很清楚了。

因此,使用这个功能的人,就不要问任何问题了。那么,像本主题所提出的 “为什么这样能行?而那样却不行呢?” 诸如此类的问题,就不要问了。

至于说为何不能使用这个功能了,这里面的技术和非技术原因,不是一两句话可以说明白的。如果非要用通俗的一两句话说明白,那原因就可总结为 “制造商的不兼容性策略——也可以说是技术打压” 。

我说清楚了吗?肯定没说清楚,因为一两句话怎能说清楚?

但也大致上说清楚了,是遇到打压,无法再继续开发了。

我能不能把里面的技术细节彻底讲明白?

能,但也不能。

“能”,是以前讲过。“不能” 是说现在已经远离 x86 技术了,失去兴趣了,不想再去讲这个没有实际意义的问题了。

你不讲明白,我怎么可以相信呢?

我哪能控制别人的大脑,让人家相信或不相信呢?信不信由你呀!再说了,你信不信,有什么关系呢?信不信,有什么区别呢?反正这个功能不开发了,也不可能有人再去接续开发了。还不信?打个赌!



【补充】既然不开发了,似乎应该在 readme 中声明该功能废除才对。不过,任何事情,都不是那么断然的。在很旧的电脑上,这个功能是正常的,而且在可能存在的(潜在的)个别新电脑上,这个功能也有可能是正常的。后来,由于身体的原因,我退出了开发团队。所以,我也不再负责什么了,把它扔那儿不管了,包括我没有在文档中对于该功能添加相应的说明。由于该功能在新电脑上越来越不能正常使用了,所以,该功能实际处于没人使用的状态,就算有人使用,那也是极少数、极少数。有鉴于这种情况,那就更不必要费劲在文档中去详细描述和给出 “不支持” 的声明了。

taozx 发表于 2017-3-30 18:38:22

http://reboot.pro/topic/7223-how-to-boot-directly-into-windows-from-kexecgrub4dos/

这个里面都讨论过了,为什么我怎么尝试都是失败啊!

不知 发表于 2017-3-30 18:42:04

本帖最后由 不知 于 2017-3-30 18:43 编辑

使用了map命令吗?如果用了map命令,看下这个:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=385281
——————————————————————————————————————————————————————————————————
能分享一点吗?感觉很高级,但信息量太少。我想学习一下,先谢了。

wintoflash 发表于 2017-3-30 19:10:15

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=374376

taozx 发表于 2017-3-30 19:11:56

grub4dos版本0.4.6.a
kexec -l grub.exe
kexec -e

root (hd1,1)
map --mem /PE.iso (0xff)
map --hook
chainloader (0xff)
boot

然后进入windowXP启动, 然后就蓝屏。
或者是WIN7 PE,可以启动,然后就是屏幕往上偏移5公分。

taozx 发表于 2017-3-30 19:45:41

wintoflash 发表于 2017-3-30 19:10
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=374376

这个说的硬盘的访问控制问题,但是我这都没有出现过这个现象。磁盘都是可以访问的,也不存在grub挂死。

taozx 发表于 2017-3-30 20:36:41

load segment :0x0   system type:0x0   sector count:0x4
load rba:0x19boot type:0

这些信息是什么意思?

taozx 发表于 2017-3-30 20:59:10

attach://343845.jpg

不知 发表于 2017-3-30 21:58:09

本帖最后由 不知 于 2017-3-30 21:59 编辑

taozx 发表于 2017-3-30 19:45
这个说的硬盘的访问控制问题,但是我这都没有出现过这个现象。磁盘都是可以访问的,也不存在grub挂死。

我试了一下,在qemu下执行这两个命令后挂死在内置菜单,不知道楼主是怎样实现的。
bzimage:
http://123.207.30.131/minilinux/bzimage/4_10_6/bzImage
initrd:
http://123.207.30.131/minilinux/initrd_kexec_grub.gz
在qemu中启动这个系统后用密码账号登陆系统(账号:root密码:toor),执行kexec -l grub.exe(grub.exe在root的家目录)成功,执行kexec -e后挂死在内置菜单。

taozx 发表于 2017-3-31 08:59:52

不知 发表于 2017-3-30 21:58
我试了一下,在qemu下执行这两个命令后挂死在内置菜单,不知道楼主是怎样实现的。
bzimage:
http://1 ...

我直接用PC上的CENTOS,然后安装的KEXEC TOOL,然后很容易的用kexec -l grub.exe切到grub中,然后进入command-line模式,基本上没有挂死现象。

taozx 发表于 2017-3-31 09:06:45

不点 发表于 2017-3-31 07:00
grub4dos 里面,与 kexec 相关联的这部分功能,是我开发的。我早都放弃这部分功能的开发了。希望大家不要使 ...

谢谢,不点的回复!我也是看到Read me中存在此功能,至于说用不用此功能倒不说,我也是对OS的切换很感兴趣。我想搞清楚一些问题:
1、KEXEC执行后,LINUX系统是否已经KILL掉,释放所有硬件控制权?
2、新的OS在脱离BIOS引导,能否正常接管硬件?
3、如上图,切换WINDOW OS启动后,为什么出现屏幕上移的现象?

不点 发表于 2017-3-31 12:07:50

taozx 发表于 2017-3-31 09:06
谢谢,不点的回复!我也是看到Read me中存在此功能,至于说用不用此功能倒不说,我也是对OS的切换很感兴 ...

1、KEXEC执行后,LINUX系统是否已经KILL掉,释放所有硬件控制权?

kexec 之后,Linux 环境确实退出了、不存在了,然而,Linux 对于硬件造成的更改,无法恢复到 BIOS 的状态。因此,此时加载的 grldr 就不能正常运作。前面说过,并非所有的电脑都是这样的。那些非常老的老式电脑,不存在这个问题。由于硬件已经无法恢复到 BIOS 原始状态,那么,Windows 接管控制后,也有可能出问题。


2、新的OS在脱离BIOS引导,能否正常接管硬件?

新的 EFI 启动模式下,GRLDR 根本无法运行。因此,你不可能从 kexec 正常加载 grldr。加载之后,应该是立即死掉,无法进入 grub 环境。

既然连 grub 环境都进不去,更不可能奢谈让 grldr 再去引导 OS 了。

不过,假如你能用 kexec 直接加载你的 os 自身的引导程序(即,EFI 引导过程所需要的那个引导程序),说不定也能成功。

3、如上图,切换WINDOW OS启动后,为什么出现屏幕上移的现象?

前面已经解释过了,linux 已经修改了硬件状态,而 kexec 无法把硬件状态恢复到 POST (通电自检)之后的 BIOS 状态。如果被污染了的设备状态是与显卡有关的,则显卡就会出现不正常,比如无法显示画面、画面错位、或干脆死机,情况会因机器的不同而不同。

同理,如果被污染了的设备状态是与硬盘有关的,则硬盘就会出现不正常,比如在试图访问硬盘时死机。

前面你提到,PE 启动正常,但 XP 系统却死机。这很有可能就是因为 PE 运行于内存,不需要访问硬盘;而 XP 却要去读写硬盘,因此死掉了。


不要去折腾了,也不要追究了。因为没什么用。安心地放弃这些属于 “鸡肋” 的功能吧。

taozx 发表于 2017-4-5 19:30:47

不点 发表于 2017-3-31 12:07
1、KEXEC执行后,LINUX系统是否已经KILL掉,释放所有硬件控制权?

kexec 之后,Linux 环境确实退出了 ...

谢谢,不点的回复!非常感谢!
另外,两个问题请教:
grub4dos的GUI能二次开发么,可以达到什么效果?例如:实现鼠标和一些类似QT的图像界面?

不点 发表于 2017-4-5 22:10:14

taozx 发表于 2017-4-5 19:30
谢谢,不点的回复!非常感谢!
另外,两个问题请教:
grub4dos的GUI能二次开发么,可以达到什么效果? ...

GUI 我不太懂,你可以留意一下,看看 yaya 是否想做这个工作。

不过,grub4dos 可不是个操作系统,假如你想要的是一个 API 的图形库,那恐怕难以达到你的要求了。

taozx 发表于 2017-4-6 09:55:19

不点 发表于 2017-4-5 22:10
GUI 我不太懂,你可以留意一下,看看 yaya 是否想做这个工作。

不过,grub4dos 可不是个操作系统,假 ...

其实grub4dos做些扩展,就能做成操作系统了。有没有qq群组,想跟你们学习学习!

不点 发表于 2017-4-6 10:48:27

没关心过 qq,不知道有没有 qq 群。我自己曾经有的 qq 号,长期不用失效,早都进不去了。

2011yaya2007777 发表于 2017-4-6 12:40:56

没有兴趣

taozx 发表于 2017-4-6 18:44:48

不点 发表于 2017-4-6 10:48
没关心过 qq,不知道有没有 qq 群。我自己曾经有的 qq 号,长期不用失效,早都进不去了。

好吧,那就在论坛交流吧!看来我的这个需求无法实现了。

taozx 发表于 2017-4-6 18:48:05

2011yaya2007777 发表于 2017-4-6 12:40
没有兴趣

WHY?GUI这块可否做一个中间图形驱动层,然后适配第三方GUI图形库?

不点 发表于 2017-4-6 23:27:19

taozx 发表于 2017-4-6 18:48
WHY?GUI这块可否做一个中间图形驱动层,然后适配第三方GUI图形库?

“没有兴趣”,其含义通常是:“没有时间、没有精力、不愿意做”。有可能是因为有更重要、更紧迫或更有趣味的事情要做,所以就对目前不想做的那些事情“没有兴趣”了。一般而言,我们要尊重别人的选择,尊重别人的“有兴趣”或“不感兴趣”,不能让人家去做那些“人家自己并不感兴趣”而“我们自己却很感兴趣”的事情。换句话说,不能让人家白白为我们工作,而损失了人家的时间、金钱或精力。我们不能变相地指挥人家为我们做事。人家愿意做的事情,另当别论,那是人家“有兴趣”。人家不愿意做的事情,那就不要强人所难了。不适合(有意无意地)把我们的意愿强加到别人的头上。我不知道我这个理解适合不适合别人,仅仅属于个人浅见而已,希望能够对别人也有点用。

taozx 发表于 2017-4-7 09:02:01

不点 发表于 2017-4-6 23:27
“没有兴趣”,其含义通常是:“没有时间、没有精力、不愿意做”。有可能是因为有更重要、更紧迫或更有趣 ...

嗯,理解!谢谢不点的热情回复!当然也许也有兴趣的人,我的意思是你们指导一下方向,我们自己来做。

不点 发表于 2017-4-7 12:03:05

taozx 发表于 2017-4-7 09:02
嗯,理解!谢谢不点的热情回复!当然也许也有兴趣的人,我的意思是你们指导一下方向,我们自己来做。

太好了,你有这样的想法,那是缘分。不过,说实在话,我可不敢 “指引方向”。我这电脑技术,只能是 “被指引” 的命。

我在我能力所及的范围,做了一些事情,而且是自愿的。这大概也是开源领域的一条不成文的普遍原则。“能做,并且愿意做”——这是最关键的,其它都是次要的。当然了,如果有合作者、合伙人,或有人提供帮助,那是最舒服、最理想的了。其实我啥也不懂,靠着很多合伙人,我才能有一些进步【或者也算是成绩】。不过,我在与人打交道的时候水平很低,竟然把合伙人都得罪了,这是至今仍然感到很痛的痛点,后悔也无用。

yaya 在很多年前都想让我去做某些事情,但是,我没能理解 yaya 的意图,我甚至没有给出回复,而是冷处理(说得难听点,就是“不搭理”)。如今 yaya 亲自按照自己的设想去做。现在我在技术上帮 yaya 了吗?一点也没帮,根本帮不上。

这是一个很好的实际案例,反映了开源软件实际运作中的一些基本问题。那就是,一切都是缘分,不可强求。

页: [1]
查看完整版本: 困惑!大神求解!@