tar 无法解压,解决办法:降tar或升qemu

问题描述:
通过容器 binfmt 模拟arm环境,麒麟V11 arm64 版本,tar 版本 tar-1.35-3.ky11 ,解压几个文件都是报错,压缩文件本身并没有问题。
报错一般有这个:Cannot mkdir: Invalid argumen

说明: 根因是 qemu 的bug,再加上tar的安全修复之后出的问题。

问题分析:
经过对比排查,基本确认为 qemu 本身的问题,相关链接如下:

https://github.com/tonistiigi/binfmt/issues/285   
https://bugzilla.yoctoproject.org/show_bug.cgi?id=16126
https://bugzilla.yoctoproject.org/show_bug.cgi?id=16117

问题解决:
降低tar的版本,或者升级 tonistiigi/binfmt 的版本 tonistiigi/binfmt:qemu-v10.2.1-65 或更高版本 。

降低tar版本的操作步骤:

dnf list  --showduplicates tar
Last metadata expiration check: 4:57:03 ago on Fri 22 May 2026 11:07:29 AM CST.
Installed Packages
tar.aarch64                                                          2:1.35-2.ky11                                                          @v11-adv-os    
Available Packages
tar.aarch64                                                          2:1.35-2.ky11                                                          v11-adv-os     
tar.aarch64                                                          2:1.35-3.ky11                                                          v11-adv-updates

dnf repoquery --available tar
Last metadata expiration check: 4:58:26 ago on Fri 22 May 2026 11:07:29 AM CST.
tar-2:1.35-2.ky11.aarch64
tar-2:1.35-3.ky11.aarch64

rpm -qa |grep tar
tar-1.35-3.ky11.aarch64

dnf downgrade tar-1.35-2.ky11
Last metadata expiration check: 4:49:26 ago on Fri 22 May 2026 11:07:29 AM CST.
Dependencies resolved.
=================================================================================================
 Package                        Architecture                       Version                                     Repository                             Size 
=================================================================================================
Downgrading:
 tar                            aarch64                            2:1.35-2.ky11                               v11-adv-os                            746 k 

Transaction Summary
=================================================================================================
Downgrade  1 Package

Total download size: 746 k
Is this ok [y/N]: y
Downloading Packages:
tar-1.35-2.ky11.aarch64.rpm                                                                                                611 kB/s | 746 kB     00:01    
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                      587 kB/s | 746 kB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                   1/1 
  Running scriptlet: tar-2:1.35-2.ky11.aarch64                                                                                                         1/2 
  Downgrading      : tar-2:1.35-2.ky11.aarch64                                                                                                         1/2 
  Running scriptlet: tar-2:1.35-2.ky11.aarch64                                                                                                         1/2 
  Running scriptlet: tar-2:1.35-3.ky11.aarch64                                                                                                         2/2 
  Cleanup          : tar-2:1.35-3.ky11.aarch64                                                                                                         2/2 
  Running scriptlet: tar-2:1.35-3.ky11.aarch64                                                                                                         2/2 
  Verifying        : tar-2:1.35-2.ky11.aarch64                                                                                                         1/2 
  Verifying        : tar-2:1.35-3.ky11.aarch64                                                                                                         2/2 

Downgraded:
  tar-2:1.35-2.ky11.aarch64

Complete!

升级 qemu 的步骤

docker load < tonistiigi-binfmt-qemu-v10.2.1-65.tar.gz
docker run --rm --privileged tonistiigi/binfmt:qemu-v10.2.1-65 --install all

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容