Was ist der schnellste Weg, um eine ISO zu extrahieren?


34

Derzeit mounte ich eine ISO in ein (schreibgeschütztes) Verzeichnis (mit dem mount -o loopBefehl) und kopiere dann den Inhalt in ein anderes normales Verzeichnis. Dies nimmt viel Zeit in Anspruch, da die ISO groß ist. Ist dies der einzige Weg, oder gibt es eine Alternative?


Sie können einen Blick auf meine Lösung haben: superuser.com/a/1180728/541106
MewX

Dies ist kein schlechter Weg, da die ISO im RAM des Systems installiert ist. Das Extrahieren mit einem Werkzeug sollte genauso lange dauern.
Dubis

Antworten:


59

Sie können dies mit der 7zip-Software tun:

sudo apt-get install p7zip-full

7z x iso_file.iso

auf Fedora:

7za x iso_file.iso


1
Arbeitete für mich mit einer Windows 8.1 ISO, bei der (in Gnome) weder Nautilus noch Archive Manager den Inhalt anzeigen konnten.
krlmlr

4
Pass auf, "7za x" funktioniert nicht, nur "7z x". Vielen Dank!
10.

7za arbeitet an Fedora, 7z nicht
Adam Kurkiewicz

Gemäß dieser , 7zwerden alle notwendigen Dateien nicht extrahieren.
Ploni

7

bsdtar(Teil des portablen Libarchives ) kann viele Dateiformate analysieren . Dies ist praktisch für diejenigen, deren Finger mit den Optionen von tar sehr vertraut sind ( extrahieren, nur den Inhalt untersuchen). bsdtar xfp foo.isobsdtar tf yoyoma.rpm

Es gibt auch ein bsdcpio für diejenigen, die mit cpioder Verwendung von vertraut sind .

Viele Linux-Distributionen enthalten jetzt bsdtar, bsdcpio und libarchive (oft als separate Pakete, obwohl alles aus dem libarchiven Code stammt).


2

Das Einhängen des Images oder die Verwendung von 7zip, wie bereits beantwortet, sind wahrscheinlich die einzigen beiden Lösungen. Probieren Sie sie aus und prüfen Sie, ob einer schneller ist als der andere.

Wenn Sie wirklich etwas Schnelleres benötigen, sollten Sie wahrscheinlich in eine andere Richtung schauen: Versuchen Sie, anstatt die Software zu ändern, verschiedene Festplatten zu verwenden: eine für das Quell-Image und eine für das Zielverzeichnis. Sie können auch versuchen, das Kopieren dieser Dateien zu vermeiden und sie einfach im ISO-Image zu belassen.


Zu Ihrer Information : Verwenden mount -o loopund rsync -a /mnt/iso /root/isoKopieren mit ~ 100 MB / s von einer internen SATA-Festplatte auf eine interne SATA-SSD.
rwenz3l

2

uniso ist ein Python-Skript, das isoinfo nutzt , um den Inhalt aus einem ISO-Stream zu extrahieren. Es erfordert Pythoric . Es ist ein bisschen abgedreht, aber es erledigt den Job.

Ich bin der Autor von Uniso und Pythoric.


1

Wenn Sie nur einige Dateien anstelle des gesamten Inhalts extrahieren möchten, versuchen Sie es mit dem mcsogenannten MidnightCommander in der Shell. Es ist auch ordentlich zu untersuchen .zip/tar.gz/bz2.


1

Warum nicht benutzen:

isoinfo -R -X

um alle Dateien zu extrahieren oder

isoinfo -R -X -find find-options

Dateien extrahieren, die von den Suchoptionen gesteuert werden?


2
Beachten Sie, dass es das isoinfovon schily annimmt cdrtools. Das wird nicht funktionieren mit dem einem gefunden auf Debian (von cdrkiteiner Debian - Gabel von cdrtools(aus lizenzrechtlichen Gründen AFAICT)).
Stéphane Chazelas

2
Richtig, Debian hat im Mai 2004 eine Abzweigung erstellt und seitdem keine nützlichen Fortschritte erzielt. Alle Verbesserungen im Originalcode seitdem wurden ignoriert und dies war eine Menge: Mehr als 60% des aktuellen Codes im cdrtools-Projekt stammen aus dem vergangenen Jahr 2004. Mit anderen Worten, mehr als 50% der Funktionen eines neueren Original-cdrtools fehlen in der Debian-Gabel.
Schily

1
Übrigens: Die Debian-Gabel wurde im Mai 2004 erstellt, der Name cdrkit wurde verwendet, nachdem ich Debian im September 2006 gebeten hatte, den ursprünglichen Namen für eine Gabel mit mehr als 100 Debian-spezifischen Fehlern nicht mehr zu verwenden. Angesichts der Tatsache, dass alle Distributionen, die einen spezialisierten Anwalt darum gebeten haben, die Original-CD-Tools zu versenden, kann ich keinen Beweis für ein Lizenzproblem sehen.
Schily

Wenn ich gestehen muss, kann ich nicht sagen, dass ich das Lizenzproblem verstehe.
Stéphane Chazelas

1
Da ich alle Anforderungen aus den Lizenzen sorgfältig befolge (ich habe dies mit mehreren Anwälten überprüft), kann ich keine Lizenzprobleme feststellen. Angesichts der Tatsache, dass Debian ein Lizenzproblem lange vor dem Ändern der Lizenzen geltend gemacht hat, vermute ich hier einen "roten Hering". Um mit meinem Zeitplan von oben fortzufahren: Debian hat eine Lizenzproblematik aufgrund einer nicht existierenden Änderung im Herbst 2005 geltend gemacht, aber die Lizenzänderung fand am 15. Mai 2006 statt, um sich gegen die Angriffe von Eduard Bloch und Jörg Jaspert zu verteidigen.
Schily

1

Für diejenigen, die den Thunar-Dateimanager unter Linux verwenden und eine einfache und schnelle Lösung suchen:

  1. Öffnen Sie thunar -> Bearbeiten -> Benutzerdefinierte Aktionen konfigurieren ...
  2. Neues Element erstellen:
    • Name: Hier ISO extrahieren
    • Beschreibung: Extrahiert eine ISO-Datei
    • Befehl: xfce4-terminal -e "7z x %f"
  3. Öffnen Sie die Registerkarte Erscheinungsbedingungen
    • Präfix: *.iso
    • Aktivieren Sie nur das Other files Kontrollkästchen
  4. Speichern Sie es und Sie können es mit einem Rechtsklick extrahieren.

Beachten Sie, dass dieser Trick die Pakete xfce4-terminal und p7zip verwendet und davon abhängt . Wenn Sie einen anderen Archivmanager oder ein anderes Terminal verwenden, ersetzen Sie die Befehle entsprechend.


1

AppImage-Images vom Typ 1 sind ISO-Images mit zisofs komprimierten Dateien. Aus diesem Grund kann nicht jede Anwendung, die ISO-Dateien extrahieren kann, auch AppImage-Images vom Typ 1 extrahieren.


Ok, aber die Frage war, WIE MAN SIE EXTRAKTIERT? + SCHNELL.
LinuxSecurityFreak

Ich denke, der schnellste Weg ist, den Kernel zu benutzen, um die Dateien per Loop zu mounten und dann zu kopieren. Ich habe jedoch keine wissenschaftlichen Messungen durchgeführt.
Probono

0

Versuchen Sie es genisoimage. Es hat alles, was Sie brauchen, um mit ISOs umzugehen. Nach der Installation können Sie auch mcISO-Inhalte anzeigen.


Lesen Sie dazu einfach die Manpage durch. Es wurden keine Optionen zum Extrahieren des Inhalts einer vorhandenen ISO gefunden.
Alex Jansen

0

Ich habe die vorgeschlagenen Dienstprogramme für die schnellsten verglichen:

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

Sie wurden gegen 780M-Datei bei nvme ssd getestet. Ich würde also bei 7z bleiben, weil die Übersicht praktisch und die Geschwindigkeit schnell ist.

Edit: Ich hatte es eilig wegen 7z. 7z und isoinfo extrahieren Dateien, aber sie sind beschädigt. Deshalb haben sie so schnell gearbeitet, denke ich. Ich habe eine AppImage-Datei extrahiert. Dann scheint bsdtar das Beste zu sein.


Ich habe sie auskommentiert, sie aber anderen überlassen, damit sie ihre Argumente leicht verwenden können. Vielleicht ist es auch eine gute Idee, es mit einem anderen ISO-Image zu versuchen (dh nicht mit einem AppImage).
Ashark
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.