From 5489fafc1f4e90125c5e07a84765e53c94dd3b0c Mon Sep 17 00:00:00 2001 From: Robert K Date: Thu, 8 Sep 2022 00:28:26 +0200 Subject: [PATCH] Erste version der dialog-Skripte. --- installstick/dlg_platte_bespielen_btrfs.sh | 70 +++++++++++++++++ installstick/dlg_platte_einlesen.sh | 91 ++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100755 installstick/dlg_platte_bespielen_btrfs.sh create mode 100755 installstick/dlg_platte_einlesen.sh diff --git a/installstick/dlg_platte_bespielen_btrfs.sh b/installstick/dlg_platte_bespielen_btrfs.sh new file mode 100755 index 0000000..fce2fa8 --- /dev/null +++ b/installstick/dlg_platte_bespielen_btrfs.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +while true; +do +dialog --clear +# select filename using dialog +IMG=$(dialog --title "Datei mit < > wählen. Image aussuchen" --stdout --fselect ./ 14 88) + +GG=`lsblk -r -p -n -oNAME` +echo $GG +Devs=() +for dev in $GG; do + Devs+=($dev) + Devs+=("") +done + + DEV=`dialog --menu "Festplattengerät wählen" 0 0 0 \ + "${Devs[@]}" 3>&1 1>&2 2>&3` + dialog --clear + + dialog --yesno "Bestätigen Sie Ihre Auswahl: $DEV <- $IMG" 0 0 + # Get exit status + # 0 means user hit [yes] button. + # 1 means user hit [no] button. + # 255 means user hit [Esc] key. + response=$? + case $response in + 0) echo "Bestätigt"; break;; + 1) echo "Sicherheitshalber beendet"; exit 1;; + 255) echo "[ESC], Sicherheitshalber beendet"; exit 1;; + esac +done + + +#--------- + +if [ -z "$(command -v growpart)" ]; then + echo "growpart fehlt! Installiere cloud-guest-utils..." + sudo apt update + sudo apt install -y cloud-guest-utils +fi + +if [ -z "$IMG" ] ; then +echo "Image-File angeben!" +exit 1 +fi + +if [ -z "$DEV" ] ; then +echo "HDD dev angeben! z. B. /dev/hdc" +exit 1 +fi + +echo "Warte 5 Sekunden vor dem löschen, abbrechen mit strg + c..." +sleep 5 +echo "Achtung - vorbei, ich mache jetzt alles platt auf" "${DEV}" + +case "$IMG" in + *.bz2) + sudo dd if="$IMG" bs=1M status=progress | bzip2 -d > "$DEV" + ;; + *) + sudo dd if="$IMG" of=$DEV bs=1M status=progress + ;; +esac +sync +sudo growpart $DEV 3 +sudo mount ${DEV}3 /mnt +sudo btrfs filesystem resize max /mnt +sudo umount /mnt +sync diff --git a/installstick/dlg_platte_einlesen.sh b/installstick/dlg_platte_einlesen.sh new file mode 100755 index 0000000..aec32ec --- /dev/null +++ b/installstick/dlg_platte_einlesen.sh @@ -0,0 +1,91 @@ +#!/bin/bash + +GG=`lsblk -r -p -n -oNAME` +echo $GG +Devs=() +for dev in $GG; do + Devs+=($dev) + Devs+=("") +done + + +echo ${Devs[@]} + +while true +do + + dev=`dialog --menu "Platte einlesen. Festplattengerät wählen" 0 0 0 \ + "${Devs[@]}" 3>&1 1>&2 2>&3` + dialog --clear + dialog --yesno "Bestätigen Sie Ihre Auswahl: $dev" 0 0 + +# Get exit status +# 0 means user hit [yes] button. +# 1 means user hit [no] button. +# 255 means user hit [Esc] key. +response=$? +case $response in + 0) echo "Bestätigt"; break;; + 1) echo "Neu wählen";; + 255) echo "[ESC]"; exit 1;; +esac + +done + + + + +while true +do + dialog --clear + # show an inputbox + FILENM=$(dialog --title "Imagedatei" --inputbox "Dateiname \*.img " 8 60 3>&1 1>&2 2>&3 3>&- ) + + # get respose + respose=$? + case $response in + 1) exit 2 ;; + 255) echo "[ESC]"; exit 1;; + esac + + + dialog --clear + dialog --yesno "Gewählte Datei: $FILENM" 0 0 + # Get exit status + # 0 means user hit [yes] button. + # 1 means user hit [no] button. + # 255 means user hit [Esc] key. + response=$? + case $response in + 0) echo "Bestätigt"; break;; + 1) echo "Neu wählen";; + 255) echo "[ESC]"; exit 1;; + esac + + +done + +echo "Ermittle letzten Sektor von Quelldevice $dev" +LASTSECT=$(sudo fdisk -x "$dev" | tail -1 | awk '{print $3}' ) + + dialog --clear + dialog --yesno "Letzter Sektor von letzter Partition auf $dev ist $LASTSECT . OK?" 0 0 + # Get exit status + # 0 means user hit [yes] button. + # 1 means user hit [no] button. + # 255 means user hit [Esc] key. + response=$? + case $response in + 0) echo "Bestätigt";; + 1) echo "Sicherheitshalber beendet"; exit 1;; + 255) echo "[ESC]"; exit 1;; + esac + + + +echo "Bereit $dev bis $LASTSECT in $FILENM zu schreiben" + + + + +dd if=$dev of="$FILENM" bs=512 count=$LASTSECT status=progress