У меня большой ISO-файл на сервере, и мне нужно получить доступ к нему, не имея root-доступа. Таким образом, я не могу просто смонтировать его. Что я должен сделать, чтобы иметь возможность извлечь ISO на LInux без рут-доступа?
У меня большой ISO-файл на сервере, и мне нужно получить доступ к нему, не имея root-доступа. Таким образом, я не могу просто смонтировать его. Что я должен сделать, чтобы иметь возможность извлечь ISO на LInux без рут-доступа?
Ответы:
Если установлен 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
выдержки на стандартный вывод.
Если вы хотите перечислить содержимое папки в 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 ...
Я нашел новый лучший способ: с помощью 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
Если вы можете монтировать файловые системы 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
7za
(CentOS);7za
не поддерживает архивы ISO. Вы можете проверить поддерживаемые форматы с7za i
.