从官方下载的 Tumbleweed iso 镜像中以 sha512 命名的文件的文件名被截断

今天在官方源下载了 Tumbleweed 的镜像,打算重装一遍系统。

因为手头没有 u 盘,所以给硬盘尾部分了一个 5g 的 fat32 分区,把下载下来的 iso 解压到了里面。(以前我安装系统也是这么做,没有出现过问题)

重启后进入安装程序,在仓库初始化的时候就开始报错找不到文件。

找不到的文件都在 /repodata/ 目录下。

于是重启回了 windows,找到了对应目录,发现有 4 个文件的文件名尾部被截断了。

/repodata/repomd.xml 文件里面可以找到这个目录下面文件的描述,我把被文件名被截断的文件的文件名都补了回来。

比对发现被截断的文件名都是以 sha512 作为文件名的文件。合理推测是文件名太长的原因。

又跑去清华源下了一遍,文件名依旧是被截断的,排除下载过程出错。

用资源管理器挂载 iso,发现对应的文件的文件名是被截断的,用 7zip 打开对应 iso,发现对应的文件名也是被截断的,排除了解压过程的问题。

而且我在 windows 下也可以改名成功,可以排除 fat32 文件系统不支持长文件名的原因。

把这四个文件的名字缺掉的部分补回来,安装过程就不报错了。

所以这是否算是官方在打包过程中出现了问题?

如果不是打包问题的话,有哪位同学知道是啥原因也烦请告诉我一下,多谢。

被截断的长度是 103 字符?ISO 文件的类型是 iso9660?你下载的 iso 具体文件名是?

1赞

先是从官网上地址下载的。
https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
然后在清华源上下载
https://mirrors.tuna.tsinghua.edu.cn/opensuse/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
文件名就是 url 里的文件名

刚才在 Linux 下用 ark 看了一下镜像,发现文件名正常了。那么导致这个问题的原因应该是 windows 系统对 iso 文件类型的识别不正确?

所以我问你被截断的长度是多少啊……

我下了一份,是 iso9660 没错。截断的具体位置还是不能确定,我下载到的和截图里的不一样。不过我用 7z 看了一下,也被截断了,位置是 103 字符。

所以猜测是 Windows / 7z 对 iso9660 的支持不行,不认这么长的文件名。具体细节需要找个 iso9660 的专家来检查了。

1赞

我也不太清楚。。现在我不太方便弄,晚上回家去数一下

我觉得不用数了,我 OCR 出来的结果也是 103,7z 出来的也是 103,对得上。这个 103 在 mkisofs 的手册里有提到。

1赞

好的,我现在也基本搞清楚了。但感觉这可以算一个破坏性更新了:thinking:
毕竟之前没有这么长的文件名,在 windows 下操作不会出问题

本主题在最后一个回复创建后60分钟后自动锁定。不再允许添加新回复。