Skip to content
Zack Didcott edited this page Apr 14, 2025 · 3 revisions

Installation

PyPI

  1. Install project: pip install igelfs

Source

  1. Clone the repository: git clone https://github.com/Zedeldi/igelfs.git
  2. Install project: pip install .
  3. or install dependencies: pip install -r requirements.txt

Usage

If the project is installed: igelfs-cli --help

Otherwise, you can run the module as a script: python -m igelfs.cli --help

Examples

View usage information: igelfs-cli --help

View information about filesystem: igelfs-cli info /path/to/filesystem

Create new filesystem with 256 sections: igelfs-cli new 256 /path/to/filesystem

Add partition of type 4 with minor 1 to filesystem: igelfs-cli add --type 4 /path/to/partition 1 /path/to/filesystem

Get boot_id from boot registry: igelfs-cli boot-registry get --key boot_id /path/to/filesystem

Get and decrypt Wi-Fi password from registry (requires root for device mapper and mount):

sudo igelfs-cli registry get \
  --decrypt \
  --key "network.interfaces.wirelesslan.device0.wpa.passphrase_crypt_password" \
  /path/to/filesystem

Get encryption key (as hexadecimal) for partition minor 255: igelfs-cli keys 255 --hex /path/to/filesystem

Update filesystem with firmware archive: igelfs-cli update /path/to/firmware /path/to/filesystem

Rebuild filesystem to target: igelfs-cli rebuild /path/to/target /path/to/filesystem

Extract partitions 1, 2 and 250-255 to directory: igelfs-cli extract --partitions 1,2,250-255 /path/to/directory/ /path/to/filesystem

Convert filesystem to GPT disk image (requires root for losetup): sudo igelfs-cli convert /path/to/target /path/to/filesystem

For more information about a specific sub-command, run igelfs-cli <command> --help

Logging

The log level can be specified with --log-level.

Use INFO for simple progress information. DEBUG will print a lot of output - you have been warned.

Binary

A static binary can be built, e.g. for running on IGEL OS without the required libraries/Python version, using PyInstaller and StaticX:

pyinstaller -F --name "igelfs-cli" igelfs/cli.py
staticx "igelfs-cli" "igelfs-cli-static"

Clone this wiki locally