在 Linux 中从 ISO 映像提取和复制文件的 3 种方法
假设您的 Linux 服务器上有一个很大的 ISO 文件,并且您想访问、提取或复制其中的一个文件。该怎么做?在 Linux 中,有几种方法可以做到这一点。
另请参阅:在 Linux 中从 ISO 创建可启动 USB 的 Bash 脚本
例如,您可以使用标准mount命令使用循环设备以只读模式挂载 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)并访问文件或/tmp
使用cp 命令将文件复制到目录。
$ 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 文件中提取或复制文件,请通过评论部分与我们分享。