Jaki jest najszybszy sposób na wyodrębnienie ISO?


34

Obecnie podłączam ISO do katalogu (tylko do odczytu) (używając mount -o looppolecenia), a następnie kopiuję zawartość do innego normalnego katalogu. To zajmuje dużo czasu, ponieważ ISO jest duże. Czy to jedyny sposób, aby to zrobić, czy jest jakaś alternatywa?


Możesz zobaczyć moje rozwiązanie: superuser.com/a/1180728/541106
MewX

To nie jest zły sposób, ponieważ ISO jest zamontowany w pamięci RAM systemu. Wyodrębnianie za pomocą narzędzi powinno trwać tak samo.
Dubis

Odpowiedzi:


59

możesz to zrobić za pomocą oprogramowania 7zip:

sudo apt-get install p7zip-full

7z x iso_file.iso

w Fedorze:

7za x iso_file.iso


1
Pracowałem dla mnie z systemem Windows 8.1 ISO, dla którego (w Gnome) ani Nautilus, ani Archive Manager nie byli w stanie wyświetlić zawartości.
krlmlr

4
Uważaj, „7za x” nie będzie działać, tylko „7z x”. Dzięki!
lzap,

7za działa na fedorze, 7z nie
Adam Kurkiewicz

Zgodnie z tym , 7znie będzie wyodrębnić wszystkie niezbędne pliki.
Ploni,

7

bsdtar(część przenośnej biblioteki libarchive ) może analizować wiele formatów plików . Jest to przydatne dla tych, których palce są bardzo zaznajomieni z opcjami tar ( aby wyodrębnić, tylko sprawdzić zawartość). bsdtar xfp foo.isobsdtar tf yoyoma.rpm

Istnieje również bsdcpio dla tych, którzy są zaznajomieni z obsługą cpio.

Wiele dystrybucji Linuksa zawiera teraz bsdtar, bsdcpio i libarchive (często jako osobne pakiety, chociaż wszystko pochodzi z kodu libarchive).


2

Montaż obrazu lub użycie 7zip, jak już odpowiedziano, to prawdopodobnie jedyne dwa rozwiązania. Wypróbuj je i sprawdź, czy jedno jest szybsze od drugiego.

Jeśli naprawdę potrzebujesz czegoś szybszego, prawdopodobnie powinieneś spojrzeć w innym kierunku: zamiast zmieniać oprogramowanie, spróbuj użyć różnych dysków: jednego dla obrazu źródłowego i jednego dla katalogu docelowego. Lub staraj się unikać kopiowania tych plików i po prostu trzymaj je na obrazie ISO.


FYI: używanie mount -o loopi rsync -a /mnt/iso /root/isokopiowanie z ~ 100 MB / s z wewnętrznego dysku twardego SATA na wewnętrzny dysk twardy SATA.
rwenz3l

2

uniso to skrypt Pythona, który wykorzystuje isoinfo do wyodrębnienia zawartości ze strumienia ISO. Wymaga pythorii . To trochę zuchwałe, ale wykonuje pracę.

Jestem autorem uniso i pythoric.


1

Jeśli chcesz wyodrębnić tylko niektóre pliki zamiast całej zawartości, wypróbuj mcaka MidnightCommander w powłoce. Przyjemnie jest też z tym przyjrzeć się .zip/tar.gz/bz2.


1

Dlaczego nie użyć:

isoinfo -R -X

wyodrębnić wszystkie pliki lub

isoinfo -R -X -find find-options

wyodrębnić pliki kontrolowane przez opcje wyszukiwania?


2
Zauważ, że zakłada to isoinfood schily cdrtools. Że nie będzie działać z jednej znaleźć na Debianie (od cdrkitDebiana widelcem z cdrtools(na licencji powody AFAICT)).
Stéphane Chazelas,

2
Zgadza się, Debian stworzył widelec w maju 2004 roku i od tego czasu nigdy nie zrobił żadnych użytecznych postępów. Wszystkie ulepszenia oryginalnego kodu od tego czasu zostały zignorowane, a było to bardzo dużo: ponad 60% obecnego kodu w projekcie cdrtools pochodzi z 2004 roku. Innymi słowy brakuje ponad 50% funkcji najnowszych oryginalnych cdrtools w rozwidleniu Debiana.
schily,

1
BTW: widelec Debiana został stworzony w maju 2004 roku, nazwa cdrkit została użyta po tym, jak poprosiłem Debiana we wrześniu 2006 roku, aby nie używał już oryginalnej nazwy dla widelca zawierającego ponad 100 błędów specyficznych dla Debiana. Biorąc pod uwagę, że wszystkie dystrybucje, które poprosiły wyspecjalizowanego prawnika, wysyłają oryginalne cdrtools, nie widzę dowodu wydania licencji.
schily,

Jeśli muszę się przyznać, nie mogę powiedzieć, że rozumiem problem z licencją.
Stéphane Chazelas,

1
Ponieważ dokładnie przestrzegam wszystkich wymagań wynikających z licencji (sprawdziłem to u kilku prawników), nie widzę problemu z licencją. Biorąc pod uwagę fakt, że Debian zgłosił problem z licencją na długo przed zmianą licencji, podejrzewam tutaj o „czerwonym śledziu”. Aby kontynuować od powyższego harmonogramu: Debian zażądał wydania licencji od nieistniejącej zmiany jesienią 2005 r., Ale zmiana licencji nastąpiła 15 maja 2006 r. W celu obrony przed atakami Eduarda Blocha i Jörga Jasperta.
schily,

1

Dla tych, którzy używają menedżera plików Thunar w systemie Linux i chcą łatwego i szybkiego rozwiązania:

  1. Otwórz thunar -> Edytuj -> Konfiguruj akcje niestandardowe ...
  2. Utwórz nowy przedmiot:
    • Nazwa: tutaj wypakuj ISO
    • Opis: Wyodrębnia plik ISO
    • Dowództwo: xfce4-terminal -e "7z x %f"
  3. Otwórz zakładkę Warunki wyglądu
    • Prefiks: *.iso
    • Zaznacz tylko Other files pole wyboru
  4. Zapisz go i możesz wyodrębnić go, klikając prawym przyciskiem myszy.

Zauważ, że ta sztuczka używa i zależy od pakietów xfce4-terminal i p7zip . Jeśli używasz innego menedżera archiwum lub terminala - odpowiednio zamień polecenia.


1

Obrazy AppImage typu 1 są obrazami ISO ze skompresowanymi plikami zisofs . Dlatego nie każda aplikacja, która może wyodrębnić pliki ISO, może również wyodrębnić obrazy AppImage typu 1.


Ok, ale pytanie brzmiało: JAK WYCIĄGNĄĆ? + SZYBKO.
LinuxSecurityFreak

Myślę, że najszybszym sposobem jest użycie jądra do zamontowania w pętli, a następnie skopiowanie plików. Nie dokonałem jednak pomiarów naukowych.
probono

0

Spróbować genisoimage. Ma wszystko, czego potrzebujesz do obsługi ISO. Po zainstalowaniu będziesz mógł także używać mcdo przeglądania treści ISO.


Po prostu przeczytaj do tego stronę podręcznika. Nie można znaleźć żadnych opcji wyodrębnienia zawartości istniejącego ISO.
Alex Jansen

0

Testowałem sugerowane narzędzia do najszybszego:

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

Zostały przetestowane na pliku 780M w nvme ssd. Trzymałbym się więc 7z, ze względu na wygodę i szybkość.

Edycja: Spieszyłem się około 7z. 7z i isoinfo wyodrębniają pliki, ale są one uszkodzone. Dlatego chyba tak szybko działali. Rozpakowywałem plik AppImage. Wtedy bsdtar wydaje się najlepszy.


Skomentowałem je, ale pozostawiłem je na miejscu, aby inni mogli z łatwością skorzystać z ich argumentów. Być może dobrym pomysłem jest wypróbowanie innego obrazu ISO (tj. Nie AppImage).
Ashark
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.