Как извлечь ISO в Linux без рут-доступа

22

У меня большой ISO-файл на сервере, и мне нужно получить доступ к нему, не имея root-доступа. Таким образом, я не могу просто смонтировать его. Что я должен сделать, чтобы иметь возможность извлечь ISO на LInux без рут-доступа?

Тамара Вийсман
источник

Ответы:

23

Если установлен 7zip, это действительно просто:

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

чтобы извлечь весь ISO.

API-Beast
источник
3
Поскольку у вопроса ОП есть тег "linux", важно заявить, что это не сработает 7za(CentOS); 7zaне поддерживает архивы ISO. Вы можете проверить поддерживаемые форматы с 7za i.
Jongosi
К вашему сведению, 7zкажется, достаточно умен, чтобы извлечь непосредственно из СМИ 7z x /dev/cdrom. У меня очень глупая проблема, что мои файлы показывают 0 байтов при монтировании. Таким образом, извлечение было обходным путем.
Акостадинов
17

Многие инструменты GUI, такие как файловый ролик, будут использовать isoinfo в фоновом режиме.

Вы можете извлечь один файл из ISO, например так:

isoinfo -i image.iso -x /isolinux/initrd.img> initrd.img

Перенаправление требуется как -xвыдержки на стандартный вывод.

Если вы хотите перечислить содержимое папки в 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 6 февраля 2010 г. [27 02] i386
...
Джон Т
источник
Чтобы использовать isoread для извлечения всех файлов, попробуйте этот скрипт: github.com/goblinhack/isoread
Нил МакГилл,
@NeilMcGill не работает здесь. Много ошибок.
MewX
Для ISO с расширениями Rock Ridge требуются имена файлов в верхнем регистре с добавлением «; 1» в конце. Используйте -Rl, чтобы получить список файлов в этой форме.
1
6

Я нашел новый лучший способ: с помощью 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/

MewX
источник
4

Если у вас есть доступ к GUI, щелкните правой кнопкой мыши по iso и выберите «Открыть с помощью Archive Manager ...» или просто запустите:

file-roller -e /path/to/extract/to /path/to/iso
BloodPhilia
источник
1

Если у вас есть 7-zipили unrarустановлены, вы можете использовать для извлечения ISO.

Nifle
источник
Для чего нужен синтаксис unrar? Я думаю, что это только для Winrar
golimar
1

Если вы можете монтировать файловые системы FUSE, FuseISO - это опция для монтирования образа.

Райан К. Томпсон
источник
1

Большинство из вышеперечисленных решений заставляют вас извлекать 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
Антонелло
источник
0

Вам не нужно монтировать его. ISO, как и любой другой файл хранения, как .zip. Существует множество специфических для iso инструментов для выполнения трюка, который вы должны быть в состоянии скомпилировать как пользователь, но самый простой способ - это сделать:

file-roller -h filename.iso
Jarvin
источник