Schlagwort: BIOS

  • Veracrypt, UEFI, Windows 10 und der Bootloop

    Veracrypt, UEFI, Windows 10 und der Bootloop

    Veracrypt ist ein Programm zum Verschlüsseln von Festplatten. Es legt bei der Installation einen Booteintrag „VeraCrypt BootLoader (DcsBoot)“ im UEFI (früher BIOS) an. Dieser muss als Standard-Booteintrag markiert werden, damit Veracrypt die Festplatte für den Bootvorgang entschlüsseln kann.

    Die Fehlermeldung lautet: „Automatic Repair
    Automatic Repair couldn't repair your PC
    Press "Advanced options" to try other options to repair your PC or "Shut down" to turn off your PC.
    Log file: C:\WINDOWS\System32\Logfiles\Srt\SrtTrail.txt

    UEFI-Passwort schützt Veracrypt vor Windows

    Ist Veracrypt korrekt eingerichtet, versucht Windows immer wieder die UEFI Einträge zu „reparieren“ ohne den Anwender zu fragen. Dies geschieht spätestens bei größeren Updates.
    Richtet man ein UEFI-Administrator-Passwort ein, so kann das Betriebssystem nicht mehr die UEFI Einträge oder ihre Reihenfolge ändern. 1234 als Passwort ist hier vollkommen ausreichend. Verwendet man Veracrypt und Windows 10 ist es Pflicht ein UEFI-Admin-Kennwort zu setzen.

    Wenn Windows mit Veracrypt nicht mehr bootet.

    Bootet Windows mit Veracrypt nicht, liegt dies oft an fehlerhaften UEFI-Boot-Einträgen. Diese können durch Windows-Reperaturversuche verursacht worden sein. Eine weitere Ursache können BIOS-Updates/UEFI-Updates sein, die zu einer BIOS-Amnesie in Sachen UEFI-Einträge führen.

    UEFI-Booteintrag von Hand erstellen

    In dem UEFI von manchen Herstellern wie z.B. Dell kann man diese von Hand erstellen. Der Original-Eintrag von Veracrypt lautet: „VeraCrypt BootLoader (DcsBoot)“ und zeigt auf die Datei „\EFI\VERACRYPT\DCSBOOT.EFI“.
    Bei Dell findet man die Einstellung unter: Settings → General → Boot Sequence → Boot List Option, wenn man UEFI anklickt.

    Mit EFI-Shell von Hand booten

    Andere Hersteller wie MSI unterstützen das neue Anlegen von UEFI-Einträgen nicht. Es gibt dafür Zugriff auf eine UEFI-Konsole. Über diese kann man per Kommandozeile von Hand den Veracrypt-Bootloader laden, womit Windows jeweils einmal hochfährt. In die UEFI-Konsole von MSI kommt man über den „Advanded“ Modus. Dann „Settings“ → „Speicher & Verlassen“ → „UEFI: Built-in EFI-Shell“. Der Syntax erinnert an eine DOS-Kommandozeile. Man bekommt zu Beginn alle Laufwerke angezeigt. Das Laufwerk wechselt man indem man den Namen und dann einen Doppelpunkt eingibt. Also:

    Shell> hd12a65535a2:

    Es folgt die Bestätigung:

    hd12a65535a2:\>

    Mit

    cd EFI\VeraCrypt

    wechselt man in das Verzeichnis des Veracrypt Bootloaders.
    Mit

    DcsBootefi

    führt man ihn aus. Es folgt die Passwortabfrage von Veracrypt.

    Veracrypt Booteintrag reparieren

    Es gibt viele Windows Tools mit denen man UEFI-Einträge ändern kann.

    1. bcdedit: Ein Windowseigenes Tool. Man führt es über die Windows Kommandozeile (CMD) aus (Als Administrator ausführen)bcdedit /set {bootmgr} path \EFI\VERACRYPT\DCSBOOT.EFI
    2. BOOTICE

    Bei mir führte jeglicher Versuch einer Änderung zu einem Bluescreen mit dem Stop Code: ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY
    Kann man den Rechner noch booten, z.B. über die EFI-Shell ist die einfachste und sicherste Lösung ein funktionierendes System zu erhalten,

    1. die Festplatte einmal komplett von Veracrypt entschlüsseln zu lassen.
    2. Dann den Rechner ohne Veracrypt neu starten
    3. Die Systemfestplatte neu verschlüsseln. Dabei den freien Speicher von Veracrypt einmal überschreiben lassen.
    4. UEFI-Administrator Passwort setzen, damit Windows die Einträge nicht „reparieren“ kann.
    5. Sich vor BIOS/UEFI-Updates überlegen, wie man danach den Rechner wieder bootet.

    Schnellere Lösungen, die nicht zu empfehlen sind:

    Es gibt andere Lösungen, die empfehlen den Windows Bootmanager durch den Veracrypt Bootmanager zu ersetzen und ein Backup unter anderem Namen von Veracrypt laden zu lassen. Dies funktioniert genau so lange bis Windows seinen Bootmanager repariert. Anders als die UEFI-Einträge, lässt sich das Laufwerk mit BootManager und Bootloader nicht gegen Veränderungen schützen, so dass diese Lösung nur kurz zum Erfolg führt. Schlimmer noch: Wird das Systemlaufwerk entschlüsselt, fährt Windows nicht mehr hoch, weil der Veracrypt Bootmanager nicht korrekt deinstalliert wird.

  • Skylake unter Linux zum laufen kriegen am Beispiel eines Dell Latitude E7270

    Skylake unter Linux zum laufen kriegen am Beispiel eines Dell Latitude E7270

    Versucht man einen Skylake Prozessor mit entsprechendem Chipsatz unter Ubuntu 15.10 zum laufen zu bekommen erhält man Fehlermeldungen wie diese, wenn man den Rechner an eine Dell Dockingstation anschließt:

    [drm:intel_dp_start_link_train [i915]] *ERROR* too many voltage retries, give up
    [drm:indel_dp_complete_link_train [i915]] *ERROR* Timed out waiting for DP idle patterns
    Kernel panic - not syncing: Timeout: Not all CPUs entered broadcast exception handler
    Shutting down spus with NMI
    Kernel Offset: disabled
    Rebooting in 30 seconds..
    ACPI MEMORY or I/O RESET_REG

    Die Lösung:

    1. Bios Update durchführen: Quelle für Dell E7270 A03. Achtung. ggf. gibt es eine neuere Version. Installation geht ohne OS.
    2. Ubuntu 16.04 installieren (AMD64).
    3. neusten Kernel (AMD64, generic) mit Intel Treiber installieren.
      # cd /tmp
      # wget http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/linux-headers-4.5.X-XXX-generic_4.5.0-XXX.ZEISTEMPEL_amd64.deb
      # wget http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/linux-headers-4.5.X-XXX_4.5.0-XXX.ZEITSTEMPEL_all.deb
      # wget http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/linux-image-4.5.X-XXX-generic_4.5.X-XXX.ZEITSTEMPEL_amd64.deb
      # sudo dpkg -i *.deb && rm *.deb
      

      Achtung: Kernel wird alle 14 Tage unter der URL geupdated.

    4. Intel Skylake Firmware installieren.
      Download firmware
      # cd /tmp tar xf skylake-guc-X.X.tar.bz2
      # cd skylake-guc-X.X
      # sudo sh install.sh
    5. Neustarten

    Ergebnis:

    Bis auf das eindocken in eine Dockingstation während ein Benutzer angemeldet ist, scheint alles zu funktionieren. Eindocken führt auch nicht mehr zu einem Absturz. Es wird nur der Bildschirm an der Dockingstation fehlerhaft erkannt. Dies lässt sich durch ab- und wieder anmelden des Benutzers oder reboot in der Dockingstation beheben.