Skip to content

IACA-Electronique/iaca-image-shrinker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IACA image shrinker

Powered by

IACA ELECTRONIQUE LOGO


📄 Purpose

This script is designed to minimize the size of a Linux image, making it more efficient for storage and distribution. By following a series of optimization steps, thus reducing the image to its optimal size without compromising its functionality.

⚠️ Requirements

  • MBR partition table only
  • Partition count need to be between 1 and 4 (include)
  • Support only FAT and EXT4 file system

📋️ Targets supported

  • Olimex A20 (olimex-a20)
  • Raspberry (raspberry)

▶️ Usage

From Docker Hub (easy)

docker run --privileged -v /dev:/dev \
          -it \
          -v $(pwd):/mnt \
          iacaelectronique/iaca-image-shrinker:latest -o /mnt/<output-image> -t <target> /mnt/<input-img>

Example

ls
# Result
# 2021-05-07-raspios-buster-arm64.img

docker run --privileged \
          -v /dev:/dev \
          -it \
          -v $(pwd):/mnt \
          iacaelectronique/iaca-image-shrinker:latest -o /mnt/output.img -t raspberry /mnt/2021-05-07-raspios-buster-arm64.img

ls
# Result
# 2021-05-07-raspios-buster-arm64.img   output.img

Docker Hub page


From local build Docker

docker --debug build -t shrinker .
docker run --privileged -v /dev:/dev \
          -it \
          -v $(pwd):/mnt \
          shrinker -o /mnt/<output-image> -t <target> /mnt/<input-img>

Example

ls
# Result
# 2021-05-07-raspios-buster-arm64.img

docker --debug build -t shrinker .
docker run --privileged \
          -v /dev:/dev \
          -it \
          -v $(pwd):/mnt \
          shrinker -o /mnt/output.img -t raspberry /mnt/2021-05-07-raspios-buster-arm64.img

ls
# Result
# 2021-05-07-raspios-buster-arm64.img   output.img

From git (expert)

git clone https://github.com/IACA-Dev/iaca-image-shrinker.git
cd iaca-image-shrinker/scripts
chmod +x iaca-image-shrinker.sh

iaca-image-shrinker.sh  -o "output.img" -t "target" "source img"

⚠️

Using this way can lead to dependency issue in case where your system doesn't have all required program.

➡️ It's commended to use Docker Hub usage.

Examples

# Olimex A20
iaca-image-shrinker.sh  -o output.img -t olimex-a20 ./official-olimex-a20-base.img

# Raspberry
iaca-image-shrinker.sh  -o output.img -t raspberry ./2021-05-07-raspios-buster-arm64.img

# No specific target (work only on target without bootloader in image)
iaca-image-shrinker.sh  -o output.img ./input-image.img

🧑‍🤝‍🧑 Contributors

About

This script is designed to minimize the size of a Linux image, making it more efficient for storage and distribution.

Topics

Resources

License

Stars

Watchers

Forks

Contributors