如何在没有 root 权限的情况下在 Linux 上提取 ISO

如何在没有 root 权限的情况下在 Linux 上提取 ISO

我在服务器上有一个很大的 ISO 文件,我需要在没有 root 访问权限的情况下访问其中的文件。因此,我无法简单地挂载它。我应该怎么做才能在 Linux 上提取 ISO 而不需要 root 访问权限?

答案1

如果安装了 7zip,这个非常简单:

7z x Your.iso -oWhere/You/Want/It/Extracted/To

提取整个 iso。

答案2

许多 GUI 工具(如文件滚动器)都会使用信息系统在背景中。

你可以像这样从 ISO 中提取单个文件:

isoinfo -i 映像.iso -x /isolinux/initrd.img > initrd.img

提取至标准输出时需要重定向-x

如果您想列出 ISO 中文件夹的内容:

isoinfo-i 映像.iso-l

示例输出:

/ 的目录列表
d--------- 0 0 0 2048 0 1900 [ 26 02] 。
d--------- 0 0 0 2048 0 1900 [ 26 02] ..
d--------- 0 0 0 2048 2010 年 2 月 6 日 [ 27 02] i386
...

答案3

我发现了一种新的最佳方法:使用xorriso

无需 root 权限。我试过7zfile-roller,但都不起作用。

xorriso是一个开源程序,因此如果您没有默认安装它,您可以下载源代码。

如果你还没有安装,请从这里下载源代码:https://www.gnu.org/software/xorriso/

步骤如下:

tar zxvf xorriso-1.4.6.tar.gz
cd xorriso-1.4.6
./configure
make
cd xorriso
pwd

将输出目录添加到环境变量中PATH


然后,您可以使用它来提取 iso 文件:

xorriso -osirrox on -indev image.iso -extract / extracted_path

您只需进行修改image.isoextracted_path使其在您的系统上运行即可。


参考:https://blog.sleeplessbeastie.eu/2014/08/26/how-to-extract-an-iso-image/

答案4

上述大多数解决方案都要求您提取 iso 内容,但如果内容很大,则会占用大量空间。

一个更好的解决方案是实际安装 iso 映像,这要归功于融合ISO无需 root 权限即可实现(但如果 ubuntu 中尚未安装 FuseISO,您仍需要请求管理员安装sudo apt-get install fuseiso

在机器上安装了 FuseISO 后,您可以:

# For user to mount an iso file:
mkdir ~/iso
fuseiso ~/my_iso.iso ~/iso
# For user to unmount an iso file:
fusermount -u ~/iso

相关内容