Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Ubuntu 10.04 „Lucid Lynx“
Dieser Artikel wurde für die folgenden Windows-Versionen getestet:
Windows XP 32 bit
Windows Vista 64 bit
Windows 7 64 bit
Es existiert mittlerweile eine sehr viel einfachere Variante, die komplett ohne manuelle Schritte auskommt. Diese wird am Ende des Artikels beschrieben.
Dieser Artikel beschäftigt sich mit der Installation einer Dualboot-Umgebung, in der sowohl die Windows- als auch die Ubuntu-Partitionen komplett verschlüsselt sind. Der Artikel beschreibt, worauf man beim Installieren der Systeme achten sollte und wie ein Bootloader, der beide verschlüsselten Systeme starten kann, eingerichtet wird. Verschlüsselt wird mit:
Benötigt werden
TrueCrypt, jeweils für Windows und für Ubuntu, von der offiziellen Homepage
Ubuntu Alternate CD
Ubuntu Desktop CD
Super Grub Disk
Als Ergebnis sollte dann folgende Konfiguration vorliegen:
Bootloader: Grub[4], der wahlweise Ubuntu startet oder den Truecrypt-Bootloader lädt, falls Windows gebootet werden soll
Partition 1: Windows mit Truecrypt verschlüsselt, kann später in Ubuntu zum Dateiaustausch gemountet werden.
Partition 2: /boot (notwendigerweise unverschlüsselt)
Partition 3: LVM[3] mit Ubuntu, mit dm-crypt verschlüsselt.
Vor dem Einrichten des System sollte man folgende Punkte erledigen um später nicht unvorbereitet zu sein:
Windowstreiber zusammen suchen.
Gedanken über die Größen der Partitionen machen, da man die verschlüsselte NTFS-Partition später nicht mehr vergrößern oder verkleinern kann, ohne sie vorher komplett zu entschlüsseln.
CD-Rohling für die Rescue-CD von TrueCrypt bereitlegen
Den ganzen Artikel lesen und sicherheitshalber ausdrucken
Bei der Partitionierung muss beachtet werden, dass (aufgrund von Truecrypt-Restriktionen) die Systempartition möglichst die erste Partition der Festplatte ist. Auf jeden Fall sollte die erste Partition eine Partition mit einem Windows-Dateisystem sein. Der Speicherplatz, auf dem später Ubuntu installiert werden soll, kann noch unformatiert belassen werden. Auf andere Besonderheiten muss nicht geachtet werden.
Als nächstes wird Ubuntu auf einer verschlüsselten Partition installiert. Dazu gibt es verschiedene Wege:
Die Installation mit LVM[3] benötigt etwas mehr Kenntnisse, hat aber den Vorteil, das nur zwei echte Partitionen benötigt werden. Die Installation kann erfolgen mit
Alternativ kann Ubuntu auch, wie im Artikel System_verschlüsseln/Schlüsselableitung[8] beschrieben, ohne die Verwendung von LVM installiert werden. So werden zwar mehr Partitionen benötigt, diese können dafür jedoch später in Windows zum Datenaustausch eingebunden werden.
Ab Ubuntu 9.10 wird standardmäßig der Bootloader Grub 2 anstelle von Grub Legacy installiert[4]. Da mit Grub 2 das Laden des Truecrypt-Bootloader zur Zeit jedoch nicht funktioniert, muss bei Ubuntu-Installationen ab Version 9.10 der Bootloader Grub 2 nach der Installation durch Grub Legacy ersetzt werden, was im Artikel Grub_2_durch_Grub_ersetzen[5] beschrieben wird. Alternativ kann der Windows-Bootloader als Hauptbootloader verwendet werden.
Zur Verschlüsselung der Windowspartition installiert und startet man unter Windows Truecrypt.
In Truecrypt wählt man nun "Create Volume". Im erscheinenden Fenster muss man nun „Encrypt the system partition or entire system drive“ auswählen. Man verwendet ein normales Volume, kein verborgenes ("hidden"). Im Folgedialog unbedingt „Encrypt the Windows system partition“ auswählen. Der nächste Dialog fragt, ob es sich um ein Single- oder Multibootsystem handelt. Obwohl das Gegenteil wahr ist, wählt man „Single-Boot“ aus, da Truecrypt das Fortsetzen sonst verweigert. Die aus dieser Lüge resultierenden Probleme werden im nächsten Abschnitt gelöst. In den nächsten Schritten erzeugt man die Schlüssel, legt ein sicheres Passwort fest und brennt eine Rescue-CD, dann wird neu gestartet.
Anstelle von Grub erscheint nun der Truecrypt-Bootloader. Hier gibt man sein Passwort zur Probe ein. Nach dem erfolgreichem Booten wird die Windows-Partition von Truecrypt verschlüsselt.
Falls man zu einem späteren Zeitpunkt ein TrueCrypt-Update unter Windows durchführt, wird dabei der Grub-Bootloader im MBR wieder überschrieben. Dadurch kann Ubuntu nicht mehr gestartet werden. Um dieses Problem zu beheben, müssen danach die im Abschnitt Bootmanager einrichten beschriebenen Schritte wiederholt werden.
Der nachfolgende Abschnitt wird nun den Truecrypt-Bootloader sichern, Grub wiederherstellen und dann Grub so einrichten, dass, wenn man Windows booten will, der gesicherte Truecrypt-Bootloader verwendet wird.
Als ersten Schritt bootet man mit einer beliebigen Linux-Live-CD und bindet die /boot-Partition von Ubuntu ein[9]. Im folgenden wird davon ausgegangen, dass die Ubuntu /boot-Partition nach /mnt/boot eingebunden wurde und der Computer von sda bootet. Wenn das nicht der Fall ist, müssen natürlich alle Befehle angepasst werden.
Danach sichert man den im MBR befindlichen TrueCrpyt-Bootloader mit folgendem Befehl:
dd if=/dev/sda of=/mnt/boot/truecrypt.mbr count=1 bs=512
Anschließend richtet man Grub[4] so ein, dass zum Booten von Windows der Truecrypt-Bootloader aus der Datei truecrypt.mbr geladen wird. Hierzu öffnet man in einem Editor[11] mit Root-Rechten die Konfigurationsdatei von Grub, welche unter /mnt/boot/grub/menu.lst liegen sollte.
Ganz am Ende steht der Boot-Eintrag für Windows. Diesen ändert man nun in:
title Microsoft Windows rootnoverify (hdX,Z) makeactive chainloader (hdX,Y)/truecrypt.mbr boot
Das (hdX,Z)
bei rootnoverify
muss auf die Windows-Partition zeigen und (hdX,Y)
bei chainloader
auf die /boot Partition von Ubuntu, da dort nun der Bootloader von TrueCrypt liegt. Falls Windows auf der ersten Partition der ersten Festplatte liegt und die Ubuntu Boot-Partition auf der zweiten Partition derselben Festplatte, wird also (hdX,Z)
zu (hd0,0)
und (hdX,Y)
zu (hd0,1)
.
Um Probleme bei späteren Updates zu vermeiden, sollte der manuell geänderte Boot-Eintrag für Windows nach den Kennzeichner ### END DEBIAN AUTOMAGIC KERNELS LIST
verschoben werden (siehe hier).
Falls Grub-Legacy nicht auf der verwendeten Live-CD enthalten ist (z.B. Ubuntu Desktop CD ab Version 9.10) muss nun ein allenfalls vorhandenes "grub 2" deinstalliert werden und das Paket
grub
mit apturl
Paketliste zum Kopieren:
sudo apt-get install grub
sudo aptitude install grub
installiert werden[10].
Anschließend muss der Grub-Bootloader wieder in den MBR geschrieben werden. Am einfachsten ist die im Grub-Wikiartikel[4] beschriebene root-directory-Methode, also im Normalfall im Terminal mit
sudo grub-install --root-directory=/mnt /dev/sda
Wenn sowohl Windows als auch Ubuntu verschlüsselt sind und Grub nun wiederhergestellt ist, sollte das Booten von beiden Betriebssystemen getestet werden. Beim Rechnerstart sollte zunächst Grub starten und Ubuntu und Windows zur Auswahl bieten.
Startet man Ubuntu, so wird man nach kurzer Zeit im Ubuntu-Bootscreen zur Eingabe des Passworts für das System gebeten.
Startet man Windows in Grub, so wird der Truecrypt-Bootloader geladen, der nach Eingabe des korrekten Passworts Windows bootet.
Die Windowspartition kann in Ubuntu zum Dateiaustausch eingebunden werden. Will man die Partition über die grafische Oberfläche einbinden, so muss im Passwortdialog von TrueCrypt unter "Mount Options" die Option "Mount partition using system encryption without pre-boot authentification" ausgewählt werden. Während des Eingebens des Passwortes sollte das Tastaturlayout auf US umgestellt werden, da in der pre-boot-Umgebung von Truecrypt immer dieses verwendet wird.
Wer mag, kann die Partition auch automatisch beim Start einbinden lassen, z.B. mit einem Eintrag in die rc.local. Der korrekte Truecryptbefehl lautet:
sudo truecrypt --text --non-interactive --mount-options=system --fs-options=uid=1000 --password=geheim /dev/sda1 /media/sda1
Da das Passwort bei dieser Methode im Klartext in der rc.local liegt, sollte man die Dateirechte so setzten, dass nur Root lesen kann. Mit der Option --fs-options
wird die eigene Nutzer-ID übergeben. Dadurch wird die Partition von mount
so eingebunden, dass man Lese- und Schreibrechte hat. Die uid lässt sich zum Beispiel mit dem Befehl id -u
ermitteln.
Hat man Ubuntu ohne LVM installiert, kann die Ubuntu-Partition auch unter Windows eingebunden werden. Allerdings sind die entsprechenden Windowstreiber noch nicht ausgereift, so dass es zu Bluescreens und anderen Problemen kommen kann.
Alternativ kann auch den Windows-Bootloader statt Grub als Hauptbootloader genutz werden. Dazu wird Grub bei der Ubuntu-Installation nicht in den MBR, sondern auf die /boot-Partition geschrieben. Die Schritte zum Sichern des Truecrypt-Bootloaders, der Bearbeitung der menu.lst und der Wiederherstellung Grubs in den MBR fallen weg. Stattdessen fügt man Ubuntu, bzw. Grub auf der /boot-Partition dem Windows-Bootloader hinzu. Unter Windows Vista geht dies mit dem Programm EasyBCD . In dieser Konfiguration wird beim Starten des Rechners zunächst nur der Truecrypt-Bootloader geladen. Will man Ubuntu starten, drückt man
Esc . Der Truecrypt-Bootloader lädt dann den Windows-Bootloader. Dieser lädt, wenn man Ubuntu auswählt, wiederum Grub.
Das ganze geht auch manuell ohne EasyBCD:
Dazu muss unter Linux der Grub-Bootloader in eine Datei gespeichert werden:
dd if=/dev/hdaX of=/mnt/windowspartition/grub.br count=1 bs=512
Dabei ist hdaX
die Partition auf dem der Grub-Bootloader installiert wurde. (z.B. /boot auf /dev/hda1, mbr auf /dev/hda; mit bs=446
auch ohne Partitionsdaten)
Dann unter Windows in die boot.ini folgenden Eintrag einfügen:
c:/grub.br="Linux"
Somit steht in der boot.ini in etwa Folgendes:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows XP" /fastdetect c:\grub.br="Linux"
Windows installieren
Ubuntu mit Verschlüsslung installieren und dabei Grub in die Boot-Partition installieren
Windows starten und mit Truecrypt die Windows-Partition verschlüsseln
Hat man diese 3 Schritte korrekt ausgeführt, erscheint beim Booten zunächst der Truecrypt-Bootloader. Nach Eingabe des Windows-Verschlüsselungs-Passwortes startet Windows. Alternativ kann ESC gedrückt werden, woraufhin eine Liste der bootfähigen Partitionen erscheint. Hier kann man nun die Ubuntu-Boot-Partition ausgewählt werden, woraufhin Grub startet und somit Ubuntu gebootet werden kann.
Diese Variante hat den Vorteil, komplett ohne manuelle Schritte auszukommen. Die Variante wurde mit Windows 7 64-bit und 12.04 getestet.