#!/bin/bash # todo: # offline option ## dd raw .img ## enum partitions ### file zero fill empty space of good partitions ### dd zero fill unformatted space and such ### xz compress # online option ## enum partitions ## attempt to mount all possible ## file zero fill them ## dd zero fill unformatted space ## take offline for xz inline rip set -e # fail explicitly on any error # todo: interactive, cli options # disk=/dev/sda user=princesspi # outname="test_disk_image_post0_$(date +%Y-%m-%d-%H%M-%Z)" outname="$outname.img.xz" zerofile="/home/$user/0.0" echo "zeroing out empty space" sudo if=/dev/zero of="$zerofile" bs=4M status=progress || sudo rf -f "$zerofile" # do the disk image dump using inline xz # echo "runnin inline xz on $disk to file $outname" # sudo dd if=$disk status=progress bs=4M | xz -c > "$outname" # test xz integrity # echo "testing disk image integrity" # xz -t -v "$outname" # make the sha256 file # echo "generating sha256 checksum file" # sha256sum "$outname" | tee "$outname.sha256" echo "all donesies :3"