ISOを抽出する最速の方法は何ですか?


34

現在、(mount -o loopコマンドを使用して)ISOを(読み取り専用)ディレクトリにマウントし、その内容を別の通常のディレクトリにコピーしています。ISOが大きいため、これには多くの時間がかかります。これがそうする唯一の方法ですか、それとも代替手段がありますか?


あなたは私のソリューションを見ることができます
MewX

ISOはシステムのRAMにマウントされるため、これは悪い方法ではありません。ツールを使用した抽出にも同じ時間がかかります。
デュビス

回答:


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 14年

4
「7za x」は機能せず、「7z x」のみが機能することに注意してください。ありがとう!
lzap

7zaはフェドラで動作しますが、7zは動作しません
Adam Kurkiewicz

あたりとして、この7zすべての必要なファイルを抽出しません。
-Ploni

7

bsdtar(ポータブルlibarchiveの一部)は、多くのファイル形式を解析できます。これは、tarのオプションに非常に精通している(抽出する、内容を検査する)場合に便利です。 bsdtar xfp foo.isobsdtar tf yoyoma.rpm

cpioの使用法に慣れている人のためのbsdcpioもあります。

多くのLinuxディストリビューションには、bsdtar、bsdcpio、libarchive(多くの場合、すべてがlibarchiveコードに由来しますが、個別のパッケージとして)が含まれています。


2

画像をマウントするか、既に回答したとおりに7zipを使用することがおそらく2つの解決策です。それらを試して、一方が他方より速いかどうかを確認してください。

より高速なものが本当に必要な場合は、おそらく別の方向に目を向ける必要があります。ソフトウェアを変更する代わりに、異なるディスクを使用するようにしてください。1つはソースイメージ用、もう1つはターゲットディレクトリ用です。または、これらのファイルのコピーを避け、ISOイメージにそのまま保存するようにしてください。


参考:内蔵SATA HDDから内蔵SATA SSDに〜100MB / sでコピーして使用mount -o loopしていrsync -a /mnt/iso /root/isoます。
rwenz3l

2

unisoは、isoinfoを活用してISOストリームからコンテンツを抽出するPythonスクリプトです。それが必要ですpythoricです。それは少しハックですが、仕事を終わらせます。

私はunisoとpythoricの著者です。


1

コンテンツ全体ではなく一部のファイルのみを抽出する場合mcは、シェルで別名MidnightCommanderを試してください。調べるのもきちんとしています.zip/tar.gz/bz2


1

使用しない理由:

isoinfo -R -X

すべてのファイルを抽出するか、

isoinfo -R -X -find find-options

検索オプションで制御されるファイルを抽出するには?


2
isoinfofrom schily'sを想定していることに注意してくださいcdrtools。すなわち、(からのDebianに見られるものでは動作しませんcdrkitDebianのフォークcdrtools)AFAICT理由をライセンスするための()。
ステファンシャゼル

2
正しい、Debianは2004年5月にフォークを作成しましたが、それ以降、有益な進展はありませんでした。以来、元のコードのすべての機能強化は無視され、これは非常に多くなりました。cdrtoolsプロジェクトの現在のコードの60%以上は過去2004年のものです。つまり、最近の元のcdrtoolsの機能の50%以上が欠落していますDebianフォークで。
気違い

1
ところで、Debianフォークは2004年5月に作成されました。2006年9月にDebianに100以上のDebian固有のバグがあるフォークに元の名前を使用しないように依頼した後、cdrkitという名前が使用されました。専門弁護士に依頼したすべてのディストリビューションが元のcdrtoolsを出荷していることを考えると、ライセンスの問題の証拠を見ることができません。
気紛れ

告白しなければならない場合、ライセンスの問題を理解しているとは言えません。
ステファンシャゼル

1
ライセンスのすべての要件に注意深く従っているため(数人の弁護士に確認しました)、ライセンスの問題は見当たりません。ライセンスが変更されるずっと前にDebianがライセンスの問題を主張したという事実を考えると、私はここで「赤いニシン」を疑います。上記の私のタイムラインを続けるには、Debianは2005年秋に存在しない変更によるライセンスの問題を主張しましたが、Eduard BlochとJörgJaspertからの攻撃を防御するために2006年5月15日にライセンスの変更が行われました。
気違い

1

LinuxでThunarファイルマネージャーを使用していて、簡単で高速なソリューションを希望する場合:

  1. thunarを開く->編集->カスタムアクションを設定...
  2. 新しいアイテムを作成:
    • 名前:ここにISOを抽出します
    • 説明:ISOファイルを抽出します
    • コマンド: xfce4-terminal -e "7z x %f"
  3. [開く]タブの外観条件
    • プレフィックス: *.iso
    • チェックボックスのみを 選択Other files
  4. 保存すると、右クリックを使用して抽出する準備ができました。

このトリックはxfce4-terminalおよびp7zipパッケージを使用し、それに依存することに注意してください。別のアーカイブマネージャまたはターミナルを使用している場合は、それに応じてコマンドを置き換えます。


1

AppImageタイプ1イメージは、zisofs圧縮ファイルを含む ISOイメージです。これが、ISOファイルを抽出できるすべてのアプリケーションがAppImageタイプ1イメージも抽出できるわけではない理由です。


わかりましたが、質問はそれらを抽出する方法でしたか?+速い。
LinuxSecurityFreak

最速の方法は、カーネルを使用してループマウントしてからファイルをコピーすることだと思います。ただし、科学的な測定は行っていません。
probono

0

試してくださいgenisoimage。ISOの処理に必要なものはすべて揃っています。インストールすると、mcISOコンテンツの表示にも使用できるようになります。


これについては、マンページを読んでください。既存のISOの内容を抽出するためのオプションが見つかりませんでした。
アレックスヤンセン

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.