无忧启动论坛

标题: 有关G4D/G4E启动porteus.iso测试 [打印本页]

作者: 2011yaya2007777    时间: 2023-10-11 15:04
标题: 有关G4D/G4E启动porteus.iso测试
本帖最后由 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


作者: tanglf    时间: 2023-10-11 15:31
谢谢分享测试经验
作者: 有阴也有阳    时间: 2023-10-11 16:27

          在《我的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
学习了。我说咋kde 5.0我老是启动不了,原来方法不对

作者: yc2428    时间: 2023-10-11 16:58

谢谢分享
作者: dfw9    时间: 2023-10-11 20:28
本帖最后由 dfw9 于 2023-10-11 20:38 编辑

Porteus 3.2找到了个20170206版的。
作者: dfw9    时间: 2023-10-11 21:28
我只取了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
}


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

作者: dfw9    时间: 2023-10-11 21:55
而grubx64.efi所指的iso并没有在/boot/imgs/porteus-3.2.iso下
作者: nathan6498    时间: 2023-10-11 23:30
谢谢分享
作者: liuzhaoyzz    时间: 2023-10-12 09:37
本帖最后由 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


作者: 2011yaya2007777    时间: 2023-10-12 10:21
porteus3.2用grub2UEFI可以正常启动,但是用g4e就不行,可能因为内核支持的启动协议不同,grub2UEFI用的是32位的boot protocol引导协议,兼容性较好,

赞同这个观点。g4e就是缺少kernel函数的32位引导方法。好像引导32位UEFI时,他没有使用UEFI内部函数,而是与BIOS模式使用的同一套32位函数。
g4e使用UEFI内部函数,而grub2有底层驱动程序。
作者: 2011yaya2007777    时间: 2023-10-12 10:31
上传一个去除内部porteus文件夹的porteus-3.2.iso。
今天才发现UltraISO或者WinISO,当修改文件名或者删除文件夹时,胡乱修改内部信息!尤其是BIOS/UEFI双引导,被破坏了!

porteus-3.2.rar

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


作者: 不点    时间: 2023-10-12 10:58
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
测试了下,发现我下载的 Porteus-4.0-x86_64-20170917.iso 居然没有porteus/initrd.xz
作者: liuzhaoyzz    时间: 2023-10-12 11:51
假大空 发表于 2023-10-12 11:19
测试了下,发现我下载的 Porteus-4.0-x86_64-20170917.iso 居然没有porteus/initrd.xz

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

作者: 2011yaya2007777    时间: 2023-10-12 12:45
我知道mkisofs可以生成ISO引导光盘镜像。但不知道如何用他解包。解包后能包含引导文件吗?UltraISO只能提取BIOS引导,不能提取UEFI引导。
作者: dfw9    时间: 2023-10-12 13:09
本帖最后由 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目录下试试。
已成功,进入。


作者: liuzhaoyzz    时间: 2023-10-12 13:46
本帖最后由 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 (22.87 KB, 下载次数: 307)

QQ截图20231012134604.png

作者: dfw9    时间: 2023-10-12 13:55
本帖最后由 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。
作者: liuzhaoyzz    时间: 2023-10-12 14:05
本帖最后由 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.



作者: liaonf    时间: 2023-10-12 14:05
很给力,感谢分享!
作者: wintoflash    时间: 2023-10-12 14:08
liuzhaoyzz 发表于 2023-10-12 11:51
wintoflash魔改的porteus,不需要initrd (hd32)/porteus/initrd.xz语句,但我发现有了它也可以正常启动, ...

没有那就不应该添加。initrd 集成在内核里面了。你再加上一个不知道从哪里找到的 initrd 就乱套了。
作者: liuzhaoyzz    时间: 2023-10-12 14:12
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就启动不了,所以就一直放着了,这纯粹是偷懒的做法。

作者: wintoflash    时间: 2023-10-12 14: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启动。

只能说是你 "没发现" 影响。这个是不能胡乱混用的。你也别传播错误方法。
作者: liuzhaoyzz    时间: 2023-10-12 14:34
wintoflash 发表于 2023-10-12 14:16
只能说是你 "没发现" 影响。这个是不能胡乱混用的。你也别传播错误方法。

严谨啊!前面的菜单改过了。
作者: 2011yaya2007777    时间: 2023-10-12 14:57
UEFI文件引导不是基于文件的吗

linux的这个文件,不是G4E的。我一般是通过winhex把2进制复制为xxx.img。
作者: dfw9    时间: 2023-10-12 19:23
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了。
作者: 2011whp    时间: 2023-10-12 19:51
光盘分区:


作者: 假大空    时间: 2023-10-12 19:55
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的镜像。
作者: dfw9    时间: 2023-10-14 11:39
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 试试可以启动。
作者: 假大空    时间: 2023-10-14 15:29
dfw9 发表于 2023-10-14 11:39
第1条 回复:
Porteus-Kiosk-ThinClient-5.5.0-x86_64.ios 试试可以启动。

只看到5.0.1最后版本。未见5.5.0
作者: dfw9    时间: 2023-10-16 16:48
假大空 发表于 2023-10-14 15:29
只看到5.0.1最后版本。未见5.5.0

https://porteus-kiosk.org/download.html
作者: 假大空    时间: 2023-10-17 08:11
dfw9 发表于 2023-10-16 16:48
https://porteus-kiosk.org/download.html

收到,多谢!
作者: nowayer    时间: 2023-11-15 17:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: 无犹启动    时间: 2024-2-23 09:30
谢谢分享
作者: tanchenglong    时间: 2024-2-28 16:34
看帖必回帖,摸摸楼主的头
作者: yanyue    时间: 2024-6-6 10:55
2011yaya2007777 发表于 2023-10-12 10:31
上传一个去除内部porteus文件夹的porteus-3.2.iso。
今天才发现UltraISO或者WinISO,当修改文件名或者删除 ...

点个赞
作者: yanhongshan    时间: 2024-8-3 00:19
下载来学习,提升liunx技术。
作者: qhb    时间: 2024-11-4 23:07
赞赞
作者: wn168cn@163.com    时间: 2024-11-4 23:22
感谢分享




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3