vasi / squashfuse

FUSE filesystem to mount squashfs archives
Other
286 stars 66 forks source link
hacktoberfest
     squashfuse - Mount SquashFS archives using FUSE

           https://github.com/vasi/squashfuse

Squashfuse lets you mount SquashFS archives in user-space. It supports almost all features of the SquashFS format, yet is still fast and memory-efficient. So that everyone can use it, squashfuse supports many different operating systems and is available under a permissing license.

SquashFS is an efficiently compressed, read-only storage format. Support for it has been built into the Linux kernel since 2009. It is very common on Live CDs and embedded Linux distributions.

Quick start: $ ./configure && make $ ./squashfuse foo.squashfs mountpoint

  1. Table of contents

  2. Introduction

  3. Table of contents

  4. Getting started

    • System requirements
    • Getting the source
    • Building
    • Usage
  5. About squashfuse

    • Is squashfuse for you?
    • What's included?
    • Features
    • Known bugs
  6. References

    • Licensing
    • Acknowledgements
    • Links
  7. Getting started

2a. System requirements

To build and use squashfuse, you must be able to use the terminal of your operating system.

Runtime requirements:

Build requirements:

To build from the development repository, rather than a tarball, you'll need:

Known fully-supported platforms:

For a precise list of packages you will need on your OS, and other platform notes, please see the file `PLATFORMS'.

2b. Getting the source

The squashfuse distribution can be downloaded from SourceForge: https://sourceforge.net/projects/squashfuse/files/

The development repository uses git, at GitHub: http://github.com/vasi/squashfuse

2c. Installation

Squashfuse is built with the usual `configure && make'. If you need more detailed instructions:

  1. Ensure you're at your terminal, in the directory containing this README.

  2. (if needed) If the file configure' is already present, skip this step. Otherwise, run./autogen.sh' to generate one.

  3. Run ./configure' to set up the build. You can find useful configuration options in the fileCONFIGURATION', or by running `./configure --help'.

    If configure fails, check that you really have all the requirements installed. You may also want to check the `PLATFORMS' file to see if there are any special notes for your operating system.

  4. Run make' to buildsquashfuse'.

  5. (optional) If you want to use squashfuse in this directory, that's ok. But if you'd rather install it, run make install'. If you need root privileges,sudo make install' may work.

2d. Example: Ubuntu

For example on Ubuntu 22.04:

$ sudo apt install gcc make pkg-config libfuse3-dev \ zlib1g-dev liblzo2-dev liblzma-dev liblz4-dev libzstd-dev \ automake autoconf libtool \ fuse3 fio squashfs-tools $ ./autogen.sh $ ./configure $ make -j4 $ make check $ sudo make install

2e. Example: NixOS

For example on NixOS:

$ nix-shell $ ./autogen.sh $ ./configure $ make -j4

To install to your system, a custom Nix package should be built. Otherwise, you can simply move the binaries to `~/.local/bin'

2f. Example: macOS

On macOS, for example, install macFUSE, and then:

$ brew install autoconf automake pkg-config libtool lzo xz $ ./autogen.sh $ ./configure --prefix=/usr/local/ \ --with-lzo=/usr/local/Cellar/lzo/2.10 \ --with-xz=/usr/local/Cellar/xz/5.4.4 $ make -j $ make check $ make install

2g. Usage

You'll need a SquashFS archive to use squashfuse. If you don't already have one, you can create one using the `mksquashfs' utility from the squashfs-tools project.

To create a SquashFS archive: $ mksquashfs DIRECTORY ARCHIVE

To mount a SquashFS archive with squashfuse: $ squashfuse ARCHIVE MOUNTPOINT

To unmount when you're done: $ umount MOUNTPOINT # On Mac/BSD $ fusermount -u MOUNTPOINT # On Linux

For more options, see the man page squashfuse(1).

  1. About squashfuse

3a. Is squashfuse for you?

Squashfuse is a great option if you have a SquashFS archive, and:

Squashfuse is probably not the right tool for the job, if:

If you don't yet use SquashFS, consider starting, now that squashfuse exists. For many uses, the chief drawbacks of SquashFS were requiring Linux and root access, but squashfuse has that covered.

3b. What's included?

Squashfuse currently comprises three programs:

3c. Features

Squashfuse supports the following SquashFS features:

Squashfuse is missing the following features:

3c. Known bugs

  1. References

4a. Licensing

Squashfuse is copyright (c) 2012-2014 Dave Vasilevsky dave@vasilevsky.ca Squashfuse is distributed under the 2-clause BSD license. See the file LICENSE for details.

4b. Acknowledgements

Thanks to:

4c. Links