add readme.md
This commit is contained in:
parent
f2cfe7ad71
commit
866b47e3cc
113
README.md
Normal file
113
README.md
Normal file
@ -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.
|
||||||
|
|
||||||
|
---
|
Loading…
Reference in New Issue
Block a user