Чтение архива SquashFS

(SquashFS - это сжатая файловая система - http://en.wikipedia.org/wiki/SquashFS)

Я ищу способ прочитать файловую систему SquashFS из программы. До сих пор я знал о драйверах в ядре для него, но я уверен, что библиотека пользовательского пространства для него должна где-то существовать. Любой язык будет в порядке, но C предпочтительнее.

Технически возможно просто смонтировать файловую систему и использовать ее таким образом, но я бы предпочел не использовать этот путь, потому что приложение, на которое я смотрю, предполагает работу как минимум с несколькими десятками архивов в любой момент времени.

4 ответа

Решение

Я только что скачал tar-код с сайта squashfs.sourceforce.net, и там нет кода ядра. Только код пользователя в C для mksquashfs а также unsquashfs,

Вы могли бы, вероятно, извлечь код из unsquashfs.

Есть инструмент под названием unsquashfs который извлекает изображение squashfs сродни tar, Это должно быть в комплекте с mksquashfs

У меня есть какой-то рубиновый код, который сделает это: https://github.com/vasi/squash.rb

Это довольно грубо, но работает отлично. Может быть, когда-нибудь я превращу ее в лучше спроектированную библиотеку Си.

mksquashfs а также unsquashfs упакованы как "squashfs-tools" в моей системе Red Hat:

Название: squashfs-tools
Группа: Системная среда / База
Размер: 160923
URL: http://squashfs.sf.net
Резюме: утилиты squashfs
Описание:

Squashfs - это высокосжатая файловая система только для чтения для Linux. Этот пакет содержит утилиты для работы с файловыми системами squashfs.

/sbin/mksquashfs
/usr/sbin/unsquashfs
/usr/share/doc/squashfs-tools-3.0
/usr/share/doc/squashfs-tools-3.0/ACKNOWLEDGEMENTS
/usr/share/doc/squashfs-tools-3.0/CHANGES
/usr/share/doc/squashfs-tools-3.0/COPYING
/usr/share/doc/squashfs-tools-3.0/PERFORMANCE.README
/usr/share/doc/squashfs-tools-3.0/README

Имейте в виду, что раздавливание и открепление мучительно медленны. Для сценария, который я написал, требуется несколько минут, чтобы отменить, изменить и повторно сжать 87M stage2.img файл.

Другие вопросы по тегам