Tutorial: TrueCrypt, Windows, Linux

Inspiriert zu dem Forenbeitrag von “yupp” im ubuntuusers Forum (Thread hier), schreibe ich ein kleines Tutorial, wie man neben dem mit TrueCrypt verschlüsseltem Windows, auch noch andere Betriebssysteme wie Linux per GRUB booten kann. Das ganze ist soweit relativ simpel und wird ausführlich erklärt.

Fangen wir aber komplett von vorne an. Installieren wir erstmal das Linux System, die Partition sollte folgend aussehen:

sda1: / – ext3
sda2: /boot – ext2 – ca. 200mb
sda3: /home – ext3
sda4: Windows System – NTFS

Weiter im Geschehen: Euer Linux System wurde installiert, gleich danach wird dann Windows auf sda4 installiert. Nachdem ihr Treiber und ähnliches eingebettet habt, ladet euch die aktuellste TrueCrypt Version von http://truecrypt.org herunter. Startet das Programm und es sollte euch zugleich eine Art Partitionsmanager ins Auge springen. Ihr seht oben ein Menüpunkt “System”. Dort klickt ihr auf “Encrypt System Partition/Drive” und ein Assistent sollte starten. Klickt im ersten Dialog gleich auf weiter, da ihr nur die Partiton von Windows verschlüsseln wollt und nicht die ganze Festplatte. Im Zweiten Dialog wird nun “Multi-Boot” angewählt. Nachdem euch gesagt wurde, dass Multi-Boot nicht für unerfahrene Nutzer geeignet ist, kommt man zur “Boot Drive” Auswahl, wo ihr ebenfalls Ja anklickt. Bei “Number of System Drives” dann auch wieder 2 or more. Danach dann bei “Multiple Systems on Single Drive” ebenfalls Ja. Jetzt müsst ihr “lügen” und sagen, es wäre ein Windows Bootloader installiert, da ansonsten die Verschlüsselung nicht gehen würde. Ist aber kein Problem. Geht nun weiter im Dialog und stellt die “Encryption Options” ein, sowie das Passwort das ihr beim Preboot zum entschlüsseln benötigt. Die Maximalanzahl von Zeichen im Passwort wurde von TrueCrypt auf 64 Zeichen gesetzt, ist aber kein Problem ein längeres zu nutzen. Keyfiles können hierbei nicht verwendet werden. Danach werdet ihr aufgefordert eine Rescue CD zu brennen. Das müsst ihr tun, sonst geht es an dem Punkt nicht weiter. Nach der Verifizierung sollt ihr dann den “System Test” durchführen, quasi das TC Bootloader wurde installiert, euer System startet neu und der TC Bootloader springt euch ins Gesicht. Gebt nun das Passwort ein, dass ihr als Verschlüsselungspasswort genutzt habt, brecht ihr mit ESC ab, startet Windows auch, jedoch schlägt der Test fehl und ihr müsst von neuen beginnen. Windows sollte jetzt normal starten und nach der Anmeldung müsste TrueCrypt aufpoppen. Lasst das Programm nun die System Partiton verschlüsseln, dazu könntet ihr auch noch einstellen, wie oft unbenutzter Platz überschrieben wird. Dadurch dauert der ganze Prozess aber länger. Habt ihr das geschafft, bootet eine Linux LiveCD wie Ubuntu. Ihr werdet euch jetzt fragen: “Wenn wir den MBR auf Festplatte 1 löschen, wie kann man dann Windows booten?”. Ganz einfach, wir sichern einfach den jetzigen MBR und lassen GRUB diesen booten. Startet ein Terminal und werdet per “sudo su” zum “root”, damit ihr nicht ewig den “sudo” Befehl nutzen müsst. Mountet nun eure bestehende Boot-Partition über die LiveCD Boot-Partition per:

mount /dev/sda2 /boot

Sollte das ohne Probleme erfolgen, gehen wir nun zum sichern des jetzigen MBRs. Das geschieht mit dem kleinen Tool “dd”. Gebt folgendes ein, um ihn zu sichern.

dd if=/dev/sda of=/boot/true_mbr bs=512 count=1

Der “alte” MBR ist jetzt auf eurer Boot-Partition gespeichert. Jetzt geht es daran, dass GRUB wieder Einzug in dem MBR hält. Dazu genügt folgendes:

grub-install /dev/sda
(Falls keine korrespondierenden BIOS Laufwerke gefunden werden, gebt das ein:
grub-install –recheck /dev/sda)

Das wäre geschafft. Aber es fehlt noch ein kleiner Schritt, bis Windows wieder bootbar ist. Öffnet die “menu.lst” im Ordner “/boot/grub/” und fügt folgendes rein:

title      Windows XP/Vista
root      (hd0,3)  # Partiton 4 auf HDD 1 ist Windows
savedefault
makeactive
chainloader   (hd0,1)/true_mbr # Partiton 2 beinhaltet den alten TC MBR, mit dem Namen “true_mbr”

Gut. Speichert das ganze einmal ab und startet den Rechner neu. Nach erfolgreichen tun, müsste GRUB starten und wenn ihr alles ordentlich in der menu.lst eingegeben habt, auch der TrueCrypt Bootloader. Achja, unter Linux könnt ihr TrueCrypt auch installieren und damit verschlüsselte Partitionen einbinden. Das einzige Manko was hier besteht ist, dass man eine verschlüsselte Windows Systempartition nicht einbinden kann. Keine Ahnung wieso die TrueCrypt Developer das nicht eingebaut haben. Gut, falls noch Fragen oder Probleme bestehen, schreibt einfach ein Kommentar und ich werde versuchen euch zu helfen. Das ganze ist hier nur eine Testkonfiguration, dass heißt also, dass wenn ihr eure Partitionen anders anlegt, dies auch in der menu.lst oder beim mounten der Boot-Partition berücksichtigen müsst.

Nun, dass war dann alles. Ich wünsche euch viel Spaß mit eurem verschlüsseltem Windows System und nebenher noch einem Linux oder anderem Betriebssystem.

Creative Commons License

Kleines Update: Seit einer gewissen Zeit lassen sich auch verschlüsselte Systempartitionen unter anderen Betriebssystemen mounten. (Siehe auch: Kommentar von Thorsten2k3)

Desweiteren gibt es unter Ubuntu 10.04 keine menu.lst mehr, diese wurde mit der grub.cfg ersetzt. Der Syntax für die Menüpunkte ist ein wenig anders, man sollte sich aber dennoch leicht darin zurechtfinden.

Post to Twitter

Dieser Beitrag wurde unter Allgemein abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

16 Antworten auf Tutorial: TrueCrypt, Windows, Linux

  1. EPower sagt:

    Hallo,

    Erstmal vielen Dank für deine Anleitung, doch ich hätte da ein Paar fragen.

    Wenn ich dann alles installiert hab und windows ist verschlüsselt da will ich noch \home verschlüsseln. Ich hab das mal gemacht nach irgendeiner Anleitung, also von \home alles rüber auf eine externe Festplatte. Dann in der Konsole dies und das eingegeben so dass die \home partition gelöscht und verschlüsselt wurde. allerdings war ich dann nicht in der lage irgendetwas zu machen, da ohne home nicht mal die konsole starten wollte und ich konnte von der externen festplatte auch nichts mehr kopieren da ich sie nicht mounten konnte. Könntest du mir helfen oder gibts eine idiotensichere Anleitung?

    Danke

    Gruß

  2. duke sagt:

    Nabend,

    Ich denk mal das du deine /home Partition ohne Preauthentication verschlüsselt hast? (Alternativ boote eine LiveCD, mounte die /home Partition auf der Externen Platte, lade Module die man zum mounten der verschlüsselten Partition brauch nach und mounte dann die schon vorhandene /home Partition auf deiner Internen Platte. Dann kannst du die Daten von der Externen Platte auf die Interne verschieben, rebooten und schauen ob’s geht.)
    Hab auch noch nen guten Wiki Eintrag zum Thema Verschlüsselung unter Linux => http://wiki.ubuntuusers.de/System_verschl%C3%BCsseln

    Allerdings für Ubuntu/Debian. Sollte sich aber bei anderen Distris ähnlich machen lassen. Empfiehlt sich eigentlich auch schon die Partition während der Linuxinstallation zu verschlüsseln, da man dann später den ganzen Stress von wegen kopieren, LiveCD booten etc. nicht hat. (LVM Encryption, bei Ubuntu ist das mit der Alternate CD machbar.)

  3. takey sagt:

    Ob /home da ist oder nicht, sollte uninteressant sein, da sich die Programme ala mount etc. in /etc & co. befinden.

    Grüße

  4. MadGladiator sagt:

    Hey,

    Ich hab mir deine Ausführung aufmerksam durchgelesen, und finde es gut, aber bei meinem System hab ich ein paar Probs:

    Ich hab auf dem Primary Drive Windows Vista, Windows Ultimate und jetzt Linux installiert.

    Meine System Config sieht ziemlich heftig aus.

    Könnte ich dir ein Bildschirmfoto schicken auf dem meine Platten sda usw… abgebildet sind?

    Und vor allem wo in der Menu.lst muß ich die Einträge vornehmen, ich will mein System nicht gerade jetzt verschrotten *grins*?

  5. duke sagt:

    Gute Frage. ;)
    Also im Prinzip musst du nur den Eintrag, der oben im Artikel beschrieben ist, in die menu.lst einfügen.

    title Windows XP/Vista
    root (hd0,3) # Partiton 4 auf HDD 1 ist Windows
    savedefault
    makeactive
    chainloader (hd0,1)/true_mbr # Partiton 2 beinhaltet den alten TC MBR, mit dem Namen “true_mbr”

    Du solltest dir dann halt im Bilde sein, welche Partition zum Windows System #1 und welches zu #2 gehört. Wenn du beide Windowssysteme verschlüsselt hast, musst du den Schritt mit dem MBR sichern zweimal tätigen. (Also sichern, dann anderes Win rannehmen, wieder sichern.)
    Die Sicherungskopie von dem MBR wird ja auf der /boot Partition gespeichert, also bleibt chainloader bis auf den Namen der MBR Datei unberührt. Das einzige was du dann brauchst, ist die Partition auf der Windows liegt “ausfindig” machen und eben mit dem “root” Eintrag ersetzen. Solltest du immernoch Probleme haben, schick einfach mal ein Bildchen rüber. ;)

  6. MadGladiator sagt:

    Hey,

    ich habe nun Grub installiert, nun fragt er mich nach den Bootloader Settings. Ich habe nun Vista Home fuer sda1 eingegeben, Vista ultimate auf sda5, wie in meiner Partitionstabelle angezeigt. sda 6 bis 9 ist linux, die /boot ist sda9, welche muss ich hier angeben?

    Oder muss ich auf Bootloader Installation gehen? Das hab ich auch probiert, allerdins bricht er hier mit einem Fehler ab…hmmmm

    Fr deine Hilfe waere ich dir echt dankbar. Ach ja, kannst du mir deine eMail Adresse geben um dir einen Screenshoot von meiner Partitionstabelle zu schicken?

    mfg

    MadGladiator

  7. MadGladiator sagt:

    Hey ich nochmal *grins*,

    Ich hab gerade meine menu.lst kopiert und setze sie hier mal rein, vielleicht könnt ihr mir sagen wo ich die neuen EInträge reinschreiben soll:

    # Modified by YaST2. Last modification on Mi Jun 25 18:28:22 CEST 2008
    default 0
    timeout 20
    gfxmenu (hd0,6)/boot/message

    ###Don’t change this comment – YaST2 identifier: Original name: windows###
    title Windows Auswahl
    rootnoverify (hd0,6)
    chainloader (hd0,0)+1

    ###Don’t change this comment – YaST2 identifier: Original name: linux###
    title openSUSE 11.0 – 2.6.25.5-1.1
    root (hd0,6)
    kernel /boot/vmlinuz-2.6.25.5-1.1-pae root=/dev/disk/by-id/scsi-SATA_SAMSUNG_SP1613NS0CVJ10A100336-part7 resume=/dev/sda6 splash=silent showopts vga=0x31a
    initrd /boot/initrd-2.6.25.5-1.1-pae

    ###Don’t change this comment – YaST2 identifier: Original name: failsafe###
    title Failsafe — openSUSE 11.0 – 2.6.25.5-1.1
    root (hd0,6)
    kernel /boot/vmlinuz-2.6.25.5-1.1-pae root=/dev/disk/by-id/scsi-SATA_SAMSUNG_SP1613NS0CVJ10A100336-part7 showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off x11failsafe vga=0x31a
    initrd /boot/initrd-2.6.25.5-1.1-pae

    Ich würde sagen im ersten Abschnitt, ist das richtig?

    mfg
    Mad

  8. duke sagt:

    title Windows Vista Home
    root (hd0,0)
    savedefault
    makeactive
    chainloader (hd0,9)/true_mbr

    title Windows Vista Ultimate
    root (hd0,4)
    savedefault
    makeactive
    chainloader (hd0,9)/true_mbr2

    Das sollte eigentlich gehen, wenn deine Partitionen wie du sie oben beschrieben hast so sind. ;)
    Mail wäre admin@botnetz.com :)

    Ah und wenn du die Win nicht mit TrueCrypt verschlüsselt hast, sollte bei “chainloader” ein “chainloader +1″ eigentlich genügen.

    Gutes gelingen. Wenn du einen IRC Clienten installiert hast, könntest du auch im “irc.freenode.org” in diversen Linuxchannels wie #ubuntu.de oder #grub fragen. :)

  9. takey sagt:

    Oder bei duke & mir auf irc.take.ag #take.ag :O. Achja, Yast2 sieht eher nach SuSE, als nach Ubuntu aus :>.

  10. Stephan sagt:

    Bei mir klappt das irgendwie nicht.

    Ich habe folgende Partitionen:

    Platte /dev/sda: 250.0 GByte, 250059350016 Byte
    255 Köpfe, 63 Sektoren/Spuren, 30401 Zylinder
    Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
    Disk identifier: 0x878eec38

    Gerät boot. Anfang Ende Blöcke Id System
    /dev/sda1 * 1 6374 51199123+ 7 HPFS/NTFS
    /dev/sda2 6375 6386 96390 83 Linux
    /dev/sda3 6387 30401 192900487+ 5 Erweiterte
    /dev/sda5 6387 6751 2931831 82 Linux Swap / Solaris
    /dev/sda6 6752 9183 19535008+ 83 Linux
    /dev/sda7 9184 30401 170433553+ 83 Linux

    Boot is auf sda2 (einzige HD im Notebook)

    /boot enthält:

    insgesamt 19582
    drwxr-xr-x 4 root root 1024 2008-07-10 11:31 .
    drwxr-xr-x 22 root root 4096 2008-07-09 10:13 ..
    -rw-r–r– 1 root root 420224 2008-06-18 18:47 abi-2.6.24-19-generic
    -rw-r–r– 1 root root 74164 2008-06-18 18:47 config-2.6.24-19-generic
    drwxr-xr-x 2 root root 1024 2008-07-08 18:14 grub
    -rw-r–r– 1 root root 8143215 2008-07-10 11:31 initrd.img-2.6.24-19-generic
    -rw-r–r– 1 root root 8143209 2008-07-08 18:14 initrd.img-2.6.24-19-generic.bak
    drwx—— 2 root root 12288 2008-07-08 17:49 lost+found
    -rw-r–r– 1 root root 103204 2007-09-28 13:03 memtest86+.bin
    -rw-r–r– 1 root root 1152332 2008-06-18 18:47 System.map-2.6.24-19-generic
    -rw-r–r– 1 root root 1903960 2008-06-18 18:47 vmlinuz-2.6.24-19-generic
    -rw-r–r– 1 root root 512 2008-07-09 18:40 WinXPMB

    Und das habe ich in der menu.lst

    title Windows XP Professionsl TC
    root (hd0,0) # Partition 1 auf HDD 1 ist Windows
    savedefault
    makeactive
    chainloader (hd0,1)/WinXPMB

    Meiner Ansicht nach müsste doch das so funken, oder?

  11. Stephan sagt:

    Addon:

    Ich kriege folgende Fehlermeldung:

    Error 13: Invalid or unsupported executable format

  12. duke sagt:

    Hm, merkwürdig. Normal sollte das eigentlich tun.
    Eventuell irgendwas beim MBR sichern daneben gegangen?

  13. Veronika sagt:

    Wahnsinn, danke, hat auf Anhieb funktioniert!

  14. blackle sagt:

    Excellent, hat auf Anhieb geklappt. Sogar von Linux aus die Systempartition mounten geht:

    # truecrypt -m nokernelcrypto -k “” –protect-hidden=no /dev/sda1 /mnt/windowsxp/

    Und Backup auch:

    # losetup -a
    /dev/loop/0: [000e]:3 (/tmp/.truecrypt_aux_mnt1/volume)
    # file /dev/loop/0
    /dev/loop/0: symbolic link to `../loop0′
    # umount /mnt/windowsxp
    # ntfsclone -s -o winxp.sda1.ntfsclone /dev/loop0

    ACHTUNG: ntfsclone kümmert sich nicht um bootrecord u. masterbootrecord. Zum Zurückspielen auf dieselbe Partition ist es geeignet, wenn man auf eine andere zurückspielt, fehlen die Bootrecords wenn man nicht selbst dafür sorgt!

    Testen des Backups:
    # ntfsclone -r -O Test.image winxp.sda1.ntfsclone
    # mount -o loop Test.image /mnt/test
    # ls -l /mnt/test

    Vielen Dank für Deinen Blog hierzu, er hat mir sehr geholfen und ich bin sehr froh, den normalen Grub im MBR zu haben!

  15. Mike sagt:

    Danke für das Tutorial; wird weiterhin gelesen!

  16. Thorsten2k3 sagt:

    zum Thema verschlüsselte Systempartion von Linux aus Mounten: Man muss bei den erweiterten Einstellungen “preboot authentication” auswählen und drauf achten das man als Tastaturlayout us-US braucht. (darauf weißt Truecrypt aber auch hin wenn das Mounten fehl schlägt)

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>