LINUX.ORG.RU

Как сделать mount или fuseiso ISO с UDF?

 


0

1

Пытаюсь смонтировать образ iso...

sudo mount -o loop -t udf,iso9660 file.iso ~/mnt

И как не бейся...

mount: mount failed: Операция не позволена.



fuseiso -p file.iso ~/mnt

Монтируется, но вижу только один файл readme.txt с содержимым:

This disc contains a «UDF» file system and requires an operating system that supports the ISO-13346 «UDF» file system specification.




ЧЯДНТ?

★★★

Последнее исправление: hikikomori (всего исправлений: 2)
Ответ на: комментарий от Chord

Переменной не было, назначил, повторил. Эффект прежний — «Операция не позволена».
Пока обошёлся 7z x file.iso, но нужно именно смонтировать.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Что значит «переменной не было»? Это тащемта опция ядра, необходимая для сборки.

Проверил у себя вашу команду - всё работает.

Вы не указали ни систему, ни версию ядра, попробуйте сделать так:

sudo lsmod | grep udf

если пусто, то sudo modprobe udf

utanho ★★★★★
()
Ответ на: комментарий от hikikomori

Переменной не было, назначил, повторил. Эффект прежний — «Операция не позволена». Пока обошёлся 7z x file.iso, но нужно именно смонтировать.

Куда ты её назначил? Это не переменная, чтобы её назначать, это опция сборки ядра.

Нужно пересобрать ядро с активированной опцией CONFIG_UDF_FS, и загрузиться с новым ядром.

Chord ★★★★
()
Ответ на: комментарий от Chord

выполни от рута

zcat /proc/config.gz | grep CONFIG_UDF_FS

и посмотри выхлоп. Должно быть «y» или «m». Если «y» - значит в ядре есть встроенная поддержка UDF и монтироваться должно.

Если «m» - поддержка UDF выполнена в виде подгружаемого модуля, и нужно его подгрузить как указали выше: sudo modprobe udf

Если CONFIG_UDF_FS не установлен (not set) - пересобирай ядро с активированной опцией

Chord ★★★★
()
Ответ на: комментарий от Chord

Судя по sudo, там скорее всего убунта или дебиан. Поэтому 90% что собрано модулем. Но это имхо.

utanho ★★★★★
()

Вы что-то делаете не так. К примеру, мне на «арче» достаточно установить пакеты fuseiso и udftools, после чего монтировать командой sudo mount -t auto iso.iso /mnt/isodir.

Korchevatel ★★★★★
()
Ответ на: комментарий от Korchevatel

Вы в своем арче что-то делаете не так. Gnome-disk-utility монтирует это всё по нажатию кнопки.

utanho ★★★★★
()
Ответ на: комментарий от utanho

uname -a
Linux hermitlair 4.19.158-1-MANJARO #1 SMP Wed Nov 18 22:18:06 UTC 2020 x86_64 GNU/Linux

grep udf не пусто. modprobe всё же пробовал - без эффекта.

Пакеты fuseiso и udftools уже стоят...

hikikomori ★★★
() автор топика
Ответ на: комментарий от Chord

А... В баше попробовал) Из-за этой фигни ядро пересобирать... Иначе никак?

CONFIG_UDF_FS=m

sudo modprobe udf я пробовал, не помогло.

hikikomori ★★★
() автор топика
Ответ на: комментарий от Korchevatel

Пакеты fuseiso и udftools уже стоят... И у меня manjaro, почти Arch.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

sudo modprobe udf я пробовал, не помогло

Что значит не помогло? Модуль загрузился? Или modprobe какую-то ошибку выдает? B что говорит lsmod после подгрузки модуля?

Если у тебя CONFIG_UDF_FS=m то ядро пересобирать не надо. Достаточно загрузить модуль. Если модуль udf загрузился, то при следующих загрузках он будет подгружаться автоматом. Достаточно первый раз вручную его загрузить.

Chord ★★★★
()
Ответ на: комментарий от hikikomori

после modprobe udf проверить наличие udf в списке поддерживаемых ядром файловых систем

lenn@homl:~$ cat /proc/filesystems | grep udf
lenn@homl:~$ sudo modprobe udf
[sudo] пароль для lenn: 
lenn@homl:~$ cat /proc/filesystems | grep udf
        udf

потом уже спробовать смонтировать
sudo mount -t auto iso.iso /mnt/isodir

pfg ★★★★★
()
Ответ на: комментарий от Chord

Модуль уже был загружен, но ещё раз попробовал выполнить команду. ОК. Не помогло в монтировании..

lsmod |grep udf
udf                   110592  0
crc_itu_t              16384  1 udf


Спасибо, попробую обновиться-перезагрузиться, всё как на венде) авось поможет.

hikikomori ★★★
() автор топика
Ответ на: комментарий от pfg

Всё так и делал, и сейчас ещё раз попробовал, grep находит udf.
А вот монтировать отказывается. " mount failed: Операция не позволена."

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

«Операция не позволена» это уже не к udf, надо права смотреть.

Если монтируется от рута в папку ~/mnt (=/root/mnt), то проверьте наличие папки и права на нее. И в каких группах пользователь состоит.

Ох уж эта манжара.

utanho ★★★★★
()
Ответ на: комментарий от utanho

Ох уж другие дистрибутивы.
А почему только сейчас обратили внимание на «Операция не позволена»? Я же в первом сбщ про это написал.
Что с sudo, что без одинаково. Не думаю, что дело в правах на папку. Такая простая задача, iso смонтировать, но udf и оппаньки!

hikikomori ★★★
() автор топика
Ответ на: комментарий от utanho

На права надо было бы смотреть при «Permission denied» («Отказано в доступе»), а «Операция не позволена» («Operation not permitted») - это именно отказ одного из драйверов в цепочке.

но вижу только один файл readme.txt с содержимым:

This disc contains a «UDF» file system and requires an operating >>system that supports the ISO-13346 «UDF» file system specification.

генерируется fuse и говорит о том же.
М.б., попробовать "-o loop,ro"?

ABW ★★★★★
()

У меня так и не получилось воспроизвести вашу ситуацию ни на Arch(5.4), ни на Debian(4.19).

Пардон, я не спец, просто пытаюсь в чужие вопросы играть тут на LOR в меру сил и в порядке ликбеза. Поскольку своих вопросов пока нет.

По вашему вопросу наигралось так:

  • mount сам определяет FS и подгружает необходимые модули ядра через blkid
  • -> можно попробовать blkd <ваш_файл>.iso, чтобы убедиться в его UDF
  • вручную - необязательно modprobe udf и modprobe loop - они сами должны появиться. Оба.
  • -> если появляются (или уже были) эти модули в lsmod, значит проблема дальше

То, что вы видите под fuseiso файл readme.txt - это просто кусочек в формате iso9660. Fuse само понимает, что не может UDF и монтирует то, что может с гибридного образа. А там это сообщение. Можете проверить через sudo mount -o loop -t iso9660 file.iso. Увидите тот же текст. (у меня такие гибридные образы нашлись только от офтопика)

Единственное что в голову приходит - а может и правда ваш UDF сломан? Вы его просто udfinfo file.iso пытались смотреть? udfinfo с него считывает что-нибудь осмысленное?

Toxo2 ★★★★
()
Ответ на: комментарий от Toxo2

Спасибо за ответ!

Да, именно так.

sudo mount -o loop -t iso9660 file.iso ~/mnt
mount: ~/mnt: WARNING: source write-protected, mounted read-only.
cat ~/mnt/readme.txt 
This disc contains a "UDF" file system and requires an operating system that supports the ISO-13346 "UDF" file system specification.


> можно попробовать blkd <ваш_файл>.iso, чтобы убедиться в его UDF

blkid file.iso 
file.iso: UUID="5ecb...93d1" LABEL="..." BLOCK_SIZE="2048" TYPE="udf"




а может и правда ваш UDF сломан?

Как бы это проверить?

Вы его просто udfinfo file.iso пытались смотреть?

Да, выдаёт многострочный отчёт параметр=значение.


Я пока сломал голову, что это может быть.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Может попробуем сравнить вывод udfinfo?

...
vid=GSP1RMCPRFRER_RU_DVD
vid=UDF Volume
vsid=MS UDFBridge
fsid=GSP1RMCPRFRER_R
fullvsid=b8f7d600MS UDFBridge
winserialnum=0xea6fb77e
blocksize=2048
blocks=1207023
usedblocks=1206719
freeblocks=0
behindblocks=0
numfiles=877
numdirs=201
udfrev=1.02
udfwriterev=1.02
integrity=closed
accesstype=readonly
softwriteprotect=no
hardwriteprotect=no
start=16, blocks=6, type=VRS
start=256, blocks=1, type=ANCHOR
start=257, blocks=16, type=MVDS
start=273, blocks=1, type=LVID
start=275, blocks=16, type=RVDS
start=304, blocks=1206719, type=PSPACE
start=1207022, blocks=1, type=ANCHOR

У вас нет каких-то подозрительных отличий? Где-нибудь в районе udfrev, например?

Toxo2 ★★★★
()
Ответ на: комментарий от Toxo2

udfinfo: Warning: Partition Space overlaps with other blocks
label=......
uuid=5ecb94......
lvid=.....
vid=......
vsid=
fsid=......
fullvsid=5ECB94...
winserialnum=0x...
blocksize=2048
blocks=2177904
usedblocks=2177647
freeblocks=0
behindblocks=0
numfiles=969
numdirs=104
udfrev=1.02
udfwriterev=1.02
integrity=closed
accesstype=readonly
softwriteprotect=yes
hardwriteprotect=yes
start=16, blocks=6, type=VRS
start=32, blocks=16, type=MVDS
start=48, blocks=16, type=RVDS
start=64, blocks=1, type=LVID
start=256, blocks=1, type=ANCHOR
start=257, blocks=2177647, type=PSPACE
start=2177903, blocks=1, type=ANCHOR

hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 1)
Ответ на: комментарий от hikikomori

Мда, так понятней не стало )

Вроде всё такое похожее.

Вообще единственное место на которое бы у меня руки чесались (если уж сил не было бы терпеть как хочется влезть любым способом) - в файле /sources/0-Manjaro-0/linux419/src/linux-4.19/fs/udf/file.c в строках 187-190

if (inode_permission(inode, MAY_READ) != 0) {
 udf_debug("no permission to access inode %lu\n", inode->i_ino);
 return -EPERM;
}
закомментировал бы, пересобрал и посмотрел бы что получилось.

Это, прямо сказать, пальцем в небо (т.е. говорю ерунду). Но других мыслей пока нет.

Toxo2 ★★★★
()
Ответ на: комментарий от Toxo2

Если у вас будет желание - попробуйте сравнить свой

# strace mount -o loop -t udf  file.iso /mnt/A
с моим: https://pastebin.com/ZVJicAnj

Этот мой «file.iso» - нашел у себя наиболее похожий на ваш. Тоже с Partition Space overlaps with other blocks. И он - нормально монтируется.

Точку монтирования, конечно, укажите свою.

Может так будет видно, где он вам отказывает.

Toxo2 ★★★★
()
Последнее исправление: Toxo2 (всего исправлений: 1)

Кстати, а это принципиальный момент, монтировать в /root/mnt?

Просто /mnt не устраивает?

utanho ★★★★★
()
Ответ на: комментарий от Toxo2

в файле /sources/0-Manjaro-0/linux419/src/linux-4.19/fs/udf/file.c в строках 187-190

А где вы его нашли?Это сорцы ядра? Не вариант, обновится и всё коту в /dev/null.

Может можно какой другой командой связанной с ФС udf протестировать его работу? Какая-то непонятная дичь.... Я же смог замаунтить вторым методом, но он почему-то эту udf не подхватил.

hikikomori ★★★
() автор топика
Ответ на: комментарий от Toxo2

Посмотрел strace. У меня кажется sudo сломалось. Везде работает, а с mount сломалось. Через su зашёл, там маунтится, но также виден только один файл, а не UDF.

hikikomori ★★★
() автор топика

попробуй другой образ с udf протестировать, может у тебя образ битый (бывало такое) P.S. про права говорили уже? попробуй сменить/смонтировать от рута

d09
()
Последнее исправление: d09 (всего исправлений: 1)
Ответ на: комментарий от utanho

У меня смогло.
Удалил невзирая на зависимости, поставил из-под su, всё равно ошибки:
https://pastebin.com/qgjtGzpC



sudo su делает.

Я в группах wheel lp sys network power autologin, и мой юзернаме.

hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 1)
Ответ на: комментарий от utanho

Нет:

$ yay -S udisks
:: Проверка конфликтов...
:: Проверка внутренних конфликтов...
[Repo Make:1]  intltool-0.51.0-6
[Aur:1]  udisks-1.0.5-4

==> Удалить зависимости для сборки после установки? [д/Н] 

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Удалил невзирая на зависимости, поставил из-под su, всё равно ошибки: https://pastebin.com/qgjtGzpC

Гугл говорит такое по вашим ошибкам: https://www.reddit.com/r/archlinux/comments/i6orho/unsafe_path_transition/

Проверьте

ls -ld /

При необходимости поправьте

chown root:root /

Toxo2 ★★★★
()
Ответ на: комментарий от hikikomori

проблема mount осталась

У меня фантазия пока кончилась.

Может стоит вернуться к самому началу?

Создать свой собственный диск с UDF (в интернетах полно руководств). Убедиться, что свежесозданный диск монтируется на этой же машине. Почитать его udfinfo. Сравнить с проблемным...

Toxo2 ★★★★
()
Ответ на: комментарий от hikikomori

и кстати

sudo починил)

раз уж у вас там что-то с корнем было неладно - наверное стоит проверить отдельно ещё и

ls -ld /tmp
что там Sticky Bit стоит. Т.е. должно быть drwxrwxrwt - вот эта «t» в конце важна для /tmp

Toxo2 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.