7Ji / ampart

A partition tool for Amlogic's proprietary emmc partition format
GNU General Public License v3.0
64 stars 26 forks source link

可否为晶晨盒子发展一个类似于Ventoy的可以启动多个img系统的启动盘 #7

Closed xiayang0521 closed 1 year ago

xiayang0521 commented 1 year ago

不知道应不应该在这里写issue,哈哈。 简单来说,Ventoy是一个制作可启动U盘的开源工具。 有了Ventoy你就无需反复地格式化U盘,你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了,无需其他操作。你可以一次性拷贝很多个不同类型的镜像文件,Ventoy 会在启动时显示一个菜单来供你进行选择 (https://www.ventoy.net/) 如果为晶晨盒子发展一个类似于Ventoy的可以启动多个img系统的启动盘,那就可以测试很多系统了,也不用反复烧录。

edouardlicn123 commented 1 year ago

真巧,我这几天在用这个,这思路是真的好。但问题是grub不支持遥控吧,所以实际上只能插键盘用,在盒子上实用性大降。

xiayang0521 @.***> 于 2023年1月12日周四 下午3:51写道:

不知道应不应该在这里写issue,哈哈。 简单来说,Ventoy是一个制作可启动U盘的开源工具。 有了Ventoy你就无需反复地格式化U盘,你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了,无需其他操作。你可以一次性拷贝很多个不同类型的镜像文件,Ventoy 会在启动时显示一个菜单来供你进行选择 (https://www.ventoy.net/) 如果为晶晨盒子发展一个类似于Ventoy的可以启动多个img系统的启动盘,那就可以测试很多系统了,也不用反复烧录。

— Reply to this email directly, view it on GitHub https://github.com/7Ji/ampart/issues/7, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXTNDN7YYTNIY4SS46GHTXDWR6ZZZANCNFSM6AAAAAATY5ZWIM . You are receiving this because you are subscribed to this thread.Message ID: @.***>

7Ji commented 1 year ago

Ventoy 我 20年刚发布开始就在用了,它的主要目的在于启动没有持久性存储的live环境,尽管可以通过插件支持持久化存储,但Ventoy+持久化的用途有悖于它的初衷而且很不安全。而且每个被Ventoy启动的镜像本身应该包含自己的bootloader,这在Aml平台是不成立的(链式加载不算bootloader,被加载的u-boot只相当于裸机程序payload)。

各种ARM平台下,你需要启动的目标系统和他们的镜像多数时候不是Live,这整个系统的镜像内包含的是一个完整的有自己持久化存储的系统和它的分区,它必须在块设备上部署和展开。这和Ventoy的用途和思路有悖。

如果你想多系统,不要舍近求远,Aml的盒子本身是可以的。不管是原厂u-boot作为BL33时通过设置 bootcmd来实现多设备启动逻辑,还是主线u-boot作为BL33时本身便支持syslinux配置文件读取(因此绝对支持多系统)和efiload加载grub或者systemd-boot或者Linux内核本身这样的efi stub。不需要额外写项目,你只要自己写配置就好。

自己给一个盘分多个分区,然后文件对应放进去,启动文件每个系统自己一个文件夹就好,写好syslinux的配置,或者放grub/systemd-boot作为efi payload再写好配置,多系统就可以了。利用ampart,这个多个分区也可以是刷机包里的,从而线刷多系统也没有问题。EE在4.6后可以自由组合外置ROM盘所以线刷包里它甚至和CE一样只要很小的数据分区就行了。

而且真的就是想外置测试多个系统的话,多搞点卡就是了…我去年趁促销整了一盒子的tf卡

回过头来补充说,Ventoy的方案用来启动给Aml平台准备的这些外置系统镜像是不现实的, 这些系统都期望镜像被写到完整的驱动器上,并且第一次启动后大多都会期望重分区以利用整个盘,这个逻辑在用户空间很靠后的位置不能简单劫持。基本要对每个系统做适配,麻烦。我自己没有那么多时间整这个,而且我自己要么多张卡,要么单卡自己分区调整逻辑混合多系统了,没太大动力。

补充阅读,我博客上的两篇博文 自己分区并部署CE/EE,融会贯通,思路可以用在任何系统上。注意ophub的Armbian只提供img所以提取东西会绕一点(win下;Linux下也就一个回环的事),我的archlinuxarm提供根文件系统归档可以直接释放,再别的系统自己看着提取。 https://7ji.github.io/elec/2022/07/08/elec_tarboll_to_image.html Aml平台的启动流程,重点看里面的syslinux和efistub部分 https://7ji.github.io/embedded/2022/11/11/amlogic-booting.html

7Ji commented 1 year ago

cap

这两天写了个安卓下的切换器,等和HK1 Rbox X4用的原厂安卓+官方CE20+官方EE4.6的三系统线刷包一起发布,同时也会发布制作这种线刷包的步骤。等你们看过步骤以后也可以类推往线刷包集中更多的其他系统(我个人不十分喜欢把需要7*24小时在线的服务器类系统和安卓之类的日常用系统混在一起,所以不会直接发加Armbian或者Arch的)

比起单独搞一个预启动环境,直接让安卓承担切换的责任风险是必较小的。

这个名字目前叫HybridELEC Rebooter,但是之后发布多半会改名,和目前我的外置驱动器用的HybridELEC没有太大关系。

edouardlicn123 commented 1 year ago

如果可以以img形式加载系统就好了……

7Ji @.***> 于 2023年1月20日周五 下午4:31写道:

[image: cap] https://user-images.githubusercontent.com/24390674/213649777-faceefc1-979a-4099-be29-5b6a58f91f5d.png

这两天写了个安卓下的切换器,等和HK1 Rbox X4用的原厂安卓+官方CE20+官方EE4.6的三系统线刷包一起发布,同时也会发布制作这种线刷包的步骤。等你们看过步骤以后也可以类推往线刷包集中更多的其他系统(我个人不十分喜欢把需要7*24小时在线的服务器类系统和安卓之类的日常用系统混在一起,所以不会直接发加Armbian或者Arch的)

比起单独搞一个预启动环境,直接让安卓承担切换的责任风险是必较小的。

这个名字目前叫HybridELEC Rebooter,但是之后发布多半会改名,和目前我的外置驱动器用的HybridELEC没有太大关系。

— Reply to this email directly, view it on GitHub https://github.com/7Ji/ampart/issues/7#issuecomment-1398063482, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXTNDN6KGE663SSEW7JCTETWTJEMPANCNFSM6AAAAAATY5ZWIM . You are receiving this because you commented.Message ID: @.***>

7Ji commented 1 year ago

https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8272583 HK1 Rbox X4用的安卓+CE+EE三系统线刷包和切换器,正好配合我给EE写的eemount可以随意组合外置rom,内置安卓的空间只少了10G给其他系统。对于不能用主线内核的x4来说是圆满了。

其他设备上,直接把.img之类的镜像当系统用,我有点想法,不过过年这几天不打算折腾。

edouardlicn123 commented 1 year ago

感谢你对我这个无理想法的回复。

7Ji @.***> 于 2023年1月21日周六 上午11:43写道:

https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8272583 HK1 Rbox X4用的安卓+CE+EE三系统线刷包和切换器,正好配合我给EE写的eemount可以随意组合外置rom,内置安卓的空间只少了10G给其他系统。对于不能用主线内核的x4来说是圆满了。

其他设备上,直接把.img之类的镜像当系统用,我有点想法,不过过年这几天不打算折腾。

— Reply to this email directly, view it on GitHub https://github.com/7Ji/ampart/issues/7#issuecomment-1399167771, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXTNDN5KZRN6LMABICT3TRDWTNLN7ANCNFSM6AAAAAATY5ZWIM . You are receiving this because you commented.Message ID: @.***>