Merge pull request 'Erste version der dialog-Skripte.' (#62) from B3rtl/Ubuntu-Setup-Skripte:image-skrtpte into main
Reviewed-on: https://codeberg.org/Computertruhe/Setup-Skripte/pulls/62 Reviewed-by: Mac <mac@noreply.codeberg.org> Reviewed-by: Valentin Bachem <hdvalentin@noreply.codeberg.org>
This commit is contained in:
commit
debf868245
|
@ -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
|
|
@ -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
|
|
@ -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 <Leertaste>.
|
||||
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.
|
Loading…
Reference in New Issue