I have a large ISO file on a server, and I need to access the file in it, without having root access. Thus, I can't simply mount it. What should I do to be able to extract an ISO on LInux without root access?
Many of the GUI tools like file roller will use isoinfo in the background.
You can extract a single file from an ISO like so:
isoinfo -i image.iso -x /isolinux/initrd.img > initrd.img
The redirection is required as
-x extracts to stdout.
If you'd like to list contents of a folder in the ISO:
isoinfo -i image.iso -l
Directory listing of / d--------- 0 0 0 2048 0 1900 [ 26 02] . d--------- 0 0 0 2048 0 1900 [ 26 02] .. d--------- 0 0 0 2048 Feb 6 2010 [ 27 02] i386 ...
I found a new best way: using
No need to have root access. I've tried
file-roller, both of them don't work here.
xorriso is an open-source program, so you can download the source codes if you don't have it installed by default.
If you haven't installed it, please download the source codes here: https://www.gnu.org/software/xorriso/
The steps are:
tar zxvf xorriso-1.4.6.tar.gz cd xorriso-1.4.6 ./configure make cd xorriso pwd
Add the output directory into environment variable
Then, you can use it to extract an iso file:
xorriso -osirrox on -indev image.iso -extract / extracted_path
You just need to modify
extracted_path to make it work on your system.
Most of the above solutions make you extract the iso content, but if the content is large it will take lot of space.
A better solution would be to do the actual mounting of the iso image, and thanks to FuseISO that is possible without root access (but you would still need to ask the admin to install FuseISO if it is not already installed, in ubuntu
sudo apt-get install fuseiso)
Once you have FuseISO installed in the machine you can:
# For user to mount an iso file: mkdir ~/iso fuseiso ~/my_iso.iso ~/iso # For user to unmount an iso file: fusermount -u ~/iso
If you can mount FUSE filesystems, FuseISO is an option for mounting the image.