From 866b47e3cc7d127b8ed4b8101efa268b2c25eaf5 Mon Sep 17 00:00:00 2001 From: Neko Date: Wed, 19 Mar 2025 07:58:20 +0100 Subject: [PATCH] add readme.md --- README.md | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..2bef3cc --- /dev/null +++ b/README.md @@ -0,0 +1,113 @@ +# Ventoy Bootstick Automation + +# Erklärungen + +## Problem + +* Die Ventoy USB Sticks werden regelmäßig formatiert / anderweitig gebraucht +* Das Erstellen des Bootsticks kostet Zeit - speziell das Kopieren der ISO Datei dauert lange +* ISO Dateien müssen regelmäßig updates erhalten - vorallem bei Linux Desktopsystemen kann es passieren dass die ISO Datei nach der Installation keine Updates fahren kann weil sie zu alt ist. (Arch-Linux Problem) + +## Ziel +* Erstellen eines (PowerShell)-Scripts, welches automatisch folgende Aufgaben erfüllt: + 1. Formatiert den USB Stick (Nachfragen ob man sich sicher ist!) + 2. Installiert Ventoy + 3. Kopiert unser Ventoy-Template auf den USB Stick (https://git.itlabs.at/neko/ventoy-itlabs, `git pull https://git.itlabs.at/neko/ventoy-itlabs.git`) + 4. Ladet notwendige ISO Dateien in das korrekte Verzeichnis + +### Weitere Details + +* ISO Dateien benötigen ein Repository + * Zu klären ist, wie wir dies erledigen + * Repository lokal? Auf dem PC auf dem das Script ausgeführt wird alle ISO Dateien speichern? + * Repository auf Netzspeicher? + * Repository auf USB-Datenträger (z.B. externe Festplatte) + * ISO Dateien sollen auf Aktualität geprüft werden und wenn notwendig soll eine neue Version davon heruntergeladen werden + * Automatische Updates mit zweitem Script? Wie? + +### Rahmenbedingungen + +* Script muss in einem Git-Repo landen (https://git.itlabs.at/) +* Script muss dokumentiert sein und Kommentare enthalten! +* Ihr habt alle Hardware vom ITL@Bs zur Verfügung +* Script sollte mitteilen, was gerade passiert + +# Aufgabe + +1. Diskutiert zuerst im Team, wie man die verschiedenen Problemstellungen angehen und lösen kann +2. Findet verschiedene Ansätze, diskutiert diese und beschließt dann gemeinsam, welcher Ansatz verfolgt und im Script umgesetzt wird +3. Schreibt das Script und testet es aus + +--- + + + +#### Powershell Scripting: +- [tutorialspoint](https://www.tutorialspoint.com/powershell/index.html) +- [microsoft](https://learn.microsoft.com/en-us/training/modules/script-with-powershell/) +- [tpointtech](https://www.tpointtech.com/powershell) + +Wichtige Grundlagen: + +ventoyauto.ps1 + +**Variablen** +``` +$zahl = 84 +$name = "Patrick" +$ja = $true +``` +**Array** +``` +$array = @(1, 2, 3, "Patrick") +``` +**Bedingungen** +``` +if ($x -gt 5) { + Write-Host "Größer als 5" +} else { + Write-Host "Kleiner oder gleich 5" +} +``` +**Schleife** +``` +while ($count -lt 3) { + Write-Host "Zähler: $count" + $count++ +} +``` +**Function** +``` +function Antwort { + Write-Host "Hallo Patrick!" +} +``` +Mit parameter +``` +function Add-Numbers { + param ($a, $b) + return $a + $b +} +$summe = Add-Numbers 5 10 +Write-Host "Summe: $summe" +``` + +VentoyCLI: https://www.ventoy.net/en/doc_windows_cli.html + +Skript: Da die ganze USB formatiert wird, muss man zweimal den Install annehmen. +1. Auswahl von USB-Sticks (Sonst musste man USB immer " D:\ " geben) +2. VentoyCLI auführen, USB Formattieren (ExFAT, MBR), Ventoy installieren +3. Git repo kopieren (von https://git.itlabs.at/neko/ventoy-itlabs) und auf den Ventoy laden. (.git Verzeichnis wird gelöscht um mögliche fehler zu vermeiden) + 3a. Git erlaubt irgendwie das kopieren in das D Verzeichnis nicht. Um das zu umgehen erstellt das Skript ein neuen Verzeichnis "Theme" und kopiert die Dateien von Git hinein. + 3b. Die Dateien im "Theme" werden dann ins Stammverzeichnis verschoben und "Theme" gelöscht +4. Alle ISO-Dateien (*.iso) werden in den angegebenen Ordnern (1 Windows, 2 Linux, 3 Others, 4 Utilities) kopiert. Nach jeder Datei wird eine Prozentanzahl der bereits kopierten Dateien angezeigt. Zeigt an das es fertig ist +5. Nachdem alles kopiert wurde, muss der Benutzer nochmals Enter drücken um das Skript zu schließen. + +Verwendung: +1. Pfade in der Datei ändern +2. Skript als Administrator im Powershell ausführen (falls nötig "Set-ExecutionPolicy Unrestricted") +3. Bekannter Fehler: in Zeile 67 ```" $selectedDrive = $selectedDrive + ":" "``` kann ein Fehler beheben oder aufrufen. Die Variable ```"$selectedDrive"``` kann entweder als "D:" ausgegeben werden oder von "D" (was falsch ist) Wichtig ist: die Zeile einfach löschen wenn die Buchstaben der USBs richtig erkannt werden. +4. Warten auf kopieren +5. Fertig! Ventoy-Bootstick verwerfen und im Schrank lagern. + +---