关于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中两条命令,哪一条的效率更好

su

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

看来你是不知道 dd 是基于数据流的读写。

这东西输出的文件,因为他会把整个磁盘都读取出来,包括没有用的空间,也会读取。
所以容量确实很大。
解决办法。要么直接 tar 整个 rootfs 。
要么先 dd if=/dev/zero of=/zero.img 把剩余空间全都写 0 ,再 rm /zero.img 。这样压缩的时候,全 0 的空间会非常省地方。

另外,zstandard 默认压缩率低,容量缩减效果不如 xz 。推荐提高压缩比。img 镜像没必要追求快速的压缩和解压缩,而且提高压缩比后, zstandard 协议依然有很好的解压缩性能。默认支持 1-19 ,加参数可以提高到 22 。
至于推荐的压缩比参数,我印象里之前有人推荐用 13 ,默认我记得是 3 。如果觉得 13 太慢,我印象里还一个推荐是 7 。

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

懂,你不会的太多,我的出现会导致你丢人。
但是你这个知识真的太少,我真的不得不说点什么。

不想让我说,最简单的办法,就是你成为真高手。而不是不停的表演自己的低水平。 :sweat_smile:

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