diff options
Diffstat (limited to 'installer/guix-partition')
-rwxr-xr-x | installer/guix-partition | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/installer/guix-partition b/installer/guix-partition new file mode 100755 index 0000000..7acaefd --- /dev/null +++ b/installer/guix-partition @@ -0,0 +1,66 @@ +#!/run/current-system/profile/bin/bash + +set -o emacs; + +DISK="" + +source ./guix-log +source ./guix-env + +EVENT "Partitioning disks" + +check_disk() { + lsblk $1 &> /dev/null || exit 1 + FS=$(df $1 | tail -n 1 | awk '{print $1}') + if [ "$FS" == "none" ]; then + exit 0 + else + exit 1 + fi +} + +get_disk() { + CONFIRM="" + read -ep "Enter disk (e.g. /dev/sda): " DISK + if [ ! -b "$DISK" ]; then + ERROR "$DISK: file does not exist" + get_disk + return + fi + (check_disk "$DISK"); + if [ "$?" -ne 0 ]; then + ERROR "$DISK: not a valid disk" + get_disk + return + fi + (confirm "$DISK"); + if [ "$?" -ne 0 ]; then + get_disk + fi +} + +get_disk + +EVENT "Partitioning disks with fdisk..." + +fdisk "$DISK" <<EOF +g +n + + ++1GiB +t +EFI System +n + + + +t +2 +Linux Filesystem +w +EOF + +echo "DISK=\"$DISK\"" >> ./guix-env + +EVENT "Disks have been successfully partitioned on $DISK" |