2010-05-10 3 views
5

(squashfs là một hệ thống tập tin nén - http://en.wikipedia.org/wiki/SquashFS)Đọc một squashfs lưu trữ

Tôi đang tìm kiếm một cách để đọc một squashfs hệ thống tập tin từ một chương trình. Cho đến nay, tôi đã biết về các trình điều khiển hạt nhân cho nó, nhưng tôi chắc chắn rằng một thư viện không gian người dùng cho nó phải tồn tại ở đâu đó. Bất kỳ ngôn ngữ nào cũng được, nhưng C được ưu tiên.

Chỉ cần gắn hệ thống tệp và sử dụng nó theo cách kỹ thuật có thể, nhưng tôi muốn tránh lộ trình đó vì ứng dụng tôi đang xem sẽ liên quan đến việc làm việc với ít nhất vài chục lưu trữ tại bất kỳ thời điểm nào.

Trả lời

4

Tôi vừa tải xuống mã tarball từ squashfs.sourceforce.net và không có mã hạt nhân trong đó. Chỉ mã vùng người dùng trong C cho mksquashfsunsquashfs.

Bạn có thể trích xuất mã từ unsquashfs.

+0

Trình điều khiển SquasFS đã được sắp xếp thành sớm sẽ là 2.6.34 –

4

Có một công cụ gọi là unsquashfs để chiết xuất hình ảnh squashfs giống như tar. Nó phải được đi kèm với mksquashfs

0

mksquashfsunsquashfs được đóng gói như là "squashfs-công cụ" trên hệ thống Red Hat của tôi:

Name  : squashfs-tools 
Group  : System Environment/Base 
Size  : 160923 
URL   : http://squashfs.sf.net 
Summary  : squashfs utilities 
Description :

squashfs là một nén cao hệ thống tập tin chỉ đọc cho Linux. Gói này chứa các tiện ích để thao tác hệ thống tệp 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 

Được cảnh báo rằng cán nát và unsquashing là đau đớn chậm. Phải mất vài phút cho một tập lệnh mà tôi đã viết để unsquash, sửa đổi và tái squash một tệp 87M stage2.img.

1

Tôi đã có một số mã ruby ​​rằng sẽ làm điều đó: https://github.com/vasi/squash.rb

Nó khá thô, nhưng nó hoạt động tốt. Có lẽ tôi sẽ biến nó thành một thư viện C được thiết kế tốt hơn một ngày nào đó.