У меня есть большой файл ISO на сервере, и мне нужно получить доступ к файлу в нем, не имея root-доступа. Таким образом, я не могу просто смонтировать его. Что я должен сделать, чтобы иметь возможность извлечь ISO на LInux без рут-доступа?
8 ответов
Если установлен 7zip, это действительно просто:
7z x Your.iso -oWhere/You/Want/It/Extracted/To
чтобы извлечь весь ISO.
Многие инструменты GUI, такие как файловый ролик, будут использовать isoinfo в фоновом режиме.
Вы можете извлечь один файл из ISO, например так:
isoinfo -i image.iso -x /isolinux/initrd.img > initrd.img
Перенаправление требуется как извлечение -x
в стандартный вывод.
Если вы хотите перечислить содержимое папки в 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 ...
Я нашел новый лучший способ: с помощью 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/
Если у вас есть доступ к GUI, щелкните правой кнопкой мыши по iso и выберите «Открыть с помощью Archive Manager ...» или просто запустите:
file-roller -e /path/to/extract/to /path/to/iso
Если у вас установлен 7-zip
или unrar
вы можете использовать для распаковки iso.
Если вы можете монтировать файловые системы FUSE, FuseISO - это опция для монтирования образа.
Большинство из вышеперечисленных решений заставляют вас извлекать ISO-контент, но если он большой, он займет много места.
Лучшим решением было бы выполнить фактический монтаж iso-образа, и благодаря FuseISO это возможно без корневого доступа (но вам все равно нужно попросить администратора установить FuseISO, если он еще не установлен, в ubuntu 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
Вам не нужно монтировать его. ISO, как и любой другой файл хранения, как .zip. Существует множество специфических для iso инструментов для выполнения трюка, который вы должны быть в состоянии скомпилировать как пользователь, но самый простой способ - это сделать:
file-roller -h filename.iso