Linux で ISO イメージからファイルを抽出してコピーする 3 つの方法
Linux サーバー上に大きな ISO ファイルがあり、そこから 1 つのファイルにアクセス、抽出、またはコピーしたいとします。どうやってやるのですか? Linux ではそれを行う方法がいくつかあります。
こちらもお読みください: Linux で ISO からブート可能な USB を作成する Bash スクリプト
たとえば、標準のマウント コマンドを使用して、ループ デバイスを使用して ISO イメージを読み取り専用モードでマウントし、そのファイルを別のディレクトリにコピーできます。
Linux で ISO ファイルをマウントまたは抽出する
これを行うには、ISO ファイル (私はubuntu-16.10-server-amd64.iso ISO イメージを使用しました) と、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/
これで、マウントされたディレクトリ (/mnt/iso) 内に移動してファイルにアクセスしたり、cp コマンドを使用してファイルを /tmp
ディレクトリにコピーしたりできるようになります。
cd /mnt/iso
sudo cp md5sum.txt /tmp/
sudo cp -r ubuntu /tmp/
注: -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
注: Linux の mount コマンドと比較すると、7zip ははるかに高速で、あらゆるファイルを圧縮または解凍するのに十分賢いようです。アーカイブ形式。
isoinfo コマンドを使用して ISO コンテンツを抽出する
isoinfo コマンドは、iso9660 イメージのディレクトリの一覧表示に使用されますが、このプログラムを使用してファイルを抽出することもできます。
先ほど述べたように、isoinfo プログラムはディレクトリの一覧表示を実行するため、最初に ISO ファイルの内容を一覧表示します。
isoinfo -i ubuntu-16.10-server-amd64.iso -l
これで、次のように ISO イメージから単一のファイルを抽出できるようになりました。
isoinfo -i ubuntu-16.10-server-amd64.iso -x MD5SUM.TXT > MD5SUM.TXT
注: -x
オプションで標準出力に抽出するため、リダイレクトが必要です。
方法はたくさんありますが、ISO ファイルからファイルを抽出またはコピーするための便利なコマンドやプログラムをご存知の場合は、コメントセクションを通じて共有してください。