我的服务器上有一个很大的ISO文件,我需要在不具有root用户访问权限的情况下访问其中的文件。因此,我不能简单地安装它。在没有根访问权限的情况下,如何在LInux上提取ISO?
我的服务器上有一个很大的ISO文件,我需要在不具有root用户访问权限的情况下访问其中的文件。因此,我不能简单地安装它。在没有根访问权限的情况下,如何在LInux上提取ISO?
Answers:
如果安装了7zip,这真的很容易:
7z x Your.iso -oWhere/You/Want/It/Extracted/To
提取整个iso。
7z
似乎可以直接从媒体中提取内容:7z x /dev/cdrom
。我有一个非常愚蠢的问题,我的文件在挂载时显示0个字节。因此,提取是一种解决方法。
许多GUI工具(如文件滚轮)将在后台使用isoinfo。
您可以像这样从ISO提取单个文件:
isoinfo -i image.iso -x /isolinux/initrd.img> initrd.img
重定向需要作为-x
对stdout的提取。
如果要在ISO中列出文件夹的内容:
isoinfo -i image.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 ...
我找到了一种新的最佳方法:使用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/
上述大多数解决方案使您可以提取iso内容,但是如果内容较大,则会占用大量空间。
更好的解决方案是进行iso映像的实际挂载,这要归功于FuseISO,而无需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
7za
(CentOS),这一点很重要;7za
不支持ISO存档。您可以使用来检查支持的格式7za i
。