Bash Utility for Creating Stage 4 Tarballs
Branch: master
Clone or download
Pull request Compare This branch is 3 commits ahead, 1 commit behind TheChymera:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is a bash script to create stage 4 tarballs either for the running system, or a system at a specified mount point. The script is a new edition of an earlier mkstage4 script by Greg Fitzgerald (unmaintained as of 2012) which is itself a revamped edition of the original mkstage4 by Reto Glauser (unmaintaied as of 2009).

More information on mkstage4 can be found on its own Chymeric Tutorials article: mkstage4 - Stage 4 Tarballs Made Easy.

Chinese Introduction 中文说明


The script can be run directly from its containing folder (and thus, is installed simply by downloading or cloning it from here - and adding run permissions):

git clone /your/mkstage4/directory
cd /your/mkstage4/directory
chmod +x

For Gentoo Linux and Derivatives, mkstage4 is also available in Portage via the chymeric overlay (which can be enabled with just two commands, as seen in the README). After you have enabled the overlay, just run the following command:

emerge app-backup/mkstage4


If you are running the script from the containing folder (first install method) please make sure you use the ./ command instead of just mkstage4!

Archive your current system (mounted at /):

mkstage4 -s archive_name

Archive system located at a custom mount point:

mkstage4 -t /custom/mount/point archive_name

Command line arguments: [-q -c -b -l -k -p] [-s || -t <target-mountpoint>] [-e <additional excludes dir*>] <archive-filename> [custom-tar-options]
  -q: activates quiet mode (no confirmation).
  -c: excludes connman network lists.
  -b: excludes boot directory.
  -l: excludes lost+found directory.
  -p: compresses parallelly using pbzip2.
  -e: an additional excludes directory (one dir one -e).
  -s: makes tarball of current system.
  -k: separately save current kernel modules and src (smaller & save decompression time).
  -t: makes tarball of system located at the <target-mountpoint>.
  -h: displays help message.

Extract Tarball

Tarballs created with mkstage4 can be extracted with:

tar xvjpf archive_name.tar.bz2

If you use -k option, extract src & modules separately

tar xvjpf archive_name.tar.bz2.kmod
tar xvjpf archive_name.tar.bz2.ksrc

If you have install pbzip2, you can extract parallelly with:

tar -I pbzip2 -xvf archive_name.tar.bz2


  • Bash - in Portage as app-shells/bash
  • tar - in Portage as app-arch/tar
  • pbzip2 (optional,if it's installed archive can be compressed parallelly) - in Portage as app-arch/pbzip2

Please note that these are very basic dependencies and should already be included in any Linux system.

Released under the GPLv3 license. Project led by Horea Christian (address all correspondence to: