So, der „Gaming“-PC ist da.
Vielmehr soll er allerdings als Alltags-PC meinen alten Laptop ablösen und die wenigen „Restaufgaben“ des hier noch laufenden Ubuntu-Servers übernehmen.
Da ich gerade dahingehend ein paar Erfahrungen sammle, dokumentiere ich diese hier einfach mal - vielleicht steht ihr selbst bald mal an der einen oder anderen Stelle und könnt euch ggf. die eine oder andere Sackgasse sparen - na ja, und nebenbei schreibe ich den Kram sowieso auch für einen Kumpel gerade ein wenig runter
Der Ubuntu-Server wurde bis dato aktiv via WoL (Wake on LAN) aufgeweckt und von Hand via Kommandozeile schlafengelegt. Eine Icy Box läuft im RAID 1 Modus (Spiegelung der Daten auf zwei physische Festplatten) und wird automatisch via USB ins System eingebunden und im Netzwerk freigegeben.
Zudem läuft dort noch eine paperless-ngx Instanz zur Verwaltung der (digitalen-) Dokumente und wird in einem Docker-Container betrieben. Dessen Daten landen auch in einem separaten Bereich auf der freigegebenen Festplatte.
Generell: Organisation der geteilten Einstellungen und Skripte
Aktuell richte ich den neuen Rechner ein. Daraufhin wird ein Festplatten- und Akktausch beim Laptop meiner Frau anstehen. Mein alter Laptop hier benötigt im Nachgang auch nochmal ein wenig Betreuung…
Da mir das jetzt schon zu nervig war immer wieder Dateien zwischen den Rechnern zu kopieren und ich keine zu spezielle Lösung einrichten wollte, habe ich mich entschieden im ersten Schritt erstmal alle relevanten Skripte zur Steuerung und Einrichtung in einem Nextcloud-Ordner zu synchronisieren.
Die Integration der PowerShell und winget in Windows 11 ist so viel besser geworden . Deswegen kommt es aktuell bei den alten Windows 10-Rechnern zu einzelnen Kinderkrankheiten bei der Ausführung der Skripte.
Mal schauen, ob ich das noch gefixt kriege. Bei Zeiten stelle ich die gesammelten Werke sonst auch gerne mal zur Verfügung - grundlegend werden’s ein paar Skripte für einzelne Aufgaben, die ich evtl. auch dann nochmal zu einem Einrichtungsskript zusammenbastle. We’ll see
Rechner aus dem Netzwerk starten
Der Ubuntu-Server ist aus „Reste-Hardware“ zusammengebastelt und dahingehend nicht auf niedrigen Energieverbrauch oder eine niedrige Lautstärke optimiert.
Zudem erfüllen die Daueraufgaben mittlerweile sparsame Raspberry Pis im Netzwerk (v.a. Home Assistant, Daten sammeln durch regelmäßige Pings,…) und der Rechner wird nur noch gezielt benötigt.
Dahingehend war es ziemlich einfach WoL (Wake on LAN) im BIOS sowie im Betriebssystem zu aktivieren.
Lauscht der Rechner fortan auf die konfigurierte Ethernet-Dose, so ist es ein leichtes ihn aus seinem Dornröschenschlaf zu wecken - zudem funktioniert dies beim neuen Rechner auch im komplett ausgeschalteten Zustand.
Dazu legt ein anderes Skript auf den Rechnern eine Desktop-Verknüpfung an, die das Skript dann in der PowerShell ausführt (Ziel der Verknüpfung: "%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -File "pfad_zur_skriptdatei.ps1"
):
Skript: Aufwecken des Rechners (Magic Paket)
„01:02:03:04:05:06“ durch die MAC-Adresse des genutzten Netzwerkadapters austauschen.
[CmdletBinding()]
# Broadcast-Adresse des Pakets
$broadcast = [Net.IPAddress]::Parse("255.255.255.255")
$port = 9
# MAC Adresse des zentralen Rechners
$mac = (("01:02:03:04:05:06".replace(":","")).replace("-","")).replace(".","");
$target = 0,2,4,6,8,10 | % {[convert]::ToByte($mac.substring($_,2),16)}
$packet = (,[byte]255 * 6) + ($target * 16)
$UDPClient = New-Object System.Net.Sockets.UdpClient
$UDPClient.Connect($broadcast, $port)
[void]$UDPClient.Send($packet, 102)
Festplatte als Netzwerkfreigabe
Die Verwendung der externen NTFS-formatierten Festplatte hat den großen Vorteil, dass meine Frau da ursprünglich an unterschiedlichen Windows-Rechnern an ihre Daten kam.
NTFS und Unix-Dateisystem in Kombination mit weiterer Software und weiteren Freigabe-/Nutzerrechten macht dahingehend … viel Spaß auf Unixsystemen.
Dahingehend war der Umzug auf ein Windows-System nun super einfach und es benötigte keine angepassten fstab
-Einstellungen oder irgendwelche Sonderkonfigurationen für weitere Software (bisher!= ).
Die USB-Festplatte wird beim Anschließen automatisch gemountet und im Netzwerk freigeben. Die anderen Rechner nutzen einen dafür eingerichteten lokalen Benutzer um sich anzumelden (dringend empfohlen!) und binden die Festplatte als Netzwerkfestplatte fix ins System ein (als Konvention alle als Laufwerk N:\
).
Auf dem Windows 11-Rechner gab es dann erwartungsgemäß keine großen Probleme bei der Integration der Festplatte und der Freigabe im Netzwerk.
Auto-Suspend bei Inaktivität
Ich befasse mich das erste mal mit der Aufgabensteuerung in Windows und ich frage mich ernsthaft, warum ich das noch nicht vorher entdeckt hatte
Da es schwer ist ein „gewollte Inaktivität“ bzgl. des Zugriffs auf die Festplatte festzustellen, habe ich mich dafür entschieden erstmal den Rechner nach einer Stunde Inaktivität ab 1.30 Uhr (nachts) in den Standby zu schicken.
Scheinbar war es vorher möglich diese Stromsparmodi direkt aus der Aufgabenverwaltung anzusprechen, allerdings ging das bei mir nicht mehr so wie es in Tutorials teilweise dargestellt wurde. Daher verweise ich einfach als Aktion auf folgenden Einzeiler in einer dafür erstellten bat-Datei:
Rundll32.exe Powrprof.dll,SetSuspendState Standby
paperless-ngx umziehen
paperless-ngx ist ein mächtiges aber zugängliches Tool, um seine Dokumente lokal zu verwalten - ich berichtete scheinbar schonmal darüber
Da ich bereits auf dem Ubuntu-Server paperless via Docker betrieben habe, war es relativ einfach das Programm an sich erstmal auf dem Windows-System bereitzustellen und zu betreiben.
Allerdings ist die Migration der Daten nun ein wenig problematisch. Zwar bietet paperless-ngx Funktionen zum Export und Import der Daten, allerdings meckert es aktuell beim Re-Import der Daten herum, dass irgendwelche Metadaten nicht erkannt werden können und somit die Migration der Dokument fehlschlägt.
Das wäre jetzt halb so wild bei einer Hand voll Dokumenten, allerdings haben wir da mittlerweile über 1,000 Dokumente erfasst und katalogisiert. Da habe ich ehrlicherweise nicht wieder Bock drauf
Daher hänge ich hier gerade noch ein wenig und suche nach einem guten Workaround. Möglicherweise muss ich mich durch die Funktionen des Export-Tools nochmal durchquälen und dort nochmal neue Formate erzeugen. Mal schauen.
Softwareinstallationen via winget
Auf Windows-Systemen bis dato nicht sonderlich verbreitet bzw. teilweise nur sehr halbherzig umgesetzt (Huhu chocolatey! ) finden bis dato Paketmanager auf Windows so gut wie gar nicht statt.
Vor einigen Jahren ist Microsoft dann selbst dieses Problem angegangen und es ist mittlerweile möglich einiges an Software über winget
via Kommandozeile zu installieren bzw. zu aktualisieren.
Dadurch kann ich nun relativ einfach einen Grundstock an Software via Skript auf die Rechner verteilen bzw. aktualisieren und spare mir fortan etwas Handarbeit (Beispiele? Betterbird, Firefox, …)
Eine gute Quelle dafür ist vor allem winstall.app
Auch dazu existiert ein kleines Skript, in dem ich hoffentlich nur noch die App-IDs pflegen muss
Installationsskript (PowerShell)
$SoftwareIds = @(
# 'Docker.DockerDesktop',
'Betterbird.Betterbird',
'Mozilla.Firefox',
'Microsoft.VisualStudioCode',
'Bitwarden.Bitwarden',
'Microsoft.PowerShell',
'Nextcloud.NextcloudDesktop',
'Zoom.Zoom'
);
# Erfrage fehlende Administrationsrechte
if(!([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) {
foreach ($softwareId in $SoftwareIds)
{
$result = winget install --id=$softwareId -e --silent
if ($LASTEXITCODE -ne 0) {
Write-Error "$softwareId | Installation fehlgeschlagen: $result"
}
}
}
Zwischenfazit
Ich hatte schon beachtliche Bedenken jetzt wieder alles auf einer Windows-Kiste einrichten zu und neue Workarounds herausfinden zu müssen.
Die nochmals verbesserte Integration der PowerShell und winget als Paketmanager in Windows 11 sowie die gut dokumentierten und überhaupt verfügbaren Bordmittel des Betriebssystems haben es mir allerdings ziemlich leicht gemacht.
Einzig die paperless-Datenmigration muss jetzt noch laufen und dann kann ich endlich zwei alte Rechner hier in die Rente schicken und habe nebenbei einen Gaming-fähigen Rechner dazu bekommen