# Installation

Stressant is a Python program that can be installed in the usual way from PyPI:

    pip install stressant

It can also be installed from source:

    ./setup.py install

If you are running Debian “buster” (10) or later, you can also install the Debian package:

    apt install stressant

## Downloading images

Stressant is also designed to boot from a live CD or USB stick. It can also boot from the network with a proper configuration.

Pre-built images are available in the Grml Linux Linux distribution, in the “FULL” images. In particular, see the daily images for the latest.

## Installing the image

You can deploy the ISO on a USB stick with the following command on most UNIX systems, where `/dev/sdX` is the device for your USB key:

    sudo cp grml96-full_sid_latest.iso /dev/sdX

To get better progress information, you can use the fantastic `pv` package:

    pv grml96-full_sid_latest.iso | sudo dd of=/dev/sdX conv=fdatasync

For other operating systems, you may try those different options:

- For Debian: see the official Debian documentation

- For Ubuntu: try the Ubuntu Startup Disk Creator

- For Fedora and derivatives: try the Media Writer or follow those instructions

- For Microsoft Windows: use the win32diskimager software

- For all platforms: maybe also try Etcher if the above is too complicated

  > Note: it seems that Mac OS is constantly changing how this works. There used to be support for burning ISO images directly in the Disk Utility, but that feature was removed. You may want to try this approach if Etcher doesn’t work for you.

  > Note: this should be moved in the main Grml documentation.

## Booting images using PXE

Inside the ISO file, Grml is build as a squashfs and one can use the `fetch=URL` argument to fetch that squashfs over the network. Those german instructions show how to extract the squashfs from the image and set it up in a PXE menu, but basically, what you need is:

    kernel grml/2008.11/small-linux26
    append initrd=grml/2008.11/small-minirt26.gz boot=live fetch=http://grml.example.com/grml/grml-small.squashfs

The `small-*` kernel and initrd come from the grml-terminalserver project.

Netbooting images is very useful in all sorts of situations. While Grml’s grml-terminalserver tool helps in automatically configure a PXE server, you may want to configure your own, more complete setup. See for now the Koumbit wiki for PXE configuration documentation.

> I have done xperimentes to boot ISO images over the network but those have been generally unsuccessful.

> Note: this should be moved in the main Grml documentation.

> Also note that you can directly boot into Grml and/or Stressant using a tool like netboot.xyz and iPXE.

## Testing images in qemu

A good way to test Stressant without having to reboot your computer is with an emulator like Qemu. This will load the 64 bit image in a KVM-enabled 512 MB image running only on the serial console:

    qemu-system-x86_64 -m 512 -enable-kvm \
        -serial mon:stdio -display none \
        grml96-full-stressant.iso

See also the Qemu cheat sheet in the Koumbit wiki.