diff --git a/installstick/dlg_platte_bespielen_btrfs.sh b/installstick/dlg_platte_bespielen_btrfs.sh new file mode 100755 index 0000000..6e7887d --- /dev/null +++ b/installstick/dlg_platte_bespielen_btrfs.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +if [ -z "$(command -v dialog)" ]; then + echo "dialog fehlt! Installiere dialog..." + sudo apt update + sudo apt install -y dialog +fi + + +while true; +do + dialog --clear + # select filename using dialog + IMG=$(dialog --title "Image-Datei wählen. Mit *Leertaste* selektieren" --stdout --fselect ./ 14 88) + + GG=$(lsblk -r -p -n -o NAME,TYPE |grep disk | cut -f1 -d' ') + 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 2 Sekunden vor dem löschen, abbrechen mit strg + c..." +sleep 2 +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..a3b3166 --- /dev/null +++ b/installstick/dlg_platte_einlesen.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +if [ -z "$(command -v dialog)" ]; then + echo "dialog fehlt! Installiere dialog..." + sudo apt update + sudo apt install -y dialog +fi + + +GG=$(lsblk -r -p -n -o NAME,TYPE |grep disk | cut -f1 -d' ') +echo $GG +Devs=() +for dev in $GG; do + Devs+=($dev) + Devs+=("") +done + + +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" + + + + +sudo dd if=$dev of="$FILENM" bs=512 count=$LASTSECT status=progress diff --git a/installstick/liesmich.txt b/installstick/liesmich.txt new file mode 100644 index 0000000..54a96ed --- /dev/null +++ b/installstick/liesmich.txt @@ -0,0 +1,26 @@ +Dialogbasierte Imager-Skripte + +Einfaches Zeug mit dd. + +Einlesen: +Bereite die Platte vor. Die dritte Partition sollte / sein und btrfs haben +Verkleinere die Partition mit kparted so weit wie möglich. +Wähle die betreffende Platte aus. Nutze dabei das gesamt-Device +z.B. /dev/sdc. +Wähle dann einen Dateinamen. + +Das Skript ermittelt den Endsektor der letzten Partition (z.B. /dev/sdc3) und erstellt ein +Image indem es dd verwendet. + + +Ausschreiben: +dlg_platte_beschreiben.sh + +einfach aufrufen, sudo-Rechte werden bei Bedarf erfragt. +Der erste Dialog fragt nach dem Device auf das geschrieben werden soll. +Wähle die angeschlossene SSD aus, raw. Nicht die Partition. Also /dev/sde z.B. +Der nächste Dialog lässt das Image auswählen. +Wähle es aus und bestätige. Achtung: 'dialog' möchte die Selektion mit . +Nach einer Sicherheisfrage geht es los. +Es dauert eine weile und die Platte ist bespielt. +Zum Schluss wird die letzte Partition auf die Plattengröße expandiert.