关于VisionFive 2上系统镜像文件烧录的改进实验

实践是验证真理的唯一标准,本文谢绝嘴炮观看、评论,本文谢绝论坛账号jiangtao9999观看、评论!本文谢绝论坛账号jiangtao9999观看、评论!!本文谢绝论坛账号jiangtao9999观看、评论!!!

在很多系统安装手册上,关于烧录镜像都是建议: 从网站下载镜像压缩包、把压缩包解压成img镜像文件、用dd或其他烧录软件烧录到TF卡,这3个步骤。
前些时候,我看到irradium系统安装手册里,写了个可以提高构建系统盘效率的方法,irradium系统镜像是用zst压缩的,下载完直接zstdcat解压到TF卡上,把传统方式中第2、3步合并在一起,节省了烧录TF卡的时间。这个方法有2个优点,1、节省保存镜像文件的容量空间,例如openkylin 2.0 for VF2镜像压缩包4GB,解压缩后大于10GB。2、节省烧录时间,再以openkylin为例,从4GB解压到10GB就费时,再烧录10GB到TF卡又费时。
我在VF2官方群中提出疑问,能不能把XZ压缩的镜像文件换成ZST压缩格式?网友有回复,所以我决定试试。附图

继续用openkylin2.0镜像文件做实验,它好像是我见过的VF2最大镜像文件,实验成功。我用新方法制作的TF卡正常启动进系统,并安装软件使用,截图附后。我使用的解压命令是(需要su、sudo):

xzcat -d --threads=0 openKylin-Embedded-V2.0-Release-visionfive2-riscv64.img.xz > /dev/sdb

注意:请把命令中的/dev/sdb 更改成TF卡所对应设备名




后面这张截图是网友在我完成实验后补充的,我没实验,也放上,有需要看进度的可以试试。

最后,我这个实验只做了一次,没经过长时间验证。也许传统烧录方式是正确的,也许你也可以试试新方法。

系统镜像文件烧录的改进实验3

昨天,官方发布新的2409工程版,镜像文件是用bz2压缩的,所以继续实验把bz2镜像直接写入TF卡,实验成功,命令如下,因我没认真去找bzcat使用cpu多核解压的参数,所以是用单核解压:

su

bzcat -d starfive-jh7110-202409-SD-minimal-desktop-wayland.img.bz2 | dd of=/dev/sdX bs=1M status=progress

附 实验2结果:
实验2的目的是测试实验1中两条命令,哪一条的效率更好

xzcat -d --threads=0 XXX.img.xz > /dev/sdX

XZ_OPT=“-T0” xzcat -d XXX.img.xz | sudo dd of=/dev/sdX bs=1M status=progress

同一台主机,同一张TF卡,同是openskylin2.0那个原数据容量为10G的镜像文件。测试前,我猜测应该是第一条命令更快些,因为只用一个程序而且不需要返回进度数据。测试两次,结果都是使用两个程序的命令比简单命令快约1分钟完成。

本文完成于 VF2 + 2409工程版 + sway + chromium103

实验4
关于gz后缀的镜像压缩文件,例如游戏模拟器系统batocera for VisionFive2镜像文件就是gzip压缩的,它在本论坛的最早介绍,它的下载地址
gz镜像压缩文件直接写入到TF卡的命令:

su

gzip -d -c batocera-riscv-visionfive2-40-20240811.img.gz | dd of=/dev/sdX bs=1M status=progress

实验5
今天在制作2409工程版和batoceta系统双引导镜像时碰到个问题,我需要把64GB的TF做成镜像文件并压缩,主机上存储空间只剩下60GB,试了几个方法都没成功,之后想到镜像压缩文件直接写到TF卡的方法能不能反向用。实验成功,把64GB数据直接压缩成13GB镜像文件,命令如下:

su

dd if=/dev/sdb bs=1M status=progress | xz -z -e -9 --threads=0 > vf2-2409-batoceta-xfce.img.xz