Как заменить файл в файле ISO без необходимости рута из командной строки

13

У меня есть файл ISO, и я хочу изменить содержимое одного из файлов в нем из командной строки. Я знаю, что я могу использовать

sudo mount -o loop <etc...>
rsync -ra a b
edit b/file
mkisofs <options>

но мне нужно решение, которое не требует прав root.

martinhans
источник
2
Это расскажет, как и многое другое: unix.stackexchange.com/questions/96625/… Технически это не вопрос об Ubuntu, а о Linux, так что у нашего родственного сайта будет больше хитов на этом;)
Rinzwind
Спасибо, но я надеялся найти способ сделать распаковку таким образом, чтобы избежать одновременного монтажа. В конце концов, ISO это просто файл, содержащий другие файлы.
martinhans
Спасибо за указатель на unix.stackexchange.com, но я думаю, что уже слишком поздно, чтобы переместить его. meta.stackexchange.com/questions/64068/…
martinhans
ISO - это файловая система. Он больше похож на жесткий диск, чем на файл (отсюда и необходимость его монтировать;)) Перемещение не требуется; он получит ответ и / или будет закрыт вовремя;)
Rinzwind
1
Вы можете извлечь содержимое ISO напрямую, используя 7zip.
Эндрю Медико

Ответы:

22

Мне наконец удалось найти ответ самому. Я могу использовать fuse для монтирования файла ISO, в репозиториях Ubuntu есть даже инструмент для этого:

sudo apt-get install fuseiso

Тогда я могу сделать:

fuseiso -p file.iso mounted_iso/
rsync -ra mounted_iso/ copy/
fusermount -u mounted_iso

chmod -R +w copy/
edit copy/file

mkisofs <many options> -o remastered.iso copy/
martinhans
источник
Не забывайте высказываться и принимать. Вот +1 от меня :)
Rinzwind
Кажется справедливым, что у других есть два дня, чтобы попытаться найти еще лучшее решение. Например, может случиться так, что кто-то может найти решение, которое даже не потребует предохранителя.
Kasperd