How to Use the `unsquashfs` Command (with Examples)
- Linux
- December 17, 2024
The unsquashfs
command is a powerful utility for dealing with SquashFS filesystems, which are highly compressed and read-only filesystems typically used for software distribution and deployment in Linux environments. This command allows users to uncompress, extract, and list files in SquashFS filesystems, making it essential for anyone who needs to access or manipulate these types of compressed files. With unsquashfs
, you can efficiently extract the contents of a SquashFS file, analyze its structure, and inspect file attributes without requiring complete extraction.
Extracting a SquashFS Filesystem to a Directory Named squashfs-root
Code:
unsquashfs filesystem.squashfs
Motivation:
Extracting a SquashFS filesystem is a common task when you need to access or modify the files contained within a compressed filesystem image. By extracting it to a directory named squashfs-root
, you create an easily accessible folder in your current working directory. This is especially useful for developers or system administrators who need to inspect the files or make changes.
Explanation:
unsquashfs
: The command itself, which initiates the extraction process from a SquashFS archive.filesystem.squashfs
: The SquashFS file you’re extracting. This is the source file you want to open up and explore.
Example Output:
Parallel unsquashfs: Using 4 processors
1700 inodes (2300 blocks) to write
[==================================================================================================================================================|] 2300/2300 100%
created 1500 files
created 200 directories
created 50 symlinks
created 0 devices
created 0 fifos
Extracting a SquashFS Filesystem to a Specified Directory
Code:
unsquashfs -dest path/to/directory filesystem.squashfs
Motivation:
You may not always want to extract the files to the current working directory. With the -dest
option, you can specify an alternative location for the output, which is particularly convenient when organizing files or extracting large data sets to a designated area with more storage space.
Explanation:
-dest path/to/directory
: The-dest
flag indicates the destination directory for the extracted files. This allows you to direct where the extraction occurs.filesystem.squashfs
: The target SquashFS file to be extracted.
Example Output:
Parallel unsquashfs: Using 4 processors
1800 inodes (2400 blocks) to write
[==================================================================================================================================================|] 2400/2400 100%
created 1600 files
created 100 directories
created 100 symlinks
created 0 devices
created 0 fifos
Extracted to path/to/directory
Display the Names of Files During Extraction
Code:
unsquashfs -info filesystem.squashfs
Motivation:
When dealing with large filesystems, knowing which files are being extracted in real-time can be extremely helpful for tracking progress and verifying that specific files are part of the archive. This option is aimed at users who prefer transparency and wish to ensure the extraction process goes smoothly.
Explanation:
-info
: The flag for displaying file names during extraction. It provides real-time feedback as files are extracted.filesystem.squashfs
: The source SquashFS file to be processed.
Example Output:
Extracting file: file1.txt
Extracting file: file2.sh
Extracting file: file3.png
...
Display the Names and Attributes of Files During Extraction
Code:
unsquashfs -linfo filesystem.squashfs
Motivation:
Beyond just file names, there might be a need to view detailed file attributes like file permissions, sizes, and modification times during extraction. This option is perfect for users performing audits or needing detailed file information for maintenance tasks.
Explanation:
-linfo
: Thel
stands for long listing format, which is similar to thels -l
command. It outputs detailed file information.filesystem.squashfs
: The SquashFS file to be extracted.
Example Output:
-rw-r--r-- user/group 1048576 2023-10-01 12:00 file1.txt
-rwxr-xr-x user/group 4096 2023-10-01 12:10 file2.sh
Listing Files Inside the SquashFS Without Extracting
Code:
unsquashfs -ls filesystem.squashfs
Motivation:
Sometimes, you need to inspect the contents of a SquashFS archive without needing to extract the files. This command is useful for quick assessments and when verifying the integrity or contents of the archive without committing to full extraction.
Explanation:
-ls
: Lists the contents of the SquashFS file without extracting, akin to thels
command functionality.filesystem.squashfs
: The SquashFS archive to be inspected.
Example Output:
file1.txt
file2.sh
file3.png
directory/
Listing Files and Their Attributes Inside the SquashFS Without Extracting
Code:
unsquashfs -lls filesystem.squashfs
Motivation:
In situations requiring detailed review of file permissions, sizes, and other attributes without extraction, this option provides all necessary information efficiently. It’s ideal for audits and permissions checks before any data manipulation.
Explanation:
-lls
: Thel
stands for a long listing, offering an in-depth view of file attributes without extraction.filesystem.squashfs
: The SquashFS file to be explored.
Example Output:
-rw-r--r-- user/group 1048576 2023-10-01 12:00 file1.txt
-rwxr-xr-x user/group 4096 2023-10-01 12:10 file2.sh
drwxr-xr-x user/group 128 2023-10-01 12:20 directory/
Conclusion
The unsquashfs
command is a versatile tool necessary for extracting, inspecting, and managing SquashFS filesystems effectively. Whether you need basic extraction or detailed file information, unsquashfs
provides options that cater to a wide array of needs, making it indispensable for Linux users and administrators working with compressed filesystems.