无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: wintoflash
打印 上一主题 下一主题

[讨论] 使用高版本 GCC 编译 GRUB4DOS

    [复制链接]
1#
发表于 2023-3-31 13:54:19 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-3-31 14:08 编辑

支持wintoflash工作!虚拟机测试启动PE如下:
grub4dos-0.4.6a-2023-02-23-gcc-7.5,√
grub4dos-0.4.6a-2023-02-23-gcc-8.4,√
grub4dos-0.4.6a-2023-02-23-gcc-9.5,√
grub4dos-0.4.6a-2023-02-23-gcc-10.4,√
grub4dos-0.4.6a-2023-02-23-gcc-11.3,×无法启动PE。

之前grub4dos许多年都是在ubuntu14.04环境下gcc4.8这种上古编译环境下编译的,现在是不是可以与时俱进用新的ubuntu环境下编译了,这样的话g4d/g4e/grub2都可以在同一个ubuntu环境下编译了。太棒了!厉害!

看了下ubuntu20.10 64位版本,gcc -v gcc版本:10.2的。


title WINPE (WePE64_V2.2.iso)
calc *0x8278 > nul ;; set g4dver=%@retval%
if %@UEFI%==64  && echo g4e%g4dver% ! echo g4d%g4dver%
find --ignore-floppies --ignore-cd --set-root /boot/imgs/WePE64_V2.2.iso
map --mem --top /boot/imgs/WePE64_V2.2.iso (0xff)
map --e820cycles=-1
map --hook
chainloader (0xff)
#pause

linux-2023-03-31-13-53-35.png (4.29 KB, 下载次数: 138)

linux-2023-03-31-13-53-35.png

点评

https://github.com/chenall/grub4dos/pull/395 你打上这里面的补丁之后,是可以直接在 Ubuntu 22.04 上编译的。 不过 G4E 的要稍微改下,而且编译出来的有点问题。  详情 回复 发表于 2023-4-1 09:31
回复

使用道具 举报

2#
发表于 2023-5-20 14:23:18 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-5-21 04:56 编辑
2011yaya2007777 发表于 2023-5-20 11:17
在 ubuntu-20.4、gcc-7.5 环境下编译的  GRUB4DOS for UEFI。
请测试。

这个版本跟之前2023-05-07版本测试结果相同。绝大多数linux发行版,PE都可以启动。证明ubuntu20.4环境下编译很成功啊!
仍然有以下两个发现不能启动,在github.com国外网友反馈的一样。https://download.acronis.com/AcronisTrueImage2021.iso
title /linux1/AcronisTrueImage/AcronisTrueImage2021_39287.iso
debug 3
find --ignore-floppies --ignore-cd --set-root /linux1/AcronisTrueImage/AcronisTrueImage2021_39287.iso
map --mem --top /linux1/AcronisTrueImage/AcronisTrueImage2021_39287.iso (0xff)
#map --hook
#map --e820cycles=-1
chainloader (0xff)
pause





Debian 所有版本下载地址
http://cdimage.debian.org/cdimage/archive/

Debian 7 iso 系统下载地址
http://cdimage.debian.org/cdimag ... 1.0-amd64-DVD-1.iso

这个debian7,wintoflash说是EFI支持不全,可是grub2UEFI可以启动,Failed to load virtual disk image.80000000000003,好像不单单是UEFI问题啊?请yaya确认下。
title /linux1/debian/debian-7.11.0-amd64-DVD-1.iso
debug 3
find --ignore-floppies --ignore-cd --set-root /linux1/debian/debian-7.11.0-amd64-DVD-1.iso
map /linux1/debian/debian-7.11.0-amd64-DVD-1.iso (hd32)
map --hook
kernel (hd32)/install.amd/gtk/vmlinuz boot=install.amd findiso=/linux1/debian/debian-7.11.0-amd64-DVD-1.iso components locales=zh_CN.UTF-8 locale=zh_CN.UTF-8 timezone=Asia/Shanghai localtime=Asia/Shanghai
initrd (hd32)/install.amd/gtk/initrd.gz




以上两个linux衍生版,用grub2_UEFI启动都没有问题。



Ubuntu64-2023-05-20-14-22-46.png (3.87 KB, 下载次数: 132)

Ubuntu64-2023-05-20-14-22-46.png

点评

Debian 7 是 10 年前的老古董了。那个时候 Linux 内核对 UEFI 的支持很差。 说明不了任何问题。linux 内核就算本身不支持 UEFI,也能被 GRUB2 启动。它根本就不鸟 UEFI 这一套。  详情 回复 发表于 2023-5-20 17:17
回复

使用道具 举报

3#
发表于 2023-5-20 17:29:25 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-5-20 17:33 编辑
2011yaya2007777 发表于 2023-5-20 14:44
@liuzhaoyzz  AcronisTrueImage2021_39287.iso看截图似乎没有问题,不知怎么boot出了问题。  debian-7.11.0 ...

你们的那段讨论,我没看懂。现在你发的这个版本,全部是loadfile2?还有没有handover协议?我看github上面讨论还有个参数--handover和--loadfile2什么的参数?现在还有没有呢?我找不到那个帖子了。那个破github.com,很难登录上去,FQ也麻烦。

wintoflash说的32位的boot protocol协议,实现起来太麻烦。g4e还是不用考虑了,性价比不高,就算了,这个取舍是对的,支持。搞好handover/loadfile2,支持比较近的发行版,就行了。






回复

使用道具 举报

4#
发表于 2023-5-20 17:39:20 | 显示全部楼层
wintoflash 发表于 2023-5-20 17:17
Debian 7 是 10 年前的老古董了。那个时候 Linux 内核对 UEFI 的支持很差。

说明不了任何问题。linu ...
linux 内核就算本身不支持 UEFI,也能被 GRUB2 启动。它根本就不鸟 UEFI 这一套。这一点我说过很多次了。


我也发现是这样子哦。

你说了很多次?我真心没注意到。
回复

使用道具 举报

5#
发表于 2023-5-25 19:23:12 | 显示全部楼层
2011yaya2007777 发表于 2023-5-25 15:36
在 ubuntu-22.04、gcc-11.3 环境下编译的  GRUB4DOS。
请测试。

我测试了手头的PE和linux,没有发现问题。

挺好的。
回复

使用道具 举报

6#
发表于 2023-5-27 20:16:58 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-5-27 21:52 编辑
2011yaya2007777 发表于 2023-5-25 15:36
在 ubuntu-22.04、gcc-11.3 环境下编译的  GRUB4DOS。
请测试。

BOOTX64_gcc7.5-2023-05-20版本,无法启动pentoo
pentoo下载地址:https://www.pentoo.ch/isos/
pentoo,用idm或者motrix可以全速下载,我记不清我的idm在哪里下载的了,大概是这个:IDM破解版下载-IDM(优秀下载工具)v6.40.1 完美破解版-ucbug软件站https://www.ucbug.com/soft/26392.html
https://www.pentoo.ch/isos/


#grub4dos_BIOS可以启动,grub4dos_UEFI无法启动
title /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso
find --ignore-floppies --ignore-cd --set-root /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso
map /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso (hd32)
map --hook
kernel (hd32)/boot/pentoo isoboot=/linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso init=/linuxrc nox nodhcp secureconsole overlayfs max_loop=256 dokeymap video=uvesafb:mtrr:3,ywrap,1024x768-16 console=tty0 net.ifnames=0 scsi_mod.use_blk_mq=1 ipv6.autoconf=0 usbcore.usbfs_memory_mb=0 looptype=squashfs loop=/image.squashfs cdroot verify
initrd (hd32)/boot/pentoo.igz


#grub2_BIOS及grub2_UEFI均可启动
menuentry "/linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso" "/linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2
loopback loop $2
linux (loop)/boot/pentoo isoboot=/linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso init=/linuxrc nox nodhcp secureconsole overlayfs max_loop=256 dokeymap video=uvesafb:mtrr:3,ywrap,1024x768-16 console=tty0 net.ifnames=0 scsi_mod.use_blk_mq=1 ipv6.autoconf=0 usbcore.usbfs_memory_mb=0 looptype=squashfs loop=/image.squashfs cdroot verify
initrd (loop)/boot/pentoo.igz
}


第一次进系统,用户名pentoo,密码自己输入。
uname -a,linux kernel 6.3.3,这应该是非常新的linux内核了。


对于g4e启动linux,我的意思是:
1、是否内核过旧,太老的内核没必要支持了,随它去吧。g4e只要支持比较新的内核即可。
2、是否是linux启动参数有问题,并非是g4e本身的问题,如果是linux发行版启动参数的问题,有请大家帮忙指导。
3、如果以上两条都不是,再看下是否是g4e本身的问题。










回复

使用道具 举报

7#
发表于 2023-5-27 21:10:49 | 显示全部楼层
2011yaya2007777 发表于 2023-5-27 20:32
debug=3,看看反馈信息。

附图1就是debug 3的截图呀?
回复

使用道具 举报

8#
发表于 2023-5-27 21:51:11 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-5-27 21:56 编辑
2011yaya2007777 发表于 2023-5-27 21:21
信号不好,刚才没有图。看反馈信息,没有问题。可能是linux参数错误。要不试一试强制loader2协议启动。

title /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso
debug 3
find --ignore-floppies --ignore-cd --set-root /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso
map /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso (hd32)
map --hook
kernel --loadfile2 (hd32)/boot/pentoo isoboot=/linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso init=/linuxrc nox nodhcp secureconsole overlayfs max_loop=256 dokeymap video=uvesafb:mtrr:3,ywrap,1024x768-16 console=tty0 net.ifnames=0 scsi_mod.use_blk_mq=1 ipv6.autoconf=0 usbcore.usbfs_memory_mb=0 looptype=squashfs loop=/image.squashfs cdroot verify
initrd (hd32)/boot/pentoo.igz
pause

加了--loadfile2参数也不行啊。
想请问下,上面的截图里面,loop=\image.squashfs,好像是不太对啊?不应该是loop=/image.squashfs的吗?左斜杠才对吧?
我的菜单里面都是左斜杠,怎么截图里面出来的是右斜杠啊?有无影响呢?


loadfile2协议2.png (13.85 KB, 下载次数: 135)

loadfile2协议2.png
回复

使用道具 举报

9#
发表于 2023-6-1 05:31:55 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-6-1 06:45 编辑
wintoflash 发表于 2023-5-31 22:05
你是不是没装对应版本的 gcc-multilib
比如用的是 gcc-10,那就要装 gcc-10-multilib
我是用 update-al ...


在一个系统里安装多个gcc版本?之前看过这种骚操作,感觉依赖冲突问题很不好处理啊?高版本的ubuntu,低版本的gcc有的依赖根本就安装不上啊?
回复

使用道具 举报

10#
发表于 2023-6-1 12:37:04 来自手机 | 显示全部楼层
包名字可以模糊搜索
apt search package_name
或者
apt search package_name|grep "package_name"
回复

使用道具 举报

11#
发表于 2023-6-4 21:50:47 来自手机 | 显示全部楼层
wintoflash 发表于 2023-6-4 18:10
grub4dos那边用的是chenall的编译脚本,写死了gcc版本。我给chenall提了issue,还没回复。
https://gith ...

破github又卡又墙,chenall没有看到这个issue吧。按说是有邮件提醒的呀?chenall没有注意到吧。
回复

使用道具 举报

12#
发表于 2023-6-4 22:18:25 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2023-6-4 18:30
这个补丁我一起推上去。不知道还有没有其他问题,到时再请教你。

你们几个高手还是加个微信好了,github沟通感觉不太畅快啊。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-15 03:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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