我在服务器上有一个很大的 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 权限。我试过7z
和file-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.iso
并extracted_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