无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2321|回复: 34

有关G4D/G4E启动porteus.iso测试

  [复制链接]
发表于 2023-10-11 15:04:20 | 显示全部楼层 |阅读模式
本帖最后由 2011yaya2007777 于 2023-10-12 10:11 编辑

测试porteus版本:3.2,4.0,5.0
在QEMU虚拟机测试
分别测试 Legacy BIOS,EFI-ia32,EFI-x64启动模式

一、从光盘镜像直接启动

光盘镜像                             porteus-3.2.iso    Porteus-4.0-x86_64-20170917.iso     Porteus-KDE-v5.0-x86_64.iso
启动模式Legacy BIOS                     ok                       ok                                 ok
启动模式EFI-ia32                           ok                       ok                                 err
启动模式EFI-x64                            ok                       ok                                 err

二、由G4D/G4E通过map加载光盘镜像,然后启动

光盘镜像                             porteus-3.2.iso    Porteus-4.0-x86_64-20170917.iso     Porteus-KDE-v5.0-x86_64.iso
启动模式Legacy BIOS
  通过commandloader启动             ok                       ok                                 ok
  通过kernel启动                           ok                       ok                                 ok
启动模式EFI-ia32
  通过commandloader启动             ok                       ok                                 err
  通过kernel启动                           ok                       err(返回菜单了)              ok
启动模式EFI-x64
  通过commandloade启动              ok                       ok                                 err
  通过kernel启动                           err                      ok                                 ok

菜单:
title Start porteus-3.2.iso by chainloader
find --set-root /boot/imgs/porteus-3.2.iso
map /boot/imgs/porteus-3.2.iso (cd)
map --hook
chainloader (cd-1)

title Start porteus-3.2.iso by kernel
find --set-root /boot/imgs/porteus-3.2.iso ;; uuid ()
map /boot/imgs/porteus-3.2.iso (hd32)
map --hook
kernel (hd32)/porteus/vmlinuz from=UUID:%?_UUID%/boot/imgs/porteus-3.2.iso norootcopy nomagic
initrd (hd32)/porteus/initrd.xz


注:通过commandloader启动,需将光盘镜像中的porteus目录及其文件复制到启动盘任意分区的根目录。
就其原因,是因为porteus不使用UEFI环境安装的光盘镜像,他自己从底层枚举设备。

这种情况下,是否可以删除光盘镜像内部的porteus文件夹?测试如下:

启动模式          Legacy BIOS    EFI-ia32    EFI-x64
全有                        ok            ok         ok
内部有,外部无        err           err        err
内部无,外部有        err           ok         err
结论:不能删除porteus-3.2.iso内部的porteus文件夹。

此结论有误!实际上可以删除porteus-3.2.iso内部的porteus文件夹。
导致上述的原因是由于UltraISO保存文件时,胡乱修改内部信息!


三、全解开,从U盘启动

1. 提取porteus-3.2.iso全部文件到临时目录。
2. 复制临时目录的/porteus文件夹到esp分区根目录
3. 修改临时目录/efi/boot/的文件,然后复制到esp相应文件夹。
    重命名:bootia32.efi -> porteus-ia32.efi
    删除:bootMX64.efi,bootWX64.efi,bootx64.efi
4. 如果esp分区有/boot/grub/,则将目录下的menu.lst文件移动到根目录。
5. 复制临时目录的/boot/grub/文件夹到esp相应文件夹。
   
Legacy BIOS 菜单:
title porteus-3.2.iso
find --set-root /porteus/vmlinuz
configfile /boot/grub/menu.lst
boot

EFI-ia32/EFI-x64 菜单:
title porteus-3.2.iso
find --set-root /efi/boot/grubx64.efi
if %@uefi%==64 && chainloader /efi/boot/grubx64.efi ! if %@uefi%==32  && chainloader /efi/boot/porteusia32.efi
boot

评分

参与人数 1无忧币 +5 收起 理由
有阴也有阳 + 5 很给力!

查看全部评分

发表于 2023-10-11 15:31:29 | 显示全部楼层
谢谢分享测试经验
回复

使用道具 举报

发表于 2023-10-11 16:27:13 | 显示全部楼层

          在《我的Grub4dos0.4.6a的启动U盘》中用UEFI Grub4dos 32/64成功启动了porteus-3.2.iso:

        菜单:

title 运行 Porteus 3.2 口袋 Linux 系统中文定制版
find --set-root /myudisk.txt
map /porteus.iso (cd)
map --hook
chainloader (cd-1)

        关键:

        您在帖子中说的:“要用软碟通把porteus-3.2.iso文件里面的porteus文件夹及里面的文件全部提取出来放到启

动U盘的根目录下,究其原因,是因为porteus不使用UEFI环境安装的光盘镜像,它自己从底层枚举设备。”

        谢谢!!!
回复

使用道具 举报

发表于 2023-10-11 16:30:19 | 显示全部楼层
学习了。我说咋kde 5.0我老是启动不了,原来方法不对
回复

使用道具 举报

发表于 2023-10-11 16:58:33 | 显示全部楼层

谢谢分享
回复

使用道具 举报

发表于 2023-10-11 20:28:31 | 显示全部楼层
本帖最后由 dfw9 于 2023-10-11 20:38 编辑

Porteus 3.2找到了个20170206版的。
回复

使用道具 举报

发表于 2023-10-11 21:28:51 | 显示全部楼层
我只取了EFI-x64启动模式:
将EFI-ia32/EFI-x64 菜单:
title porteus-3.2.iso
find --set-root /efi/boot/grubx64.efi
if %@uefi%==64 && chainloader /efi/boot/grubx64.efi ! if %@uefi%==32  && chainloader /efi/boot/porteusia32.efi
boot
编辑porteus.cfg中加改为:
menuentry " porteus-3.2.iso" --class konboot{
        chainloader /efi/boot/grubx64.efi
}

另在下拉菜单的"查找并启动Windows系统(EFI)"下面加上:
menuentry "启动 雷电 Win10x64PE" --class windows{
     search --set --file /boot/bootmgfw.efi
     chainloader /boot/bootmgfw.efi
}

CD.png
U盘跟目录下,小加文件就可以引导进入win10x64.wim 雷电PE了。
回复

使用道具 举报

发表于 2023-10-11 21:55:29 | 显示全部楼层
而grubx64.efi所指的iso并没有在/boot/imgs/porteus-3.2.iso下
回复

使用道具 举报

发表于 2023-10-11 23:30:48 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2023-10-12 09:37:45 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-10-12 14:33 编辑

我测试了BIOS和UEFI64环境下,测试的结果和yaya结果一样。我的体会:
1、Porteus-KDE-v5.0-x86_64.iso这个是官方版本的,感觉在UEFI启动方面,官方iso没有做好,在CDROM上面无法启动,在硬盘上启动需要自己用g4e/grub2去启动。
2、我感觉用chainloader (cd-1)这种方式启动,只能适合于经过国内魔改过initrd的linux发行版,类似的还有tinycore,slitaz,这种方式并不通用,通用的启动菜单,还是需要用kernel+initrd这样子的组合。
3、从porteus4.0开始,官方porteus的启动脚本linuxrc有了很大的改变,支持from=UUID:%?_UUID%/linux/porteus/Porteus-MATE-v5.0-x86_64.iso这样子的引导代码关键字,porteus3.2似乎不行,建议放弃porteus3.2版本,内核是4.8.7的,太旧了,驱动也少。
4、porteus3.2用grub2UEFI可以正常启动,但是用g4e就不行,可能因为内核支持的启动协议不同,grub2UEFI用的是32位的boot protocol引导协议,兼容性较好,据wintoflash说后期可能也会采用loadfile2引导协议;g4e用的handover/loadfile2引导协议面向未来,感觉g4e做到面向未来就可以了,以前的老版本就让他随风而去吧。
yaya:porteus3.2.iso 不支持 64 位 CPU,测试肯定失败。要想支持UEFI启动,只能用porteus4.0以上的版本才行。
#grub2UEFI可启动Porteus-3.2-i586-20170206.iso
menuentry "/linux/porteus/Porteus-3.2-i586-20170206.iso" "/linux/porteus/Porteus-3.2-i586-20170206.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2;probe -u ($root) -s uuid;echo $uuid
loopback loop $2
linux (loop)/porteus/vmlinuz from=UUID:$uuid$2 norootcopy nomagic
}

#g4e无法启动Porteus-3.2-i586-20170206.iso,与上面类似的菜单
title /linux/porteus/Porteus-3.2-i586-20170206.iso
find --ignore-floppies --ignore-cd --set-root /linux/porteus/Porteus-3.2-i586-20170206.iso ;; uuid () ;; echo %?_UUID%
map /linux/porteus/Porteus-3.2-i586-20170206.iso (hd32)
map --hook
kernel (hd32)/porteus/vmlinuz from=UUID:%?_UUID%/linux/porteus/Porteus-3.2-i586-20170206.iso norootcopy nomagic

点评

第1条 回复: Porteus-Kiosk-ThinClient-5.5.0-x86_64试试可以启动。  详情 回复 发表于 2023-10-14 11:39
回复

使用道具 举报

 楼主| 发表于 2023-10-12 10:21:17 | 显示全部楼层
porteus3.2用grub2UEFI可以正常启动,但是用g4e就不行,可能因为内核支持的启动协议不同,grub2UEFI用的是32位的boot protocol引导协议,兼容性较好,

赞同这个观点。g4e就是缺少kernel函数的32位引导方法。好像引导32位UEFI时,他没有使用UEFI内部函数,而是与BIOS模式使用的同一套32位函数。
g4e使用UEFI内部函数,而grub2有底层驱动程序。
回复

使用道具 举报

 楼主| 发表于 2023-10-12 10:31:17 | 显示全部楼层
上传一个去除内部porteus文件夹的porteus-3.2.iso。
今天才发现UltraISO或者WinISO,当修改文件名或者删除文件夹时,胡乱修改内部信息!尤其是BIOS/UEFI双引导,被破坏了!

porteus-3.2.rar

2.72 MB, 下载次数: 20, 下载积分: 无忧币 -2

点评

分享一下,本人有个原则:在可能的情况下,尽量使用开源的工具。比如,既然有 mkisofs,就不用 UltraISO 或 WinISO。既然有 imdisk,就不用 WinImage。既然有 Vim,就不用 UltraEdit。既然有 7zip,就不用 WinRAR。  详情 回复 发表于 2023-10-12 10:58
回复

使用道具 举报

发表于 2023-10-12 10:58:13 | 显示全部楼层
2011yaya2007777 发表于 2023-10-12 10:31
上传一个去除内部porteus文件夹的porteus-3.2.iso。
今天才发现UltraISO或者WinISO,当修改文件名或者删除 ...

分享一下,本人有个原则:在可能的情况下,尽量使用开源的工具。比如,既然有 mkisofs,就不用 UltraISO 或 WinISO。既然有 imdisk,就不用 WinImage。既然有 Vim,就不用 UltraEdit。既然有 7zip,就不用 WinRAR。
回复

使用道具 举报

发表于 2023-10-12 11:19:46 | 显示全部楼层
测试了下,发现我下载的 Porteus-4.0-x86_64-20170917.iso 居然没有porteus/initrd.xz

点评

从Porteus-3.2-UD-i586-20170206里提取initrd.xz大小328MB,加入4.0iso里porteus目录下试试。  详情 回复 发表于 2023-10-12 13:09
wintoflash魔改的porteus,不需要initrd (hd32)/porteus/initrd.xz语句,但我发现有了它也可以正常启动,但是官方的需要这样子的语句,所以我还是习惯,顺便放上去了。  详情 回复 发表于 2023-10-12 11:51
回复

使用道具 举报

发表于 2023-10-12 11:51:15 | 显示全部楼层
假大空 发表于 2023-10-12 11:19
测试了下,发现我下载的 Porteus-4.0-x86_64-20170917.iso 居然没有porteus/initrd.xz

wintoflash魔改的porteus,不需要initrd (hd32)/porteus/initrd.xz语句,但我发现有了它也可以正常启动,但是官方的需要这样子的语句,所以我还是习惯,顺便放上去了。

点评

没有那就不应该添加。initrd 集成在内核里面了。你再加上一个不知道从哪里找到的 initrd 就乱套了。  详情 回复 发表于 2023-10-12 14:08
回复

使用道具 举报

 楼主| 发表于 2023-10-12 12:45:04 来自手机 | 显示全部楼层
我知道mkisofs可以生成ISO引导光盘镜像。但不知道如何用他解包。解包后能包含引导文件吗?UltraISO只能提取BIOS引导,不能提取UEFI引导。

点评

7z也可以解包iso文件。 BIOS引导是基于扇区的,UEFI文件引导不是基于文件的吗,就是/EFI/BOOT/BOOTX64.EFI啊,不存在提取UEFI引导之说吧。  详情 回复 发表于 2023-10-12 13:46
回复

使用道具 举报

发表于 2023-10-12 13:09:17 | 显示全部楼层
本帖最后由 dfw9 于 2023-10-12 13:57 编辑
假大空 发表于 2023-10-12 11:19
测试了下,发现我下载的 Porteus-4.0-x86_64-20170917.iso 居然没有porteus/initrd.xz

从Porteus-3.2-UD-i586-20170206里提取initrd.xz大小328MB,加入4.0iso里porteus目录下试试。
已成功,进入。
por4.png

点评

OK.空了我试下。目前在hp下面测试不解包g4e无法启动4.0和5.0的镜像。  详情 回复 发表于 2023-10-12 19:55
回复

使用道具 举报

发表于 2023-10-12 13:46:12 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-10-12 14:07 编辑
2011yaya2007777 发表于 2023-10-12 12:45
我知道mkisofs可以生成ISO引导光盘镜像。但不知道如何用他解包。解包后能包含引导文件吗?UltraISO只能提取 ...

7z也可以解包iso文件。

BIOS引导是基于扇区的,UEFI文件引导不是基于文件的吗,就是/EFI/BOOT/BOOTX64.EFI啊,有这个文件就可以UEFI引导,不需要管扇区里面的引导数据是什么,不存在提取UEFI引导之说吧。

QQ截图20231012134604.png

点评

但要知道/EFI/BOOT/BOOTX64.EFI其指向的可引导iso的路劲,即/boot/imgs/porteus-3.2.iso下真实存在。  详情 回复 发表于 2023-10-12 13:55
回复

使用道具 举报

发表于 2023-10-12 13:55:44 | 显示全部楼层
本帖最后由 dfw9 于 2023-10-12 13:59 编辑
liuzhaoyzz 发表于 2023-10-12 13:46
7z也可以解包iso文件。

BIOS引导是基于扇区的,UEFI文件引导不是基于文件的吗,就是/EFI/BOOT/BOOTX64 ...

但要知道/EFI/BOOT/BOOTX64.EFI其指向的可引导iso的路劲,即是否是yy大侠示意的/boot/imgs/porteus-3.2.iso。

点评

对于ISO镜像本身来说,不存在可启动iso路径之说。 UEFI加载/EFI/BOOT/BOOTX64.EFI之后,这个是isolinux.efi的引导文件→加载iso\EFI\boot\syslinux.cfg菜单→加载/boot/syslinux/porteus.cfg菜单,这个菜单里面文  详情 回复 发表于 2023-10-12 14:05
回复

使用道具 举报

发表于 2023-10-12 14:05:32 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-10-12 14:14 编辑
dfw9 发表于 2023-10-12 13:55
但要知道/EFI/BOOT/BOOTX64.EFI其指向的可引导iso的路劲,即是否是yy大侠示意的/boot/imgs/porteus-3.2.i ...

对于ISO镜像本身来说,不存在可启动iso路径之说。

UEFI加载/EFI/BOOT/BOOTX64.EFI,这个是isolinux.efi的引导文件→加载iso\EFI\boot\syslinux.cfg菜单→加载/boot/syslinux/porteus.cfg菜单,这个菜单里面文件是直接被系统挂载起来后直接访问的,哪里有可启动路径之说?

PROMPT 0
TIMEOUT 90
UI vesamenu.c32
DEFAULT GRAPHICAL
MENU BACKGROUND ../../boot/syslinux/porteus.png
MENU TITLE Porteus-5.01 64bit

LABEL GRAPHICAL
MENU LABEL Graphics mode
KERNEL /boot/syslinux/vmlinuz
INITRD /boot/syslinux/initrd.xz
APPEND changes=/porteus
我感觉porteus5.0,5.01里面,isolinux.efi引导兼容性不行啊,不如grub2x64.efi.


点评

您在10楼写到: #grub2UEFI可启动Porteus-3.2-i586-20170206.iso menuentry "/linux/porteus/Porteus-3.2-i586-20170206.iso" "/linux/porteus/Porteus-3.2-i586-20170206.iso" { set gfxpayload=keep 所以直  详情 回复 发表于 2023-10-12 19:23
回复

使用道具 举报

发表于 2023-10-12 14:05:56 | 显示全部楼层
很给力,感谢分享!
回复

使用道具 举报

发表于 2023-10-12 14:08:33 | 显示全部楼层
liuzhaoyzz 发表于 2023-10-12 11:51
wintoflash魔改的porteus,不需要initrd (hd32)/porteus/initrd.xz语句,但我发现有了它也可以正常启动, ...

没有那就不应该添加。initrd 集成在内核里面了。你再加上一个不知道从哪里找到的 initrd 就乱套了。

点评

我当时写了个批处理用于搞定porteus启动,为了通用,没有细分porteus3.2,4.0,5.0,iso里面/porteus/initrd.xz不存在,我发现有这一句不影响你制作的3.2、4.0启动。 但是没有他,官方porteus5.0就启动不了,所以就  详情 回复 发表于 2023-10-12 14:12
回复

使用道具 举报

发表于 2023-10-12 14:12:33 | 显示全部楼层
wintoflash 发表于 2023-10-12 14:08
没有那就不应该添加。initrd 集成在内核里面了。你再加上一个不知道从哪里找到的 initrd 就乱套了。

我当时写了个批处理用于搞定porteus启动,为了通用,没有细分porteus3.2,4.0,5.0,iso里面/porteus/initrd.xz不存在,我发现有这一句不影响你制作的3.2、4.0启动。
但是没有他,官方porteus5.0就启动不了,所以就一直放着了,这纯粹是偷懒的做法。

点评

只能说是你 "没发现" 影响。这个是不能胡乱混用的。  详情 回复 发表于 2023-10-12 14:16
回复

使用道具 举报

发表于 2023-10-12 14:16:16 | 显示全部楼层
本帖最后由 wintoflash 于 2023-10-12 14:19 编辑
liuzhaoyzz 发表于 2023-10-12 14:12
我当时写了个批处理用于搞定porteus启动,为了通用,没有细分porteus3.2,4.0,5.0,iso里面/porteus/ini ...
我发现有这一句不影响你制作的3.2、4.0启动。

只能说是你 "没发现" 影响。这个是不能胡乱混用的。你也别传播错误方法。

点评

严谨啊!前面的菜单改过了。  详情 回复 发表于 2023-10-12 14:34
回复

使用道具 举报

发表于 2023-10-12 14:34:00 | 显示全部楼层
wintoflash 发表于 2023-10-12 14:16
只能说是你 "没发现" 影响。这个是不能胡乱混用的。你也别传播错误方法。

严谨啊!前面的菜单改过了。
回复

使用道具 举报

 楼主| 发表于 2023-10-12 14:57:14 | 显示全部楼层
UEFI文件引导不是基于文件的吗

linux的这个文件,不是G4E的。我一般是通过winhex把2进制复制为xxx.img。
回复

使用道具 举报

发表于 2023-10-12 19:23:47 | 显示全部楼层
liuzhaoyzz 发表于 2023-10-12 14:05
对于ISO镜像本身来说,不存在可启动iso路径之说。

UEFI加载/EFI/BOOT/BOOTX64.EFI,这个是isolinux.ef ...

您在10楼写到:
#grub2UEFI可启动Porteus-3.2-i586-20170206.iso
menuentry "/linux/porteus/Porteus-3.2-i586-20170206.iso" "/linux/porteus/Porteus-3.2-i586-20170206.iso" {
set gfxpayload=keep

所以直接理解为启动iso了。
回复

使用道具 举报

发表于 2023-10-12 19:51:05 | 显示全部楼层
光盘分区:
屏幕截图 2023-10-12 194758.png
回复

使用道具 举报

发表于 2023-10-12 19:55:36 | 显示全部楼层
dfw9 发表于 2023-10-12 13:09
从Porteus-3.2-UD-i586-20170206里提取initrd.xz大小328MB,加入4.0iso里porteus目录下试试。
已成功, ...

OK.空了我试下。目前在hp下面测试不解包g4e无法启动4.0和5.0的镜像。
回复

使用道具 举报

发表于 2023-10-14 11:39:51 | 显示全部楼层
liuzhaoyzz 发表于 2023-10-12 09:37
我测试了BIOS和UEFI64环境下,测试的结果和yaya结果一样。我的体会:
1、Porteus-KDE-v5.0-x86_64.iso这个 ...

第1条 回复:
Porteus-Kiosk-ThinClient-5.5.0-x86_64.ios 试试可以启动。

点评

只看到5.0.1最后版本。未见5.5.0  详情 回复 发表于 2023-10-14 15:29
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-2-23 14:45

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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