提取ISO的最快方法是什么?


34

目前,我正在将ISO挂载到(只读)目录(使用mount -o loop命令),然后将内容复制到另一个普通目录。由于ISO较大,因此需要花费大量时间。这是唯一的方法,还是有其他选择?


您可以看一下我的解决方案:superuser.com/a/1180728/541106
MewX

这是一个不错的方法,因为ISO已安装在系统的RAM中。使用工具进行提取应该花费相同的时间。
dubis

Answers:


59

您可以通过7zip软件执行此操作:

sudo apt-get install p7zip-full

7z x iso_file.iso

在Fedora上:

7za x iso_file.iso


1
我使用的是Windows 8.1 ISO(在Gnome中),Nautilus和Archive Manager都无法显示其内容。
krlmlr 2014年

4
请注意,“ 7za x”将不起作用,只有“ 7z x”。谢谢!
lzap 2015年

7za适用于软呢帽,而7z则不行
Adam Kurkiewicz

按照此方法7z将不会提取所有必需的文件。
Ploni '18年

7

bsdtar(可移植libarchive的一部分)可以解析许多文件格式。对于手指非常熟悉tar的选项(提取,仅检查内容)的用户而言,这非常方便。 bsdtar xfp foo.isobsdtar tf yoyoma.rpm

对于熟悉cpio的用法的人还有一个bsdcpio 。

现在,许多Linux发行版包括bsdtar,bsdcpio和libarchive(尽管它们全部来自libarchive代码,但它们通常是单独的软件包)。


2

挂载映像或使用已经回答的7zip可能是仅有的两种解决方案。尝试一下,检查它们是否比另一种快。

如果确实需要更快的速度,则可能应该朝另一个方向看:不要更改软件,而要使用不同的磁盘:一个用于源映像,另一个用于目标目录。或者,尝试避免复制这些文件,而仅将其保存在iso映像中。


仅供参考:使用mount -o looprsync -a /mnt/iso /root/iso以〜100MB / s的速度从内部SATA HDD复制到内部SATA SSD。
rwenz3l


1

如果您只想提取一些文件而不是全部内容,请mc在shell中尝试使用MidnightCommander。看起来也很整洁.zip/tar.gz/bz2


1

为什么不使用:

isoinfo -R -X

提取所有文件或

isoinfo -R -X -find find-options

提取由查找选项控制的文件?


2
请注意,它假设isoinfo来自schily cdrtools。这与在Debian上找到的那个(从出于许可原因AFAICT cdrkit的Debian 分支中而来)不起作用cdrtools
斯特凡Chazelas

2
正确,Debian在2004年5月创建了一个fork,此后再也没有取得任何有益的进展。此后,原始代码中的所有增强功能都被忽略了,这是很多事情:cdrtools项目中的当前代码有60%以上是2004年以后的。换句话说,最近的原始cdrtools的功能中有50%以上的缺失在Debian分支中。
2015年

1
顺便说一句:Debian分支创建于2004年5月,在我于2006年9月要求Debian不再使用原始名称来处理包含100多个Debian特定错误的分支之后,使用了cdrkit这个名称。鉴于所有要求专业律师发行的发行版都附带了原始的cdrtools,所以我看不到许可证问题的证据。
2015年

如果不得不承认,我不能说我了解许可证问题。
斯特凡Chazelas

1
当我认真遵循许可证的所有要求时(我与数位律师进行了核对),因此看不到许可证问题。考虑到Debian在更改许可证之前就已经声明了许可证问题,我怀疑这里是“红鲱鱼”。从上面继续我的时间表:Debian于2005年秋季从一个不存在的变更中申请了许可证问题,但是为了抵御Eduard Bloch和JörgJaspert的攻击,许可证变更于2006年5月15日发生。
2015年

1

对于那些在Linux上使用Thunar文件管理器并且想要简单快速的解决方案的人:

  1. 打开thunar->编辑->配置自定义操作...
  2. 建立新项目:
    • 名称:此处提取ISO
    • 说明:提取ISO文件
    • 命令: xfce4-terminal -e "7z x %f"
  3. 打开选项卡外观条件
    • 字首: *.iso
    • 选择唯一 Other files复选框
  4. 保存它,您就可以使用右键单击提取内容。

请注意,此技巧使用并取决于xfce4-terminalp7zip软件包。如果您使用其他归档管理器或终端,请相应地替换命令。


1

AppImage type-1图像是带有zisofs压缩文件的ISO图像。这就是为什么不是每个可以提取ISO文件的应用程序也可以提取AppImage type-1图像的原因。


好的,但是问题是如何提取它们?+快速。
LinuxSecurityFreak,

我认为最快的方法是使用内核进行循环挂载,然后将文件复制出来。不过,我还没有进行科学的测量。
probono

0

尝试genisoimage。它拥有处理ISO所需的一切。安装后,您还可以mc用来查看ISO内容。


只需通读手册页即可。找不到用于提取现有ISO内容的任何选项。
Alex Jansen

0

我已经以最快的速度对建议的实用程序进行了基准测试:

FILE=some_file.iso
DIR="./unpacked"

# time 7z x $FILE -o$DIR # see note below
# real    0m0,656s

time xorriso -osirrox on -indev $FILE -extract / $DIR
# real    0m5,528s

mkdir $DIR
time bsdtar xp -C $DIR -f $FILE
# real    0m5,376s

# mkdir $DIR; cd $DIR
# time isoinfo -R -X -i ../$FILE # see note below
# real    0m0,446s

他们在nvme ssd上针对780M文件进行了测试。因此,我要坚持使用7z,因为它具有简介性和快速性。

编辑:我很着急7z。7z和isoinfo提取文件,但它们已损坏。我认为这就是为什么他们这么快地工作。我正在提取一个AppImage文件。那么bsdtar似乎是最好的。


我已将它们注释掉,但留给其他人使用,以轻松使用他们的论点。同样,尝试使用其他iso图像(即不是AppImage)也是个好主意。
Ashark
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.