Schlagwort-Archive: Windows

Bash on Ubuntu on Windows

Noch ist „Bash on Ubuntu on Windows“ Beta, aber das Ding wird bald allgemein unter Windows Einzug halten. Das Windows Subsystem for Linux (WSL) ist wesentlich mehr als nur eine Bash-Shell: Es bildet das komplette Dateisystem eines Ubuntu ab und enthält unter /bin und /usr/bin alle typischen Kommandozeilenwerkzeuge. Über die Ubuntu-Repositories und apt-get install können weitere Werkzeuge nachinstalliert werden. Trotz noch bestehender Mängel ist der Eindruck evident, dass hier Microsoft in Zusammenarbeit mit Canonical (Ubuntu) ein ehrgeiziges und nachhaltiges Projekt auf die Beine stellt.

Einrichtung und erster Eindruck

Als Vorbereitung ist unter Windows 10 zunächst via Startmenü über „Einstellungen -> Update und Sicherheit -> Für Entwickler“ der „Entwicklermodus“ zu aktivieren. Danach wird in der Systemsteuerung unter „Programme und Features -> Windows Features aktivieren“ das Paket „Windows Subsystem für Linux“ angeboten und kann durch ein Häkchen und „OK“ installiert werden. Dieser Vorgang wird auch in Zukunft optional bleiben, da typische Windows-User eine Linux-Shell in der Regel nicht vermissen.

Nach dieser Aktion findet sich im Windows-Startmenü das neue Programm „Bash on Ubuntu on Windows“, das den kleinen Bash-Launcher aufruft (bash.exe). Falls das Startmenü den Link nicht anbietet, starten Sie die bash.exe manuell in Cmd-Konsole im Pfad \Windows\System32.

Neuerdings (2016 noch nicht beobachtet) kann sich noch eine kleine Hürde einstellen: Wenn der Aufruf der bash.exe mit der Meldung „Zur Verwendung dieses Features muss die Legacykonsole deaktiviert werden“ scheitert. klicken Sie rechts auf die Titelleiste der Cmd.exe und deaktivieren auf der Registerkarte „Optionen“ das Kästchen vor „Legacykonsole“:

Danach erledigt der Aufruf der bash.exe die eigentliche Installation des minimalen Ubuntu vom Canonical-Server. Am Ende werden Sie aufgefordert, ein (sudo-berechtigtes) Benutzerkonto und dessen Passwort anzulegen. Ab sofort ist die Bash-Shell einsatzbereit.

Die eigentliche Ubuntu-Umgebung befindet sich im User-Kontext unter \user\[Konto]\AppData\Local\lxss, darunter liegt das Dateisystem \user\[Konto]\AppData\Local\lxss\rootfs mit der üblichen Verzeichnisstruktur und etwa 550 MB nach der Installation. Diese Ordner werden vom Windows-Explorer versteckt, sind aber mit direkter Eingabe in die Explorer-Adresszeile ebenso wie mit der Cmd-Kommandozeile problemlos zu erreichen.
Die Benutzung der „Bash on Ubuntu on Windows“ unterscheidet sich bei einfacheren Aufgaben weder funktional noch leistungstechnisch von einer Ubuntu-Shell. Wer sich schon mal mit der weitaus hakeligeren Cygwin-Bash beschäftigt hat, wird in jeder Hinsicht positiv überrascht sein. Es gelingt uns mühelos, mit dem ssh-Client Verbindung zu unseren Servern aufzunehmen, was künftig die Windows-Clients Putty und Kitty weitgehend überflüssig machen könnte.

Bevorzugte Werkzeuge wie htop, nmap, inxi oder mc sind über apt-get problemlos nachinstalliert. Da der Midnight Commander hier auch SSH beherrscht, ist sehr bequemer Austausch des Windows-Systems mit Linux-Servern garantiert.

Für die direkte Zusammenarbeit mit Windows ist das Windows-Systemlaufwerk automatisch unter /mnt/c gemountet, was nach der Definition einiger Bash-Aliases schnell zum komfortablen Datenaustausch zwischen Windows-Desktop und Linux-Shell führt.

Weitere interne oder externe Laufwerke des Windows-Rechners sind gemäß den dort verwendeten Laufwerksbuchstaben unter /mnt/d, /mnt/e und so fort zu finden.

Der Befehl

uname -a

meldet brav ein 64-Bit-„GNU/Linux“ und

lsb_release -a

ein Ubuntu 14.04.5 LTS.

Zweimal das Verzeichnis /usr/bin: Das Dateisystem des Linux-Subsystems befindet sich im Benutzerkonto unter \Users\[Konto]\AppData\local\lxss

Für Linux-Entwickler? Für Linux-User?

Schon das Freischalten des Subsystems mit der Option „Entwicklermodus“ macht deutlich, welche Zielgruppe Microsoft mit der „Bash on Ubuntu on Windows“ in erster Linie im Auge hat. Es sind Entwickler, die unter Linux mit Python, Ruby, Git und Gnu-Compiler arbeiten und dies theoretisch künftig auch unter Windows erledigen können. Microsoft behauptet allerdings auch, mit der Bash einfach nur eine gute Kommandoshell anbieten zu wollen, die dann auch normale Nutzer ansprechen soll (und natürlich solche, die an Bash gewöhnt sind). Einige Möglichkeiten tun sich da in der Tat zwanglos auf, zumal der Launcher bash.exe auch Parameterangaben vorsieht – etwa:

bash.exe myscript.sh
bash.exe -c "mc ~"

„Bash on Ubuntu on Windows“ ist ein unglaublich ambitioniertes Projekt, das jetzt schon überraschend viel kann und das unbedingt weitere Beobachtung verdient.

Der Vergleich zwischen der 2016 veröffentlichten „Bash on Ubuntu on Windows“ mit der aktuellen (Stand: 09.03.2017) zeigt, dass Microsoft und Canonical fleissig weiterentwickeln. Diverse Mängel bei der Bedienung, bei der Eingabe von Sonderszeichen  oder beim Scrollen im Editor, sind weitestgehend ausgeräumt.

Auch grafische Linux-Programme starten anstandslos, wenn unter Windows der X-Server xming (https://sourceforge.net/projects/xming/) installiert ist aud läuft. Grafische Tools hat das Ubuntu zwar zunächst nicht an Bord, sie sind aber über apt-get ebenso nachrüstbar wie Kommandozeilentools.

Als praktisches Highlight für den Benutzeralltag sehe ich die SSH-Shell-Verbindung im Midnight Commander. Umstandsloser, direkter und komfortabler  kann der unbeschränkte Dateiaustausch zwischen Windows und einem Linux-Server nicht stattfinden – auf der einen Seite das komplette Dateisystem des Linux-Rechners, auf der anderen Seite unter /mnt das komplette Dateisystem des Windows-Rechners. Die SSH-Clients Putty/Kitty haben bei mir weitgehend ausgedient.

Midnight-Commander mit SSH-Shell-Verbindung: Hier ist links der Windows-Desktop und rechts der Linux-Server im Bild.

Windows 10 IoT Core auf Raspberry

Falls sich bei dem Namen „Windows“ ganz konkrete Vorstellungen einstellen, sollte man sich davon bei Windows 10 IoT Core erst einmal radikal verabschieden. Etwas mehr als den Kernel bringt dieses Windows „Core“ zwar schon mit, aber es ist von einem Desktop-Windows wesentlich weiter entfernt als etwa ein Raspbian von einem Ubuntu. Unterm Strich ist Windows IoT ausschließlich für die Headless-Steuerung via Netzwerk (SSH, Web-Oberfläche, Powershell) und vorwiegend für die Entwicklung eigener Projekte konzipiert. Wir erklären hier, was mit dem System auch ohne Programmierung mit dem Entwicklerwerkzeug Visual Studio 2015 anzustellen ist und wie es sich dabei im Vergleich zu Linux verhält.

1. System-Image für den Raspberry

Bei der Image-Auswahl und Bestückung der SD-Karte muss sich Windows IoT Core schon mal einige Punkteabzüge gefallen lassen. Den diversen, bereits funktional spezialisierten Linux-Varianten für den Raspberry steht genau ein Windows gegenüber und dessen Installation ist nicht überall trivial. Eine erste Hürde ist die nicht klar kommunizierte Tatsache, dass das aktuelle „Windows 10 IoT Core Release Image“ auf dem jüngsten Raspberry 3 noch nicht läuft. Wer die Downloadseite https://ms-iot.github.io/content/en-US/Downloads.htm ganz genau liest, kann dies vermuten, weil der Raspberry Pi 3 nur unter der Vorversion „Windows 10 IoT Core Insider Preview“ namentlich aufgeführt ist. Es kann gut sein, dass demnächst die normale Hauptversion auch den neuesten Raspberry unterstützt, aber Anfang Mai 2016 war dies noch nicht der Fall und wir mussten auf die Insider Preview ausweichen. Dabei ist es aber nicht nötig, am Insider-Programm von Microsoft teilzunehmen, weil auch der bewährte NOOBS-Installer der Raspberry Foundation diese Insider Preview einrichten kann (Download unter www.raspberrypi.org/downloads/noobs). Wenn Sie den Raspberry mit NOOBS booten und dann die Option „Windows 10 IoT Core“ wählen, holt sich NOOBS die aktuellste Preview von Windows IoT aus dem Netz. Eine flotte Internetverbindung ist ratsam, weil der Download circa 1825 MB umfasst.

Wichtige Anmerkung: Beachten Sie, dass die beschriebene Einrichtung über NOOBS nicht die von Microsoft vorgesehene Installationsweise darstellt. Microsoft zielt nämlich auf eine enge Zusammenarbeit eines Windows-10-PCs mit der Raspberry-Platine. Beim Download des „Windows 10 IoT Core Release Image“ von https://ms-iot.github.io/content/en-US/Downloads.htm erhalten Sie ein ISO-Image, das Sie unter Windows 10 „Bereitstellen“ (Mounten) sollen, um anschließend die dort enthaltene MSI-Datei auszuführen. Dabei wird am Windows-Rechner das eigentliche Image (flash.ffu) entpackt, ferner zwei Hilfsprogramme eingerichtet – eines zum Schreiben des ffu-Images (IoTCoreImageHelper.exe), ein weiteres (WindowsIoTCoreWatcher.exe) zur besonders einfachen Verwaltung einer oder mehrerer Raspberry-Platinen mit Windows IoT.

Dies mag den Eindruck erwecken, dass sich ein Raspberry mit Windows IoT nur über ein Windows 10 einrichten und bedienen lasse. Das ist aber falsch: Richtig ist nur, dass die Entwicklung eigener Programmierprojekte ein Windows 10 mit Visual Studio 2015 voraussetzen. Die Nutzung und Fernwartung eines Raspberry mit Windows Core funktioniert hingegen auch ohne diese Hilfsprogramme und ohne Windows-PC.

Hinweis zur Hardware: Der WLAN-Chip auf dem neuen Raspberry 3 wird von der Windows IoT Insider Preview nicht erkannt. Dieses Manko kann bei Erscheinen dieses Heft eventuell behoben sein. Wann genau das der Fall sein wird, das lässt sich der vagen Aussage „coming soon“ auf http://ms-iot.github.io nicht entnehmen.

Überflüssiges Tool unter Windows: Der „Core Watcher“ wird am PC automatisch installiert, wenn Windows IoT via Windows auf SD-Karte geschrieben wird

2. Erster Start: Was läuft auf dem Raspberry?

Falls am Raspberry Monitor und Maus angeschlossen sind, erscheint nach dem Start eine einfache Oberfläche, die nur eine wesentliche Information anbietet, nämlich die lokale IP-Adresse. Über das Zahnradsymbol ist nicht mehr zu erreichen als die Einstellung der Sprache. Der Punkt „Lernprogramme“ gibt auch nicht viel her. Generell ist die hübsche, aber praktisch funktionslose Oberfläche entbehrlich bis nutzlos. Der Raspberry mit Windows IoT wird komplett über das Netzwerk verwaltet.

Bei den automatisch gestarteten Standarddiensten hat Microsoft nichts Wesentliches ausgelassen. Das System und die Dateien auf dem System sind auf viele Wege zu erreichen:

* Der SSH-Server läuft. Der Raspberry ist von jedem Client-System via ssh administrator@192.168.0.22 (Beispiel) und dem Standardkennwort „p@ssw0rd“ erreichbar (Zahl 0 statt Buchstabe o!).

* Der Web-Server läuft: Die Verwaltungsoberfläche des Raspberry ist von jedem Client-System im Browser über http://192.168.0.22:8080 erreichbar (Beispiel). Die Standardauthentifizierung lautet wieder „Administrator“ und Kennwort „p@ssw0rd“

* Der FTP-Server läuft: Der Raspberry ist von jedem Client-System via FTP über seine IP-Adresse erreichbar. Hier ist der anonyme Zugriff ohne Authentifizierung vorgesehen. Freigegeben ist standardmäßig das Systemlaufwerk (C:\).

* Der Lanmanserver läuft: Spezielle Freigaben sind per SSH leicht einzurichten, die dann von jedem Client-System erreichbar sind. Sofort ab Installation, also ohne jede Einrichtung, sind die typischen administrativen Standardfreigaben (C$, D$) erreichbar – allerdings nur mit Windows-Clients.

* Das Windows Remote Management läuft: Somit kommen Windows-Client auch über die Windows Powershell an den Raspberry, die mehr Möglichkeiten bietet als die normale Kommandozeile Cmd (die bei SSH-Verbindung startet).

* Wer Windows IoT über einen Windows-10-Rechner installiert hat, erhält auf diesem Rechner zusätzlich den schon genannten „Windows IoT Core Watcher“ als Hilfsprogramm: Der spürt Raspberry-Platinen mit Windows IoT im lokalen Netz auf und bietet per Rechtsklick deren Verwaltungsoberfläche und die administrativen Datenfreigaben. Das Tool ist aber vollständig entbehrlich, wenn der Raspberry mit fester IP über ein Browser-Lesezeichen und die Datenfreigaben im Dateimanager des PCs zu erreichen sind.

Die von Microsoft vorgesehene Installationsweise von Windows IoT: Hier ist ein Windows-Rechner notwendig, der mit einem speziellen Flash-Tool ausgestattet wird.

3. Windows IoT im praktischen Einsatz

Die ersten Maßnahmen auf einem Windows IoT unterscheiden sich nicht grundsätzlich von einem Linux-System auf dem Raspberry: Eine der wichtigsten Aktionen ist ein feste IP-Adresse für das Gerät, was Sie am besten zentral im Router erledigen. Damit ist das System per SSH oder Browser zuverlässig zu erreichen. Ob der Zugriff dann unter Linux mit (Beispiel)

ssh administrator@192.168.0.22

oder mit Putty/Kitty unter Windows erfolgt, spielt keine Rolle.

Zu empfehlen ist ferner ein individuelles Kennwort für das „Administrator“-Konto (vergleichbar mit root unter Linux). Dies kann der Befehl

net user administrator meinkennwort

auf der SSH-Konsole erledigen, ist aber auch auf der Verwaltungsoberfläche unter „Home -> Preferencies“ vorgesehen. An gleicher Stelle können Sie auch den Standard-Hostnamen „minwinpc“ individuell einstellen.

Windows IoT kann mit oder ohne Bildschirmoberfläche („headed“ oder „headless“) gestartet werden. Falls Sie kein eigenes Projekt planen, das eine Bildschirmausgabe vorsieht: Die Standardoberfläche des Systems und ein am Raspberry angeschlossener Bildschirm sind reichlich nutzlos. Für die Abschaltung gibt es ein Extra-Programm:

setbootoption.exe headless

Dies und ein Reboot schaltet die Oberfläche ab und bringt etwa 60 MB zusätzlichen Speicher (der Parameter „headed“ schaltet die Oberfläche jederzeit wieder ein). Einen Reboot lösen Sie am bequemsten über die gleichnamige Schaltfläche in der Verwaltungsoberfläche aus, aber natürlich funktioniert auch ein shutdown /r /t 0 auf der SSH-Konsole.

Neben dem überall funktionierenden SSH-Zugriff gibt es unter Windows auch noch den Remote-Zugang via Powershell (Beispiel):

net start WinRM
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 192.168.0.22
Enter-PSSession -ComputerName 192.168.0.22 -Credential 192.168.0.22\Administrator

Die zweite Befehlszeile ist nur ein einziges Mal notwendig, um den Raspberry dem Windows-PC bekannt zu machen. Der erste Befehl ist nur einmal innerhalb einer Windows-Sitzung notwendig. Für die Eingabe des Kennworts nach dem dritten Befehl erscheint dann ein grafischer Dialog.

Die Verwaltungsoberfläche liefert unter „Processes“ und „Performance“ einen guten Überblick über die Systemauslastung und über laufende Tasks, die sich hier auch beenden lassen. Ohne Monitorausgabe („headless“) sollte das pure Standardsystem deutlich unter 200 MB liegen. Bei Aufgaben als einfacher Datenserver liegt die CPU-Last bei 10 bis maximal 30 Prozent. Das sind Werte, die auch ein schlanker Debian-Server nicht signifikant unterbieten kann.

Auf der Seite „Processes“ lassen sich unter „Run command“ einzelne Kommandozeilen direkt übergeben, ohne dafür eine SSH- oder Powershell-Verbindung aufbauen zu müssen. Wenn es sich um einen Befehl des Kommandointerpreters Cmd handeln soll, muss dies in der Form „cmd /c [Befehl]“ erfolgen.

Wenn Sie beim Systemstart automatisch Programme starten (oder beenden) oder Umgebungsvariablen setzen wollen, nutzen Sie vorzugsweise die Datei IoTStartupOnBoot.cmd unter \Windows\System32. Diese wird, wie der Name anzeigt, beim Start automatisch berücksichtigt.

Nur für Windows-Clients: Die Powershell kann sich am Raspberry anmelden und bietet etwas mehr Kommandozeilenkomfort als eine SSH-Verbindung (auf die Cmd-Shell).

4. Einrichtung eines einfachen Datenservers

Die Rolle eines einfachen lokalen Datenservers kann Windows IoT problemlos und mit sehr geringem Konfigurationsaufwand übernehmen. Dazu eignen sich externe USB-Geräte an den vier verfügbaren Ports. USB-Datenträger sind „hot plugable“, werden also im laufenden Betrieb gemountet – in aufsteigender Reihe der Windows-typischen Laufwerksbuchstaben. Um ein komplettes USB-Laufwerk E: für das Standardkonto „Administrator“ freizugeben, genügt ein einziger Befehl (Beispiel):

net share USB_2TB=e:\ /grant:administrator,full

Weitere Konten sind etwa mit

net user /add Sepp geheim

schnell eingerichtet und Netzfreigaben analog dem obigen Befehl zu gestatten, nur mit geändertem Kontonamen. Für die Korrektur eventuell fehlender lokaler Rechte auf Datenträgern ist das Tool icacls.exe an Bord.

Der FTP-Server, der standardmäßig Laufwerk C: anbietet, kann jeden beliebigen Pfad per FTP freigeben. Es genügt, den Dienst zunächst mit

kill ftpd*

zu beenden und dann mit der gewünschten Pfadangabe neu zu starten (Beispiel):

start c:\windows\system32\ftpd.exe e:\daten

Es gibt aber offenbar keine Möglichkeit, den FTP-Server auf ein bestimmtes Konto zu beschränken. Eine Öffnung für den Internet-Zugriff via Portfreigabe scheidet daher aus Sicherheitsgründen aus, und für den Zugriff im lokalen Netz reichen an sich die normalen Freigaben aus.

5. Windows IoT: Ohne Eigenentwicklung geht nicht viel

Die voranstehenden Abschnitte zeigen, dass Windows IoT auf dem Raspberry wesentliche Dienste automatisch mitbringt und mit etwas Erfahrung auf der Windows-Kommandozeile (Cmd) oder der Windows-Powershell gut übers Netzwerk zu verwalten ist – und zwar nicht nur über Windows, sondern auch über Linux oder Mac OS X (SSH und Browser). Alltagstaugliche Einsatzmöglichkeiten, wie wir sie von Linux-Systemen wie Raspbian, Open Media Vault, Openelec und zahlloser Software wie Kodi, Plex, Owncloud, Mediawiki kennen, sind aber nicht annähernd in Sicht. Die skizzierte Einrichtung als lokaler Datenserver (Punkt 4) ist das einzige alltagstaugliche Szenario, das sich mit dem purem Windows-IoT-System umstandslos realisieren lässt. Batch-Frickler können sich mit den angebotenen Kommandozeilen-Tools unter \Windows\System32 und dem Cron-ähnlichen Scheduler Schtasks sicher noch einige zusätzliche Komfortfunktionen hinzubasteln. Ein Hemmschuh ist dabei, dass nicht einmal ein Texteditor an Bord ist und somit Änderungen an Batch- oder Konfigurationsdateien immer über die Freigaben am Remote-PC erfolgen müssen.

Über diese engen Grenzen hinaus führt nur die Entwicklung eigener Programmierprojekte. Hier steht man allerdings mit einem Linux-Rechner komplett außen vor. Die Entwicklung benötigt einen Windows-10-Rechner mit Visual Studio 2015 (wobei aber die kostenlose Community-Edition ausreicht: www.visualstudio.com/de-de/downloads). Selbst Nutzer, die nur das eine oder andere schon existierende Beispielprojekt auf ihrem Raspberry ausprobieren wollen, kommen nur mit Hilfe von Windows ans Ziel: Die überall verfügbare Verwaltungsoberfläche im Browser sieht zwar unter „Apps -> Install package“ das Laden von Projekten auf den Raspberry vor, dazu müssen diese aber als Appx-Pakete vorliegen, was wiederum Visual Studio oder zumindest das Windows-Tool Makeappx erfordert.

Ist auf einem Windows-10-PC Visual Studio installiert, ist der Transport von Projekten auf den Raspberry hingegen recht einfach: Die Sammlung mit den Demo-Projekten unter https://github.com/ms-iot/samples lässt sich mit der Schaltfläche „Download ZIP“ rechts oben komplett herunterladen. Nach dem Entpacken des Archivs genügt ein Doppelklick auf die SLN-Datei des gewünschten Projekts, der das verknüpfte Visual Studio startet und dort automatisch den Debug-Modus und die ARM-Systemarchitektur einstellt (in der Tool-Leiste oben). Daneben muss dann nur noch unter „Device“ die Option „Remotecomputer“ gewählt werden, wobei der Raspberry erkannt und automatisch angeboten wird und ein Klick auf „Auswählen“ das Ziel festlegt. Danach genügt „Erstellen -> [Projektname] erstellen“ zum Kompilieren des Projekt und anschließendes „Erstellen -> [Projektname] bereitstellen“, um das Projekt auf den Raspberry zu befördern. Die Verwaltungsoberfläche zeigt unter „Apps -> Installed Apps“ alle Projekte in einer Dropdown-Liste an. Das jeweils ausgewählte starten Sie dort mit der Schaltfläche „Start“ oder löschen es wieder mit der Schaltfläche „Remove“.

Die meisten der bislang vorliegenden Projekte haben Demo-Charakter, um die technischen Möglichkeiten und den zuständigen Programmcode anzuzeigen. Praxistaugliche und für größere Zielgruppen zu empfehlende Lösungen sind bislang nicht in Sicht.

Leistungsmonitor der Verwaltungsoberfläche: Das Mini-Windows erweist sich als ökonomische Basis für den Raspberry. Hier läuft ein Datentransfer; CPU und RAM zeigen noch viel Reserven.

Windows-Software unter Linux: Wine und PlayOnLinux

Wine ist bekanntlich ein Nachbau der Windows-API unter Linux, der eine Vielzahl von Windows-Programmen unter Linux lauffähig macht. Wo immer dies möglich ist, ist dies der direktere Weg gegenüber einer Virtualisierungslösung.

Über Wine und sein komfortables Frontend PlayOnLinux allgemeingültige, praxisnahe technische Anleitungen zu liefern, ist nicht ganz einfach: Streng genommen kann man immer nur das erfolgreiche Einrichten genau eines Windows-Programms erklären. Bei der nächsten Software kann sich der Vorgang schon wieder deutlich unterscheiden, und einen dritten Kandidaten überreden auch trickreiche Nachbesserungen nicht zur Zusammenarbeit. Dieser Artikel kann daher nur die Grundregeln beschreiben.

playonllinux und wine
Winecfg und PlayOnLinux: Hinter dem Frontend bleibt Winecfg (rechts) das maßgebliche Konfigurationstool, das unter anderem festlegt, welche Laufwerke die Windows-Software „sieht“.

Zum Verhältnis Wine und PlayOnLinux

Wine („Wine Is Not an Emulator“) stellt die eigentliche Laufzeitumgebung und Windows-API (Application Programming Interface) bereit und basiert auf mühevoller Rekonstruktion des nicht offenen Windows-Quellcodes durch Experimentieren und Reverse-Engineering. Aufgrund dieser Arbeitsweise ist die von Wine angebotene Windows-API auch nach über 20 Jahren der Entwicklung immer noch lückenhaft, aber inzwischen ausreichend für viele und zum Teil auch komplexe Windows-Programme und –Spiele wie Photoshop oder Halflife. Welche Windows-Software unter Wine zuverlässig läuft, zeigt die Datenbank http://appdb.winehq.org. Linux-Nutzer mit wenig Erfahrung sollten sich an die Kategorien „Platin“ und „Gold“ halten, alle anderen Einstufungen erfordern manuelles Nachbessern.

PlayOnLinux ist im Prinzip nur ein zusätzliches Konfigurationswerkzeug für Wine. Aber es vereinfacht Installationen von Software und bietet vor allem eine komfortable Verwaltung für mehrere Wine-Versionen auf einem Rechner. Es ist nämlich leider keineswegs so, dass die aktuellste Wine-Version auch die beste für jede Windows-Software darstellt. Vielmehr gibt es vor allem für ältere Software ältere Wine-Versionen, welche die optimalen Bedingungen garantieren.

Mit PlayOnLinux nimmt zwar die Wine-Komplexität weiter zu, dennoch gehen wir nachfolgend davon aus, dass Sie Wine in Kombination mit diesem grafischen Frontend nutzen. Ursprüngliches Ziel des Frontends war es, populäre Windows-Spiele besonders komfortabel lauffähig zu machen – daher der Name des Tools. Heute hat Playonlinux aber auch Windows-Programme wie Microsoft Office oder Dreamweaver im Repertoire.

Der Installationsdialog von PlayOnLinux
Der Installationsdialog von PlayOnLinux

Installation über PlayOnLinux

Obwohl es unter den Distributionen auch einige Ausnahmen gibt: In den meisten Fällen sind die Pakete Wine und PlayOnLinux nicht vorinstalliert, weil sie relativ viel Platz beanspruchen und die installierbaren Live-Systeme um circa 200 MB anwachsen ließen. Unter Debian, Ubuntu, Mint und Varianten installiert der Befehl

sudo apt-get install playonlinux curl p7zip-full

alle notwendigen Komponenten. Beachten Sie, dass PlayOnLinux ein aktuelles Wine automatisch mitbringt. Beim Verfassen dieses Beitrags handelte es sich unter Ubuntu um Wine 1.7.12. PlayOnLinux ist aktuell bei Version 4.2.5, bei der Installation über die Ubuntu-Repositories erhalten Sie derzeit Version 4.2.2.

Bei der Installation gibt es unter einigen Distributionen eine irritierende Bremse: Es erscheint ein Textfenster „Konfiguriere ttf-mscorefonts-installer“. Es handelt sich um die EULA (End User License Agreement) für einige Windows-Truetype-Standardschriften, die Sie bestätigen sollen. Allerdings lässt sich das „OK“ in diesem Textfenster nicht direkt mit Eingabetaste erreichen. Vielmehr müssen Sie erst mit der Tab-Taste das „OK“ aktivieren, um den Vorgang mit Eingabetaste fortsetzen zu können.

Vor dem Start von PlayOnLinux sollten Sie erst winecfg aufrufen, am einfachsten via Terminal. Beim Start dieses Konfigurationstools werden oft noch fehlende Komponenten angemahnt und die automatische Nachinstallation angeboten. Außerdem können Sie vorab festlegen, welche Laufwerke die Windows-Software nutzen darf. Erst danach starten Sie PlayOnLinux über das Startmenü oder das Dash. Nach diesen Aktionen sind bereits wichtige Ordnerstrukturen und virtuelle Laufwerke angelegt. Sie finden im home-Verzeichnis den versteckten Ordner ~/.PlayOnLinux/wineprefix, der die virtuellen Laufwerke für alle späteren Installationen aufnimmt.

Exkurs: Neueste Versionen

Wenn es die allerneueste Wine-Version sein soll, gibt es für Ubuntu und Mint ein alternatives PPA mit jüngsten Entwicklerversionen. Dafür nehmen Sie in der Kommandozeile das PPA auf und installieren dann die aktuellste Version:

sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.7

die neueste verfügbare Wine-Version.

Auch PlayOnLinux bieten die meisten Repositories nicht in der aktuellsten Version. Diese lautet bei Redaktionsschluss 4.2.5, während etwa Ubuntu die Version 4.2.2 installiert. Die jeweils aktuellste Version erhalten Sie mit diesen vier Befehlen:

wget -q "http://deb.playonlinux.com/public.gpg" -O- | sudo apt-key add -
sudo wget http://deb.playonlinux.com/playonlinux_trusty.list -O /etc/apt/sources.list.d/playonlinux.list

sudo apt-get update

sudo apt-get install playonlinux

Anleitungen zur Installation unter anderen Distributionen bietet die Webseite https://www.playonlinux.com/en/download.html.

Beachten Sie jedoch, dass die Entwicklung bei Wine zwar stetig, aber langsam voranschreitet. Die Notwendigkeit ganz aktueller Versionen ergibt sich nur dann, wenn Sie genau wissen, dass die gewünschte Windows-Software die neueste Wine-Version unbedingt voraussetzt.

Setup mit dem normalen Installationsmedium: Der PlayOnLinux-Assistent fragt nach dem Setup-Medium oder der gemounteten ISO-Datei.
Setup mit dem normalen Installationsmedium: Der PlayOnLinux-Assistent fragt nach dem Setup-Medium oder der gemounteten ISO-Datei.

Varianten der Software-Installation

Nach dem Aufruf vom Playonlinux klicken Sie zunächst auf „Datei -> Installieren“. Das damit geöffnete Installationsmenü zeigt zahlreiche Windows-Programme und Spiele, für die es bewährte Installations-Scripts gibt. Mit der Auswahl und dem Klick auf „Installieren“ einer dieser Software-Vorgaben sind Sie auf einer relativ sicheren Seite. „Relativ sicher“ deswegen, weil sich beispielsweise eine genau analysierte Software wie ein Microsoft Office standardmäßig problemlos installieren lässt, das Setup jedoch scheitert, wenn man versucht, eine benutzerdefinierte Auswahl der Komponenten zu treffen.

In den meisten Fällen benötigen Sie ein reguläres Installationsmedium, also CD/DVD oder auch eine ISO-Datei, die Sie am besten schon vorher über „Öffnen mit -> Einhängen von Laufwerksabbildern“ gemountet haben. Bei frei verfügbarer Open-Source-Software fragt PlayOnLinux nach keinem Installationsmedium, sondern lädt die Dateien aus dem Internet und installiert automatisch. Das bei der Installation neu entstehende Wine-Prefix und auch das zugehörige Verzeichnis unter ~/.PlayOnLinux/wineprefix erhält jeweils den Namen der Software.

Die manuelle Setup-Variante: Ist die gewünschte Software in den Vorgaben unter „Datei -> Installieren“ nicht enthalten, können Sie folgenden Weg versuchen: Im Installationsdialog klicken Sie auf ganz unten auf „Installiere ein Programm, das nicht aufgelistet ist“. Damit startet die manuelle Installation, bei der Sie die Option „Installiere ein Programm in einem neuen virtuellen Laufwerk“ anklicken und für die neue Umgebung einen Namen vergeben. Den nächsten Dialog überspringen Sie mit „Weiter“, sofern Sie mit den dortigen Optionen nichts anfangen können. Wenn die Aufforderung „Bitte wähle die Installationsdatei…“ erscheint, navigieren Sie mit „Durchsuchen“ zur gewünschten Setup-Datei. Ob die Installation funktioniert und anschließend auch die Software, muss der Versuch zeigen.

Manuelle Kopie portabler Software: Portable Windows-Programme benötigen bekanntlich keine Installation. Mit solcher Software lässt es sich besonders einfach experimentieren: Kopieren Sie in eine bereits existierende Laufzeitumgebung unter ~/.PlayOnLinux/wineprefix/[Name]/drive_c/Program Files beliebige portable Programme einfach mit dem Dateimanager. Danach gehen Sie im Hauptdialog von Playonlinux auf „Konfigurieren“ und markieren den Namen der betreffenden Laufzeitumgebung. Nun erscheint die Schaltfläche „Lege eine neue Verknüpfung dieses virtuellen Laufwerks an“, die eine Suche nach ausführbaren Windows-Executables (*.exe) startet. Hier klicken Sie auf die gewünschte Programmdatei und auf „Weiter“. Dadurch entsteht ein neuer Programmeintrag im Hauptdialog von PlayOnLinux, zusätzlich auch noch eine Desktop-Verknüpfung.

Ob das portable Programm dann tatsächlich läuft, erweist sich nach Klick auf „Ausführen“ im Hauptdialog. Der Erfolg ist ungewiss, aber Sie können in einem einzigen Wine-Prefix durch schlichtes Kopieren in den virtuellen Programme-Ordner Dutzende von Programmen ausprobieren. Bei kleineren Tools und einfachen Spielen stehen die Chancen generell gut.

Oft unproblematische portable Software: Viele Windows-Programme sind nach schlichtem Kopieren in den virtuellen Programme-Ordner sofort startklar.
Oft unproblematische portable Software: Viele Windows-Programme sind nach schlichtem Kopieren in den virtuellen Programme-Ordner sofort startklar.

Ergebnis aller Installationsvarianten: Für jede Software ist immer eine bestimmte Wine-Version zuständig. Bei den Programmen, die der Installationsdialog anbietet, holt PlayOnLinux automatisch die passende Wine-Version mit an Bord. Bei manuellen Installationen arbeitet normalerweise die Default-Version des Betriebssystems. Einmal installierte Programme erscheinen im Hauptdialog von PlayOnLinux und lassen sich dort „Ausführen“, „Debuggen“, „Deinstallieren“ und genauer „Konfigurieren“. Eine komplette Prefix-Umgebung können Sie unter „Konfigurieren -> Entfernen“ wieder löschen. Falls dies nicht klappt, löschen Sie einfach den betreffenden Ordner unter ~/.PlayOnLinux/wineprefix.

Hauptdialog von PlayOnLinux nach erfolgten Installationen: Die rechte Spalte bietet die Links für alle Aktionen wie das Starten, Debuggen oder detaillierteres Konfigurieren.
Hauptdialog von PlayOnLinux nach erfolgten Installationen: Die rechte Spalte bietet die Links für alle Aktionen wie das Starten, Debuggen oder detaillierteres Konfigurieren.

Debugging und Experimente

Wine bietet eine erstaunlich zuverlässige Basis der Windows-API, kann aber natürlich nicht die zahllosen Spezialitäten berücksichtigen, wie sie Tausende von Windows-Programmen voraussetzen. Das beginnt bei harmlosen Registry-Einträgen und geht bis zu speziellen DLL-Versionen, .Net- oder DirectX-Versionen. Bei besonders prominenter Software ist der Ehrgeiz der Community groß, diesen Spezialitäten mit genau recherchierten Installations-Scripts Rechnung zu tragen. Bei weniger prominenter Software ist Wine die solide Basis, die aber oft erst durch eigenes Experimentieren zum Erfolg führt: Wenn ein Windows-Programm nach der Installation nicht läuft, bedeutet das nicht, dass es prinzipiell nicht funktioniert. Wer einerseits die Struktur von PlayOnLinux verstanden hat, andererseits einige Windows-Kenntnisse mitbringt, hat gute Chancen, eine störrische Software durch Experimentierten zur Arbeit zu bewegen:

Jedes installierte Programm lässt sich im PlayOnLinux-Hauptdialog markieren, danach auf der rechten Seite mit dem Link „Ausführen“ starten. Wenn dies nicht funktioniert, starten Sie das Programm an gleicher Stelle mit dem Link „Debug“, um das Debug-Logfile anzuzeigen. Das Logfile nennt die Probleme deutlich beim Namen– etwa „Library XYZ.DLL not found…“. Allgemeine Windows-Komponenten wie DirectX und .Net lassen sich über den Link „Konfigurieren“ unter der Registerkarte „Installiere Komponenten“ genau für dieses Programm nachrüsten. Wenn aber – wie im obigen Beispiel – ganz spezielle, fehlende DLL-Dateien genannt werden, hilft nur eines: Kopieren Sie die fehlenden Dateien von einer parallelen Windows-Installation manuell nach Linux. Zielordner ist dann entweder ~/.PlayOnLinux/wineprefix/[Prefix-Name]/drive_c/windows/system32 oder direkt das Programmverzeichnis ~/.PlayOnLinux/wineprefix/[Prefix-Name]/drive_c/Program Files/[Programm].

Wenn Sie die DLL-Dateien unter System32 ablegen, starten Sie dann in PlayOnLinux über „Konfigurieren -> Wine -> Wine konfigurieren“ das Tool winecfg, um dort unter „Bibliotheken -> Neue Überschreibung für“ die gewünschte Bibliothek auszuwählen. Mit „Festlegen“ erstellen Sie eine neue Regel, die Sie mit „Bearbeiten“ ändern. Mit der Einstellung „Native“ nutzt Wine dann die manuell kopierte, originale Windows-DLL im virtuellen System32-Ordner statt der eingebauten Wine-Bibliothek (Builtin).

native dlls
Windows-Bibliotheken manuell ersetzen: Wenn Programme laut Debug-Meldung originale Windows-DLLs fordern, kopieren Sie diese und teilen das winecfg mit.

Was für fehlende Komponenten gilt, gilt ähnlich auch für fehlende Informationen in der Windows-Registry. Diese liegt in Form der beiden Dateien system.reg und user.reg im Basisverzeichnis des jeweiligen Wine-Prefix – also unter ~/.PlayOnLinux/wineprefix/[Prefix-Name]. Theoretisch können Sie diese Dateien manuell bearbeiten, was für eine Handvoll Zeilen sicher noch praktikabel ist. Es gibt aber einen wesentlich komfortableren Weg: Auch hier benötigen Sie wieder ein Windows-Referenz-System, auf dem die betreffende Software fehlerlos läuft. Dort nutzen Sie den Registry-Editor Regedit und suchen den Hauptschlüssel der Software auf – typischer Weise [Hkey_Current_User\Software\[Programmname]. Nach Rechtsklick und „Exportieren“ wählen Sie als Ausgabeformat „Win9x-/NT-Registrierungsdateien“ und einen sprechenden Dateinamen.

Diese Exportdatei lässt sich dann bequem in die Registry auf dem Linux-System importieren. Dazu markieren Sie im Hauptdialog von PlayOnLinux das maßgebliche Programm und klicken dann in der rechten Spalte auf den Link „Konfigurieren“, dann auf die Registerkarte „Wine“. Hier finden Sie die Schaltfläche „Registrierungseditor“. Der entspricht exakt jenem unter Windows, und mit „Registry -> Registry importieren“ holen Sie die vorher erstellte Reg-Datei in die Registry Ihres Wine-Prefixes.

Dateizuordnungen festlegen

Wie der Hauptdialog von PlayOnLinux unter „Einstellungen -> Dateizuordnungen“ verspricht, lassen sich Dateitypen anhand ihrer Extension mit einem Wine-Windows-Programm verknüpfen. Ziel ist es, mit einem Doppelklick im Linux-Dateimanager direkt die passende Windows-Software zu laden.

Legen Sie unter „Dateizuordnungen“ mit der Schaltfläche „Neu“ einen neuen Eintrag an. Ein Beispiel wäre etwa die Extension „.xlsx“, falls Sie diese mit Microsoft Excel verknüpfen wollen. Danach klappen Sie neben „Zugewiesenes Programm“ die Drop-Down-Liste der möglichen Wine-Programme auf, wählen das gewünschte Excel und klicken auf „Anwenden“. Damit haben Sie PlayOnLinux darüber informiert, dass es für die Extension „.xlsx“ eine Standardanwendung gibt, der Linux-Dateimanager weiß davon allerdings noch nichts.

Wie der Dateimanager am besten zu informieren ist, darüber finden Sie im Web einige halbrichtige Anleitungen. Nach unserer Erfahrung (mit Nautilus unter Ubuntu und Nemo unter Mint) ist der sicherste Weg folgender: Sie gehen im Terminal mit cd zu einem Verzeichnis, das eine Datei mit der gewünschten Extension enthält. Dort geben Sie nach mimeopen –d den Dateinamen an:

mimeopen –d [Dateiname.ext]

Geben Sie dann die Ziffer ein, die vor „Other“ steht. Damit weisen Sie dem Dateityp unabhängig von bisherigen Vorgaben ein neues Standardprogramm zu. Neben „use command:“ geben Sie jetzt einfach den Befehl „playonlinux“ ein. Damit gibt der Dateimanager die Verantwortung für diesen Typ an PlayOnLinux weiter und dieses weiß wiederum aufgrund der vorher getätigten Dateizuordnung, was es starten soll.

Im letzten Schritt klicken Sie jetzt im Dateimanager eine beliebige Datei dieses Typs rechts an und wählen „Eigenschaften -> Öffnen mit“. Dort sollte jetzt unter anderem auch der Eintrag „playonlinux“ auftauchen, den Sie mit Klick auf die gleichnamige Schaltfläche „Als Vorgabe festlegen“.

mimeopen
Windows-Programm als Standardanwendung: Das Einrichten fordert mehrere (drei) Schritte – hier der Zwischenschritt mit der Umleitung zu PlayOnLinux.

Windows-Reparaturen

Windows 7/8/10 sind stabile Systeme. Trotzdem ist es beruhigend zu wissen, dass es bei Pannen ein ganzes Arsenal an Reparaturfunktionen gibt. Ein stotterndes Windows ist noch lange nicht tot, Ihre Benutzerdaten schon gar nicht.

Es ist erfreulich, dass die Systemkatastrophen seltener werden. Andererseits führt das dazu, dass Windows-Nutzern die Pannen-Kompetenz abhanden geht. Da wird dann schon bei harmlosen Problemen schnell formatiert und neu installiert. Falsch: Lesen Sie hier, welche weitreichenden Reparaturen Windows und das Windows-Zweitsystem beherrschen (WinRE: Windows Recovery Environment).

1. Datenrettung mit „Vorgängerversionen“ in Windows 7

Alle Windows-7-Editionen besitzen eine stille Backup-Funktion von Benutzerdateien, die Microsoft in Windows 8 wieder abgeschafft hat. Die Funktion arbeitet so dezent im Hintergrund, dass viele Windows-Benutzer sie offenbar schlicht übersehen oder vergessen. Deshalb hat Microsoft diese „Vorgängerversionen“ unter Windows 8 durch die aktivere Komponente „Dateiversionsverlauf“ ersetzt. Die ist zwar voll in Ordnung, aber die Lösung unter Windows 7 ist mindestens ebenbürtig.

Benutzerdateien wiederherstellen: Mit den „Vorgängerversionen“ können Sie verlorene Benutzerdateien (Text, Musik, Bilder) wiederherstellen oder defekte durch ältere, bessere Dateiversionen ersetzen. Das Zurückschreiben funktioniert nach einem Rechtsklick auf Ordner und Dateien mit der Option „Vorgängerversionen wiederherstellen“. Wenn Sie diese anklicken, erhalten Sie ein Fenster, das die verfügbaren Kopien mit Datumsangabe auflistet. Nachdem Sie eine Version markiert haben, können Sie diese Vorgängerversion im Explorer anzeigen („Öffnen“), an einen Ort Ihrer Wahl speichern („Kopieren“) oder an den ursprünglichen Ort zurückspeichern („Wiederherstellen“).

Komplett gelöschte Dateien oder Ordner können Sie natürlich nicht rechts anklicken. Hier wählen Sie „Vorgängerversionen wiederherstellen“ für den übergeordneten Ordner, klicken bei der gewünschten Version auf „Öffnen“ und ziehen nun Datei oder Ordner aus dem Explorer-Fenster an ein Ziel Ihrer Wahl.

Die Funktion berücksichtigt nur Änderungen: Gibt es keine älteren Versionen, dann wurde die Datei offenbar nie geändert. Bei jeder Datei, die Sie mindestens einmal geändert haben und die mindestens einen Wiederherstellungspunkt erlebt hat (sich also länger als einen Tag auf der Festplatte befindet), finden Sie eine oder mehrere ältere Versionen.

Einstellungen prüfen: Der Umfang der gesicherten Daten richtet sich nach den Werten, die unter „Computerschutz“ für die Partitionen eingestellt sind. Welche Laufwerke diesen Schutz erhalten sollen und in welchem Umfang (Plattenplatz), können Sie unter „Systemsteuerung –> System –> Computerschutz “ selbst bestimmen.

Sollte dort der Schutz für ein Laufwerk ausgeschaltet sein („Aus“), auf dem wichtige Benutzerdateien liegen, markieren Sie es in der Liste und klicken auf „Konfigurieren“. Im folgenden Fenster wählen Sie die Option „Systemeinstellungen und vorherige Dateiversionen wiederherstellen“. Darunter können Sie mit dem Schieberegler einstellen, wie viel Speicherplatz dadurch maximal belegt werden darf. Sicherheitsbewusste können bis zu 20 Prozent investieren. Ist der erteilte Platz nach einiger Zeit belegt, werden automatisch die ältesten Sicherungen gelöscht.

„Vorherige Dateiversionen“ unter Windows 7: In dieser Windows-Version lohnt sich ein großzügig eingestellter Systemschutz auch auf Datenpartitionen.

2. Systemreparatur im laufenden System

Bei Software- oder Systemfehlern, die Windows nicht am ordnungsgemäßen Start hindern, verwenden Sie die eingebaute Systemwiederherstellung. Sie finden diese wichtige Funktion unter „Systemsteuerung –> System –> Computerschutz –> Systemwiederherstellung“. Windows bietet hier von sich aus den letzten Wiederherstellungspunkt an, Sie können sich aber auch ältere anzeigen lassen. Mit Markieren des Eintrags und „Weiter“ setzen Sie das System auf diesen früheren Zustand und beseitigen damit akute Probleme, die Sie sich durch eigene Konfigurationsfehler oder eine Software-/Treiber-Installation eingehandelt haben. Die Maßnahme berücksichtigt Systemordner, den Programme-Ordner sowie die Registry und ist eine zuverlässige Methode, um akute Fehler zu beseitigen.

Tipp: Stellen Sie unter „Computerschutz“ unbedingt sicher, dass der Schutz mindestens auf der Systempartition aktiv ist – also „Ein“ anzeigt. Sie verbessern die Systemsicherheit zusätzlich, wenn Sie vor systemrelevanten Aktionen manuell einen Wiederherstellungspunkt anlegen. Dies geschieht unter „Systemsteuerung –> System –> Computerschutz“ mit der Schaltfläche „Erstellen“.

Hintergrund zum Computerschutz: Einmal täglich und wenn Updates und Installationen dies fordern, macht Windows einen Snapshot geänderter Systemdateien. Windows 7 berücksichtigt dabei auch Benutzerdateien (siehe Punkt 1) Um den Platzbedarf zu minimieren, speichert Windows in diesen Snapshots nur die geänderten Blöcke von Dateien und Ordnern, die sich seit dem letzten Systemwiederherstellungspunkt ergeben haben. Speicherort ist der versteckte und selbst mit Admin-Rechten unzugängliche Ordner „System Volume Information“ auf jeder Partition.

3. Erweiterte Startoptionen nach F8

Wenn Windows 7 oder 8 nicht mehr startet, nutzen Sie den „Abgesicherten Modus“ oder „Computer reparieren“ (Standard-Notfallsystem). Nach den Bios-Routinen kommen Sie beim Systemstart mit Taste F8 an den Bildschirm „Erweiterte Startoptionen“ mit einem textbasierten Menü, wo Sie mit Cursor-Taste die gewünschte Option auswählen.

F8 drücken? Das ist leichter gesagt als getan: Wenn auf Ihrem PC nur ein Windows-System vorhanden ist und folglich kein Bootmanager-Auswahlmenü erscheint, ist es schwierig, den richtigen Moment für F8 abzupassen: Während der Bios-Initialisierungen ist es zu früh, sobald der Windows-Kernel lädt, zu spät. Drücken Sie daher gleich nach dem Einschalten des PC mehrfach F8.

Tipp: Wenn Sie einen um zwei Sekunden verlängerten Systemstart akzeptieren können, hilft ein Trick. Sie erzeugen auf der Kommandozeile mit Admin-Rechten und den Befehlen

bcdedit /copy {current} /d "Dummy-OS"
bcdedit /timeout 4

einen zweiten Eintrag im Bootmanager. Somit bleiben immer vier Sekunden, um mit [F8] die „Erweiterten Startoptionen“ zu aktivieren.

ErweiterterStart
Reparaturoptionen nach F8: Am wichtigsten sind „Computer reparieren“ und „Abgesicherter Modus“. Das Menü zeigt weitere unten noch weitere Debug-Optionen.

4. Immer erst den „Abgesicherten Modus“ versuchen

Mit dem „Abgesicherten Modus“ starten Sie immer noch das Windows-Hauptsystem, allerdings mit wenigen Standardtreibern und ohne Software-Autostarts. Äußerlich erkennen Sie ein abgesichertes Windows sofort an der ungewohnten Bildschirmauflösung. Der Modus ist das ideale Instrument, um Treiber- und Software-Probleme zu beheben, also durch De-Installation wieder vom System zu schaffen. Wenn Sie sich unschlüssig sind, welche Komponenten im Geräte-Manager (Hardware-Treiber) oder unter Systemsteuerung –> Programme und Features“ (Software) zu entfernen sind, können Sie im „Abgesicherten Modus“ die Systemwiederherstellung starten und darauf vertrauen, dass diese einen jüngst installierten Störenfried zuverlässig beseitigt.

5. „Computer reparieren“: Zweitsystem WinPE

Auf jeder Windows-Setup-DVD, aber auch auf der Festplatte unter \Recovery befindet sich das Zweitsystem „Windows Recovery Environment“ (WinRE), das ein kaputtes Windows von außen reparieren kann. WinRE basiert auf dem Minisystem Windows PE („Windows Preinstallation Environment“). Um die Begrifflichkeit zu vereinfachen, sprechen wir generell von WinPE.

Sie starten WinPE, indem Sie nach [F8] unter “Erweiterte Startoptionen“ den Eintrag „Computer reparieren“ wählen. Damit lädt WinPE und zeigt Reparaturoptionen. Die Darstellung unterscheidet sich zwischen Windows 7 und 8 erheblich, funktional sind sich die beiden Zweitsysteme aber sehr ähnlich.

Startumgebung reparieren: Die „Systemstartreparatur“ in WinPE von Windows 7 durchsucht die Festplatten nach Windows-Installationen und erneuert dann die Startumgebung entsprechend. Diese Möglichkeit sollten Sie ausprobieren, wenn das BIOS nach dem Start kein Betriebssystem findet.

Im verschachtelten WinPE von Windows 8 finden Sie diese Systemstartreparatur unter „Problembehandlung –> Erweiterte Optionen –> Automatische Reparatur“.

Wiederherstellungspunkt zurückschreiben: Der nächste Punkt in WinPE von Windows 7 lautet „Systemwiederherstellung“. Hier können Sie vom Zweitsystem aus das defekte Hauptsystem auf einen älteren Zustand zurücksetzen. Das funktioniert genauso wie bei Systemwiederherstellung im laufenden Hauptsystem, indem Sie den jüngsten Wiederherstellungspunkt oder einen anderen auswählen und auf „Weiter –> Ja“ klicken.

Im WinPE von Windows 8 finden Sie den Punkt unter „Problembehandlung –> Erweiterte Optionen –> System wiederherstellen“.

Gesamtsicherung zurückschreiben: Mit der „Systemabbild-Wiederherstellung“ in WinPE von Windows 7 können Sie ein defektes System durch ein früher gesichertes Systemabbild ersetzen. Das setzt voraus, dass Sie über „Systemsteuerung –> Sichern und Wiederherstellen“ (Windows 7) oder „Systemsteuerung –> Windows 7-Dateiwiederherstellung“ (Windows 8) in jüngerer Vergangenheit die Sicherungsfunktion „Systemabbild erstellen“ ausgeführt haben.

Im WinPE von Windows 8 finden Sie den Punkt unter „Problembehandlung –> Erweiterte Optionen –> Systemimage-Wiederherstellung“.

Eingabeaufforderung: Dieser Punkt ist in vielen Fällen der wichtigste. WinPE hat zwar keinen grafischen Dateimanager, aber mit der Eingabeaufforderung kommen Sie an alle Ordner und Daten und können Sie mit „Copy“, „Xcopy“ oder „Robocopy“ auf ein anderes Laufwerk transportieren. Außerdem starten Sie über den Prompt beliebige externe Hilfsmittel wie etwa einen Total Commander oder 7-Zip-Packer. Beachten Sie dabei aber die Einschränkungen von 64-Bit-Zweitsystemen (siehe unten, Anmerkung 1).

Im WinPE von Windows 8 finden Sie den Punkt unter „Problembehandlung –> Erweiterte Optionen –> Eingabeaufforderung“.

Win7RE
Notfallsystem von Windows 7: Der einfache Dialog bietet Zugang zur Systemwiederherstellung und mit der Eingabeaufforderung eine Startrampe für Tools.
Win8RE
Notfallsystem von Windows 8 (Montage): Hinter dem schickeren Outfit verbergen sich die Funktionen des Vorgängers. Hinzu kommen „Refresh“ und „Reset“.

6. Einen „Systemreparaturdatenträger“ erstellen

WinPE lässt sich problemlos auf externe Datenträger kopieren. Das ist ratsam, weil nicht nur Windows, sondern auch das auf Festplatte vorinstallierte WinPE defekt sein kann. Außerdem können Sie dieses mobile Minisystem bequem um zusätzliche Tools erweitern.

In Windows 7 finden Sie in der Systemsteuerung den Punkt „Sichern und Wiederherstellen“ und dort „Systemreparaturdatenträger erstellen“. Unter Windows 8 erscheint diese Option unter „Wiederherstellung –> Wiederherstellungslaufwerk erstellen“. Hier in Windows 8 ist es dann auch vorgesehen, als Medium CD, DVD oder ein USB-Laufwerk anzusteuern.

Workaround für Windows 7: Das ältere Windows 7 bietet für den Systemreparaturdatenträger nur CD und DVD an. Um das Zweitsystem wie unter Windows 8 auf einem beschreibbaren USB-Stick unterzubringen, sind einige Zwischenschritte nötig:

1. Sie kopieren WinPE zunächst wie vorgesehen mit dem Systemsteuerungs-Applet auf eine CD.

2. Sie verwenden in Imgburn die Option „Imagedatei von Disc erstellen“, um WinPE nun wieder in ein ISO-Image auf die Festplatte zurückzuholen.

3. Sie laden das ISO-Image mit Virtual Clone Drive als virtuelles Laufwerk.

4. Nun bearbeiten Sie mit „diskpart“ den eingelegten USB-Stick: Mit „list disk“ erfahren Sie die Kennnummer des Sticks, den Sie dann mit

select disk [Nummer des USB-Sticks]

auswählen und mit „clean“ komplett säubern. Achten Sie dabei unbedingt darauf, das richtige Laufwerk anzusprechen! Dann richten Sie mit „create partition primary“, wählen diese mit „select partition 1“ und machen Sie mit „active” boot-fähig. Mit

format fs=fat32
assign

formatieren Sie mit FAT32 und vergeben einen Laufwerkbuchstaben.

5. Nun kopieren Sie den Inhalt des ISO-Images – nicht die ISO-Datei! – auf den bootfähigen Stick, den Sie um beliebige Tools erweitern können. Achten Sie dabei auf die passende Architektur – 32 Bit oder 64 Bit.

Windows Recovery Environment
Erweitertes Notfallsystem: Das Notfallsystem WinPE bringen Sie unter Windows 8 mühelos, unter Windows 7 mit etwas Aufwand auf einen USB-Stick.
Wiederherstellungslaufwerk
Windows 8 bietet auch USB-Sticks an: Ein „Wiederherstellungslaufwerk“ auf USB-Stick richten Sie unter „Systemsteuerung –> Wiederherstellung“ ein.

7. Für Bastler: DISM erweitert das Notfallsystem

Das „Deployment Image Servicing and Management Tool“ Dism.exe gehört unter Windows 7 und 8 zum Standardinventar. Dieses Tool lädt den Inhalt von WIM-Dateien (Windows Images) in ein beliebiges Verzeichnis und schreibt Änderungen danach wieder in das Windows-Image zurück. Es ist das Standardwerkzeug für angepasste OEM- Setups von Windows 7 oder Windows 8 sowie für angepasste Notfallsysteme (WinPE).

Und damit sind wir beim Thema: WinPE-Systeme befinden sich immer in einer einzigen Datei: \Sources\Boot.wim auf externen Reparaturdatenträgern, \Recovery\[…]\Winre.wim auf der Festplatte. Daher ist es nicht ohne Umweg möglich, das WinPE zu verändern oder zu erweitern. Dism kann das: Es muss auf einer mit Administratorrechten gestarteten Cmd.exe genutzt werden. Mit

dism /Mount-Wim /Wimfile:G:\sources\boot.wim /index:1 /Mountdir:C:\wim

Der Befehl lädt das erste Image (“Index:1″) aus der WIM-Datei (unter G:\Sources) in das Zielverzeichnis C:\wim. Das Zielverzeichnis muss existieren und leer sein. „Index“ muss immer angegeben werden, obwohl die WIM-Dateien von Windows PE nur ein System beinhalten (anders als die Install.wim beim Setup). Der Vorgang kann dann je nach Quell-Laufwerk einige Zeit dauern, danach steht der Inhalt des Images im Verzeichnis C:\wim zur Bearbeitung bereit. Sie können sowohl den „Programme“-Ordner, noch besser „System32“ mit weiteren Tools bestücken. Achten Sie auch hier wieder auf die passende Architektur der Software– 32 Bit oder 64 Bit. Nützliche Kandidaten sind der Total Commander, ein Hex-Editor, einen Bildviewer oder ein Undelete-Werkzeug wie Recuva.

Nach den gewünschten Änderungen schreibt der folgende Befehl das komplette geänderte Image in die WIM-Datei zurück. Entscheidend ist der Schalter „/commit“:

dism /Unmount-Wim /Mountdir:C:\wim /commit

Dieser Befehl kann natürlich nur auf beschreibbaren Medien funktionieren.

Dism
Windows-Image mit Dism bereitstellen: Nach dieser Aktion liegen die Dateien des Mini-Systems im Zielordner und können mit dem Explorer bearbeitet werden.

————————————————————
Anmerkung 1: Windows PE mit 32 Bit und 64 Bit
Beim Einsatz und beim manuellen Ausbau eines Windows-PE-Zweitsystems müssen Sie eine Eigenheit des Minisystems einkalkulieren: Anders als ein „großes“ 64-Bit-Windows bringt das 64-Bit-Notfallsystem kein Subsystem für 32-Bit-Software mit. Das heißt, dass Sie hier ausschließlich 64-Bit-Software starten sowie erfolgreich integrieren können. Wenn Sie 32-Bit-Software aufrufen, erhalten Sie eine Fehlermeldung, die klarste noch auf der Kommandozeile: „Das zum Unterstützen des Abbildtyps erforderliche Subsystem ist nicht vorhanden“.

Das vorinstallierte Notfallsystem auf der Festplatte hat immer dieselbe Architektur wie das Hauptsystem (siehe Basisinformationen nach [Win Pause]). Halten Sie daher eventuelle zusätzliche Tools wie den Total Commander immer in der richtigen Variante bereit.

Anmerkung 2: Registry mit Zweitsystem reparieren
Das Zweitsystem hat das Standardwerkzeug Regedit.exe an Bord, das beim Start zunächst die eigene Registry, also die des Zweitsystems anzeigt. Regedit kann aber auch auf die Registry des Hauptsystems zugreifen und diese bearbeiten. Dazu markieren Sie den Hauptschlüssel „Hkey_Local_Machine“ mit der Maus und wählen „Datei, Struktur laden“. Im daraufhin erscheinenden Dialog können Sie eine Registry-Datei vom Hauptsystem laden. Die Registry-Dateien befinden sich auf der Windows-Partition des Hauptsystems unter „\Windows\System32\config“. Hauptkandidat für Reparaturen bei ernsthaften Bootproblemen ist die Datei „SYSTEM“. Wenn Sie eine Registry-Datei in der beschriebenen Weise über „Struktur laden“ einlesen, fragt Sie Regedit nach einem Namen. Geben Sie etwa „ZZZ“, dann finden die importierte Datei unter „Hkey_Local_Machine\ZZZ“. Unter „ZZZ“ erscheint dann der importierte Registry-Teil des Hauptsystems mit allen Unterschlüsseln. Diese können Sie wie gewohnt bearbeiten. Wenn Sie anschließend „Datei, Struktur entfernen“ wählen, werden die Reparaturen in die defekte Datei des Hauptsystems zurückgeschrieben.

Diese Methode der Registry-Reparatur ist nur sinnvoll, wenn Sie von vornherein exakt wissen, wo der Fehler liegt, und ferner wissen, dass es sich um ein punktuelles Problem handelt, das mit einem manuellen Eingriff zu beseitigen ist. In der Regel trifft das nur für fehlerhafte Einträge unter „Hkey_Local_Machine\System\MountedDevices“ oder unter „Hkey_Local_Machine\System\CurrentControlSet“ zu.

Regedit.StrukturLaden
Regedit importiert Registry-Dateien aus anderen Windows-Installationen. Damit kann ein Zweitsystem die Registry-Fehler des Hauptsystems korrigieren.

Windows 8: Windows to go (auf USB)

Mit Adminrechten Diskpart starten – dort beispielweise die folgenden Befehle eingeben. Beispielsweise heisst, dass die Disk- und Partitionsnummer unbedingt den tatsächlichen Verhältnissen entsprechen muss. Das ist mit list disk und list partition vorher eindeutig zu klären:

select disk 1
select partition 1
delete partition 1
create partition primary
format fs=ntfs quick
active
exit

imagex.exe /apply d:sourceinstall.wim 1 f:
Die Install.wim muss von dem gemounteten Image der Windows-8-ISO stammen.
F: ist das Root-Verzeichnis des USB-Sticks…

bcdboot.exe f:windows /s f: /f ALL

Hyper-V

Hyper-V

Erstmals lieferte Windows 8 mit Hyper-V eine Virtualisierungssoftware gleich mit – eine exzellente Systembeilage. Hyper-V gibt es allerdings nur in der Windows-8-Professional-Edition. Die Software erlaubt das Anlegen, Ändern und Starten virtueller Gastsysteme unter Windows 8. Dabei bevorzugt Hyper-V Windows-Gastsysteme, unterstützt aber auch namhafte Linux-Distributionen.

Voraussetzungen und Installation
Hyper-V erfordert die 64-Bit-Variante von Windows-8 Pro, weil es AMD/Intel-Virtualisierungsfunktionen für x64-Prozessoren nutzt. Wenn Sie Windows 8 auf einem älteren 64-Bit-Rechner installiert haben, können Sie mit „systeminfo“ vorab prüfen, ob die CPU den Anforderungen entspricht: Am Schluss der Anzeige sollten Sie neben „Anforderungen für Hyper-V“ viermal ein „Ja“ sehen. Der PC sollte außerdem mit mindestens vier GB RAM bestückt sein – mehr ist besser.
Hyper-V ist standardmäßig abgeschaltet und muss über „Systemsteuerung –> Programme und Features –> Windows-Features aktivieren oder deaktivieren“ erst mal nachinstalliert werden. Klicken Sie in dieser Liste auf „Hyper-V“, und bestätigen Sie mit „OK“. Nach dem nächsten Windows-Start finden Sie den „Hyper-V-Manager“ am Startbildschirm. Es handelt sich dabei um die Management-Konsole Virtmgmt.msc, die allerdings nur Bedienung und Oberfläche bereitstellt und auf neu installierten Diensten basiert.

Virtuellen Netzwerk-Adapter einrichten
Bevor Sie virtuelle Computer starten oder installieren, sollten Sie mindestens einen virtuellen Switch anlegen – also eine virtuelle Netzwerkschnittstelle für die Gastsysteme. Der betreffende Punkt findet sich rechts unter „Aktionen“ und nennt sich „Manager für virtuelle Switches“. Wählen Sie unter „Neuer virtueller Switch“ die Voreinstellung „Externes Netzwerk“: Diese offenste Variante ist notwendig, wenn die Gastsysteme eine Verbindung nach außen herstellen, also etwa auch ins Internet gehen sollen.-

Ein virtuelles System konfigurieren
Markieren Sie in der linken Spalte unter „Hyper-V-Manager“ den Namen des aktuellen Rechners. Nun erstellen Sie rechts in der Spalte „Aktionen“ erstellen mit „Neu –> Virtueller Computer“ ein neues virtuelles System. Dabei hilft Ihnen einen Schritt-für-Schritt-Assistent. Sie können aber alle hier getroffenen Einstellungen später noch korrigieren:
Unter „Name und Pfad eingeben“ genügt ein sprechender Name – etwa „Ubuntu 12.10“.
Unter „Speicher zuweisen“ geben Sie eine angemessene RAM-Kapazität an, etwa 2 GB für aktuelle Windows-Systeme.
Unter „Netzwerk konfigurieren“ korrigieren Sie die Vorgabe „Nicht verbunden“ auf den vorher eingerichteten virtuellen Switch.
Unter „Virtuelle Festplatte verbinden“ gibt es eine Anzahl von Optionen. Wir beschreiben hier den insbesondere bei der Erstbenutzung von Hyper-V wahrscheinlichsten Fall: Da noch keine virtuelle Festplatte (Virtual Hard Disk mit der Erweiterung VHD) für Hyper-V vorhanden ist, werden Sie in diesem Dialog die erste Option verwenden wollen – „Virtuelle Festplatte erstellen“. Alle Angaben zu Name, Pfad und Größe können Sie unverändert übernehmen.
Klicken Sie dann auf den Unterpunkt „Installationsoptionen“, und aktivieren Sie dort die Option „Betriebssystem von startfähiger CD/DVD-ROM installieren“. Hier gibt es eine weitere Fallunterscheidung, je nachdem, ob das zu installierende System von einer echten DVD installiert wird oder von einem ISO-Image. Letzteres ist inzwischen sowohl bei Windows-Installationen wie bei Linux-Systemen deutlich verbreiteter. Geben Sie, sofern die Installation von ISO erfolgt, den kompletten Pfadnamen des ISO-Images an. Die Schaltfläche „Durchsuchen“ vereinfacht Ihnen die Eingabe.
Das war dann auch schon der letzte und komplizierteste Schritt: Sie können die Konfiguration des virtuellen Systems jetzt mit „Fertig stellen“ abschließen. Eventuelles Feintuning der virtuellen Systeme ist jederzeit nach Rechtsklick über die „Einstellungen“ möglich.

Hyper-V: Neue virtuelle Maschine einrichten

Virtuelle Systeme starten und nutzen
Um das konfigurierte System zu starten und gegebenenfalls zu installieren, klicken Sie unter „Virtuelle Computer“ mit rechter Maustaste auf das System und wählen erst „Verbinden“ und nach erneutem Rechtsklick die Option „Starten“. Schon kann’s losgehen – das Gastsystem startet in einem Fenster am Windows-8-Desktop. In diesem Fenster bedienen oder installieren Sie es wie gewohnt und können es mit seiner eigenen Oberfläche auch wieder beenden.
Zum Steuern von außen hilft das Hyper-V-Fenstermenü „Aktion“: Hier finden Sie neben „Ausschalten“, „Herunterfahren“ und „Neu starten“ auch noch „Anhalten“ und „Snaphot“. Beim „Anhalten“ werden dem Gastsystem sämtliche CPU-Ressourcen entzogen – sie friert im aktuellen Zustand ein und gibt dadurch dem Windows-8-Hostsystems die volle Rechenpower. Der Speicherinhalt des Gastsystems bleibt aber erhalten, und das virtuelle System läuft nach dem „Fortsetzen“ sofort weiter.
Die Aktion „Snaphot“ ist das Mittel der Wahl, um ohne Risiko Experimente mit Software oder Konfigurationsänderungen anzustellen. Sollte das Experiment schiefgehen, kehren Sie mit „Zurücksetzen“ auf den zuletzt gespeicherten Snapshot zurück.

Secure Boot: Status abfragen

Secure Boot ist eine Funktion neuerer UEFI-Firmware, die nur zertifizierte Bootloader akzeptiert und damit vor Rootkits schützen kann. Kehrseite der Medaille: Auch nicht zertifizierte Linux-Systeme haben aktuell ihre liebe Not, sich an dieser Funktion vorbei zu booten. Neben ersten, noch nicht voll überzeugenden Lösungsansätzen steht die simple Maßnahme, „Secure Boot“ im UEFI-Setup einfach abzuschalten, bevor man ein alternatives System starten möchte. Nicht ganz komfortabel, aber immerhin machbar.

Secure Boot ist auf neueren PCs mit vorinstalliertem Windows 8 Standard. Der Status dieser Schutzfunktion lässt sich über die Registry abfragen:

HKLM\System\CurrentControlSet\Control\SecureBoot\State

DWord-Eintrag: UEFISecureBootEnabled
Wert 1: Aktiviert
Wert 0: Abgeschaltet

Windows-Bootvorgang (7, 8, 10)

Windows-Start zum Logon
KomponenteAufgabe
Bios / UEFIinitialisiert Hardware nach Power On Self Test (POST)
Bios / UEFIliest Master Boot Record (MBR) und Partition Boot Record (PBR)  von der primären Bootpartition
Bootsektor (MBR)lädt Bootmgr.exe auf der primären Bootpartition
Bootmgrschaltet die CPU vom 16-Bit-Real-Mode in 32-Bit-Protected Mode
Bootmgrzeigt das Bootmenü zur Auswahl des Systems bei mehreren installierten Windows-Versionen
Bootmgrliest Boot Configuraion Data unter \Boot\BCD (BIOS) oder \EFI\Microsoft\Boot (UEFI)
Bootmgrstartet je nach BCD-Eintrag Winload oder Winresume (Eintrag nach Abschalten in Ruhezustand)
A. Winresumelädt das System aus der Ruhezustandsdatei Hiberfil.sys
B. Winloadlädt Registry HKLM\System
Winloadlädt Windows\System32\hal.dll (Hardware Abstraction Layer)
Winloadlädt Treiber und Dienste mit Autostart-Flag (HKLM\SYSTEM\CurrentControlSet\Services)
Winloadlädt Windows\System32\ntoskrnl.exe
Ntoskrnlzeigt Startanimation
Ntoskrnlstartet eventuelle BootExecute-Aufgaben (HKLM\SYSTEM\CurrentControlSet\Control\SessionManager)
Ntoskrnllädt Kernel-Subsystem, Memory Manager, Process Manager, Session Manager SMSS.exe
SMSSinitialisiert Pending Operations, Auslagerungsdatei
SMSSlädt Registry-Zweig HKLM vollständig
SMSSlädt Win32-Subsysteme Win32k.sys (Kernel-Mode) und Csrss.exe (User-Mode)
SMSSlädt Wininit.exe und Winlogon.exe
Winlogonlädt Userinit.exe und Lsass.exe (Authentifizierungsdienst)
Userinitlädt User-Shell Explorer und zeigt den Logon-Dialog

Der Startvorgang von der BIOS-/UEFI-Firmware bis zum Windows-Anmeldebildschirm ist wesentlich komplexer als die oben abgebildete Liste das skizziert. Die wesentlichen Stationen sind aber genannt: Das minimale Ladeprogramm des Bootsektors findet und lädt am primären Bootlaufwerk die Bootmgr.exe. Damit übernimmt Windows das Kommando über den Rechner und schaltet ihn in den Protected Mode. Im BDC-Speicher findet Bootmgr, ob das einzige vorhandene oder das vom Benutzer ausgewählte Windows zuletzt „Heruntergefahren“ oder in der „Ruhezustand“ versetzt wurde. Im ersten Fall zeigt der BCD-Eintrag die Winload.exe, andernfalls die Winresume.exe.
Winresume kann die Initialisierungsvorgänge allesamt überspringen, insofern es den Zustand der letzten Windows-Sitzung aus der Ruhezustandsdatei Hiberfil.sys übernimmt und in den Speicher schreibt. Winresume stellt auch die User-Session (mit Desktop-Zustand, Programmen, User-Registry) wieder her.
Winload muss den Systemzweig der Registry einlesen, um zu wissen, welche Treiber und Dienste es starten soll. Außerdem lädt es den Hardware Abstraction Layer – die Vermittlungsschicht zwischen der physischen Hardware und der System- und Anwendungssoftware, die nur über die HAL-Abstraktionsschicht auf Hardware zugreifen darf.
Danach lädt Winload die Ntoskrnl.exe, deren Hauptaufgabe im Initialisieren der wichtigsten Systemkomponenten besteht: Kernel, Speichermanagement, Prozessmanagement, Sitzungsmanager, Input/Out-System. Der Session-Manager Smss.exe lädt wiederum die Ring-0-Sitzung für den privilegierten Kernelmode (Win32k.sys) und den User-Mode für die Benutzersitzungen (Csrss.exe). Dann geht’s über die Wininit.exe, Winlogon.exe schließlich zur Userinit.exe, welche die Windows-Shell (Explorer) startet und den Anmeldebildschirm präsentiert.