squashfs-tools-4.4 (SOLVED)

Приветствую.
Стабилизировался squashfs-tools-4.4. Имеется архив squash, в нем каталоги и файлы. Теперь unsquashfs формирует дерево каталогов и распаковывает один из файлов. Все остальные файлы почему-то игнорирует - каталоги пустые. При этом возвращает код ошибки 1.
Это только у меня так происходит или у вас тоже?

Решилось установкой USE-флага xattr для пакета squashfs-tools.

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

Проверь свободное место и покажи всю команду с ключами.

...


guest@PC ~ $ mkdir 1
guest@PC ~ $ cd 1
guest@PC ~/1 $ mksquashfs /usr/portage/app-office off.sqsh
guest@PC ~/1 $ unsquashfs off.sqsh

В каталоге ~/1/squashfs-root пустые каталоги и один файл - Manifest.gz.

С версией 4.3 все в порядке - что запаковал, то и распаковал.

Повторил твою историю - все

Повторил твою историю - все нормально распаковалось:

~/1 $ unsquashfs off.sqsh
Parallel unsquashfs: Using 2 processors
279 inodes (279 blocks) to write

[=========================================================================================================================================================================================|] 279/279 100%

created 279 files
created 84 directories
created 0 symlinks
created 0 devices
created 0 fifos

~/1 $ du -sh squashfs-root/
1.8M	squashfs-root/

~/1 $ equery l sys-fs/squashfs-tools
 * Searching for squashfs-tools in sys-fs ...
[IP-] [  ] sys-fs/squashfs-tools-4.4:0

Видимо у тебя проблемы с портажем/библиотеками. Рекомендую перекомпилить все зависимости и сам пакет. Ну и, на всякий случай, покажи

df -h .
df -i .

Вот ведь...

SysA написал(а):
...
Видимо у тебя проблемы с портажем/библиотеками. Рекомендую перекомпилить все зависимости и сам пакет. Ну и, на всякий случай, покажи

df -h .
df -i .

То есть, только у меня. Вот ведь...

guest@PC ~ $ df -h .
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sda2          568G         438G  101G           82% /home
guest@PC ~ $ df -i .
Файловая система   Iнодов IИспользовано IСвободно IИспользовано% Cмонтировано в
/dev/sda2        37765120        160456  37604664             1% /home

Пошел собирать библиотеки. Спасибо за подсказку.

P.S. Пришлось поставить для squashfs-tools флаг xattr. По-другому никак.

Странно, что он не стоял!

Странно, что он не стоял! :)
Обычно он глобален. А чем он тебе не нравится? У тебя какой профиль, кстати?

...

В make.conf "xattr" отключен вместе с "acl".
Профиль 17.0.
А с флагом странность в том, что флаг работоспособности обозвали "xattr". :-D

Это не флаг

Это не флаг работоспособности, а необходимость программе иметь доступ к метаданным файловой системы! :)
И "acl" ты тоже зря отключил... и рекомендую перейти на 17.1 сейчас, а то позже может быть больше проблем... Но строго следуй инструкциям, а то можно сломать систему! Если что - можешь посмотреть здесь на форуме - я уже кого-то консультировал по поводу этого перехода.

...

Это не флаг работоспособности, а необходимость программе иметь доступ к метаданным файловой системы! :)

Да ладно смеяться-то. Предыдущая версия прекрасно обходится без доступа. И каталоги с одним файлом у программы получается распаковать без доступа. А тут - доступ подавай! К метаданным. Которых, к слову, может и не быть вовсе, это ж от файловой системы зависит. Следовательно - это как раз флаг работоспособности. Есть - работает, нет - делает вид, что работает. Скромно сообщая: 1. Что "1", почему "1" - не видать, не слыхать... Как в анекдоте, "- Приборы? - Двести. - Чего двести? - А что приборы?". Еще это "1" нужно не забыть отобразить, как результат команды, тоже ручками. :-D

И "acl" ты тоже зря отключил...

Не нужна.

и рекомендую перейти на 17.1 сейчас, а то позже может быть больше проблем...

Не нравится, что библиотеки для разных архитектур в одну кучу сваливают. Дело неизбежное, конечно. Если уж будет все слишком тупо и плохо - придется собрать систему заново с новым профилем.

Улучшения! :)

Улучшения! :) Может новая версия быстрее работает, зная структуру ФС. Надо бы в лог изменений глянуть.
А что касается библиотек, то я полагаю, что это подготовка к тому, что 32-бита скоро выкинут вообще...

Улучшения! :) Может новая

Улучшения! :) Может новая версия быстрее работает, зная структуру ФС. Надо бы в лог изменений глянуть.

Глядел я в лог. Там особо гордятся возвращаемой "1". Что без USE +xattr вся эта руда только кривляется и не работает - ничегошеньки нет. И вообще, нигде не натолкнулся на значения возвращаемых кодов. Скорее всего, плохо искал.

Багзиллы не нашел. А после такого хамского отношения к пользователям и не нужна та багзилла.

32 бита пусть выкидывают. Пока живут на свете дураки - нам жить обманом, стало быть, с руки. На дурака не нужен нож, - ему про биты в ухо льешь и делаешь, что хошь. :-D

?

Может новая версия быстрее работает, зная структуру ФС.

Как и какие свойства целевой файловой системы можно использовать при распаковке архива для увеличения скорости?

Провел эксперимент - при распаковке в tmpfs ситуация повторилась. Без флага "xattr" пишет, что распаковано куча файлов, куча каталогов, возвращает загадочное "1", реально делает каталоги и один файл.

Точно плохо искал! :) Вот

Точно плохо искал! :) Вот тебе объясняют зачем это нужно:

6. Unsquashfs is now more strict about error handling
-----------------------------------------------------

Unsquashfs splits errors into two categories: fatal errors and non-fatal
errors.  In this release a significant number of errors that were previously
non-fatal have been hardened to fatal.

Fatal errors are those which cause Unsquashfs to abort instantly.
These are generally due to failure to read the filesystem (corruption),
and/or failure to write files to the output filesystem, due to I/O error
or out of space.  Generally anything which is unexpected is a fatal error.

Non-fatal errors are generally where support is lacking in the
output filesystem, and it can be considered to be an expected failure.
This includes the inability to write extended attributes (xattrs) to
a filesystem that doesn't support them, the inability to create files on
filesystem that doesn't support them (i.e. symbolic links on VFAT), and the
inability to execute privileged operations as a user-process.

The user may well know the filesystem cannot support certain operations
and would prefer Unsquashfs to ignore then without aborting.

Т.е. цель была не скорость, а надёжность!

Ну и ещё:

Two new options have been added:

6.1. -ignore-errors

This makes Unsquashfs behave like previous versions, and treats more
errors as non-fatal.

6.2. -strict-errors

This makes Unsquashfs treat every error as fatal, and it will abort
instantly.

А ты -ignore-errors пробовал? Или "чукча не читатель..."(С)? ;)

А ты -ignore-errors пробовал?

А ты -ignore-errors пробовал?

Пробовал. Очевидно, это ключ игнорирования ключа игнорирования. Для надежности. :-D

Точно плохо искал! :) Вот тебе объясняют зачем это нужно: ...

Где значения кодов ошибок? Кроме сакрального "1" что-то бывает? Или оно жестко включено при отсутствии xattr, а для надежности иллюзии пользователю рассказывают, будто все распаковано? Это гениально: все распаковано, но только произошла некритическая ошибка - ничего не распаковалось, "1". :-D

Или "чукча не читатель..."(С)? ;)

Ситуацию можешь воспроизвести сам, достаточно собрать squashfs-tools без xattr. Ни на какие зависимости этот USE у него не влияет... Задолбало одно и то же переписывать. Собери и попробуй. Отпишись, если удастся распаковать два файла.

Коды ошибок можешь найти в

Коды ошибок можешь найти в исходниках.
А насчёт доков - так свободный софт хронически страдает недостатком и неполнотой документирования, ибо разрабам элементарно лень делать то, что им неинтересно. Можешь сделать доброе дело - разобраться, написать сам и отдать сообществу.
Играться же с тем, что по определению работать не должно, не вижу смысла.
Тем более, что у меня везде (чуть более 400 хостов, на которых из squashfs контейнеры стартуют) оба эти аттрибута используются. Потому как не локалхост! ;)

!

Можно подумать документация проприетарщины отличается Совершенством.

:wq
--
Live free or die

Совершенства вообще нет в

Совершенства вообще нет в реальном мире! :)
А при разработке любого коммерческого продукта написание документации есть обязательно.

:-D

USE-флаг, увечащий один из исполняемых файлов пакета squashfs-tools, называется "xattr", и это скотство начинается с версии 4.4. Об этом сабж. Приведен способ лечения. Темы больше не касаюсь.

SysA написал(а):
Тем более, что у меня везде (чуть более 400 хостов, на которых из squashfs контейнеры стартуют) оба эти аттрибута используются. Потому как не локалхост! ;)

У меня нет причин использовать xattr и acl независимо от количества хостов.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".