LinuxでISOイメージからファイルを抽出してコピーする3つの方法

Linuxサーバー上に大きなISOファイルがあるとします。その中から1つのファイルにアクセスしたり、抽出したり、コピーしたい場合、どのようにしますか?Linuxにはそれを行うためのいくつかの方法があります。

関連記事: LinuxでISOから起動可能なUSBを作成するためのBashスクリプト

たとえば、ループデバイスを使用してISOイメージを読み取り専用モードでマウントし、その後ファイルを別のディレクトリにコピーするために標準のmountコマンドを使用できます。

LinuxでISOファイルをマウントまたは抽出する

そのためには、ISOファイル(私はubuntu-16.10-server-amd64.isoイメージを使用しました)と、マウントまたは抽出するためのマウントポイントディレクトリが必要です。

まず、以下に示すようにマウントポイントディレクトリを作成します。

$ sudo mkdir /mnt/iso

ディレクトリが作成されたら、次のコマンドを実行してubuntu-16.10-server-amd64.isoファイルを簡単にマウントし、その内容を確認できます。

$ sudo mount -o loop ubuntu-16.10-server-amd64.iso /mnt/iso
$ ls /mnt/iso/
Mount ISO File in Linux

これでマウントされたディレクトリ(/mnt/iso)に移動してファイルにアクセスしたり、ファイルを/tmpディレクトリにcpコマンドを使用してコピーできます。

$ cd /mnt/iso
$ sudo cp md5sum.txt /tmp/
$ sudo cp -r ubuntu /tmp/
Copy Files From ISO File in Linux

注意: -rオプションはディレクトリを再帰的にコピーするために使用されます。必要に応じて、コピー操作の進行状況を監視することもできます

7zipコマンドを使用してISOコンテンツを抽出する

ISOファイルをマウントしたくない場合は、単純に7zipをインストールすることができます。これは、TAR、XZ、GZIP、ZIP、BZIP2など、さまざまな形式のパックやアンパックに使用されるオープンソースのアーカイブプログラムです。

$ sudo apt-get install p7zip-full p7zip-rar [On Debian/Ubuntu systems]
$ sudo yum install p7zip p7zip-plugins      [On CentOS/RHEL systems]

7zipプログラムをインストールしたら、7zコマンドを使用してISOファイルのコンテンツを抽出できます。

$ 7z x ubuntu-16.10-server-amd64.iso
7zip – Extract ISO File Content in Linux

注意: Linuxのmountコマンドと比較して、7zipははるかに高速で、あらゆるアーカイブ形式をスマートにパックおよびアンパックすることができます。

isoinfoコマンドを使用してISOコンテンツを抽出する

isoinfoコマンドはiso9660イメージのディレクトリリストを取得するために使用されますが、このプログラムをファイルを抽出するためにも使用できます。

isoinfoプログラムはディレクトリリストを作成するため、まずISOファイルの内容をリストアップします。

$ isoinfo -i ubuntu-16.10-server-amd64.iso -l
List ISO Content in Linux

今やISOイメージから単一のファイルを次のように抽出できます。

$ isoinfo -i ubuntu-16.10-server-amd64.iso -x MD5SUM.TXT > MD5SUM.TXT

注意: リダイレクションは、-xオプションが標準出力に抽出するために必要です。

Extract Single File from ISO in Linux

さて、抽出やコピーするファイルに役立つコマンドやプログラムがあれば、コメントセクションで共有してください。

Source:
https://www.tecmint.com/extract-files-from-iso-files-linux/