summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcreate-fs46
1 files changed, 46 insertions, 0 deletions
diff --git a/create-fs b/create-fs
new file mode 100755
index 0000000..fe8ecfc
--- /dev/null
+++ b/create-fs
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+set -eu -o pipefail
+
+dev="$1"
+dir="$2"
+fstype="$3"
+n="$4"
+
+echo
+echo "unmount $dev"
+sudo umount "$dev" || true
+
+echo
+echo "zero $dev"
+sudo dd if=/dev/zero of="$dev" bs=1M status=progress || true
+
+echo
+echo "mkfs $dev"
+case "$fstype" in
+ ext4)
+ sudo mke2fs -i 1024 -N 2000000000 -F "$dev" ;;
+ btrfs)
+ sudo mkfs.btrfs "$dev" ;;
+ *)
+ echo "unknown fs type $fstype" 1>&2 ; exit 1 ;;
+esac
+
+echo
+echo "mount $dev on $dir"
+sudo mount "$dev" "$dir"
+
+echo
+echo "create $dir/files"
+sudo install -d -o "$(id -un)" -g "$(id -gn)" "$dir/files"
+
+echo
+echo "create $n files"
+./create-files "$dir/files" "$n"
+
+echo
+echo "unmount $dev"
+sudo umount "$dev"
+
+echo
+echo "done"