Wie verkette ich GRUB2 für Ubuntu 10.04 von Truecrypt und seinem Bootloader (Multi-Boot neben Windows XP-Partition)?

9

Ich möchte, dass Truecrypt wie gewohnt nach einem Kennwort für Windows XP fragt, aber mit der Standardoption [ESC] möchte ich bei Auswahl dieses Kennworts, dh über die Escape-Taste, den Grub für die (unverschlüsselte) Ubuntu-Installation finden.

Ich habe Windows XP auf der 120-GB-Festplatte eines Toshiba NB100-Netbooks installiert, dann partitioniert, um Platz für Ubuntu 10.04 zu schaffen, und das nach der Installation von Windows XP installiert.

Wenn ich Windows XP verschlüssele, überschreibt Truecrypt den Grub-Eintrag im Master Boot Record (MBR). Ich glaube (?) Und kann nicht mehr zwischen XP und Ubuntu wählen. Also muss ich es wieder herstellen.

Ich habe ziemlich ausführlich in Ubuntu-Foren und anderswo nach Antworten gesucht, aber noch keine vollständige Antwort gefunden, die alle Eventualitäten, Szenarien und Fehlermeldungen abdeckt, oder sie sprechen auf andere Weise von Legacy-GRUB und nicht von GRUB2. Ubuntu 10.04 verwendet GRUB2.

Mein Setup:

Partitionen:

  1. Windows XP, NTFS (mit Truecrypt zu verschlüsseln), 40 GB
  2. / boot (Ext4, 1 GB)
  3. Ubuntu-Tausch, 4 GB
  4. Ubuntu / (root) - Hauptdateisystem (20 GB)
  5. NTFS-Freigabe, 55 GB

Ich weiß, dass der Truecrypt-Bootloader den GRUB beim Booten ersetzt, da ich ihn bereits auf einem anderen Laptop ausprobiert habe.

Ich möchte, dass der Bootloader-Bildschirm ungefähr so ​​aussieht wie üblich:

Truecrypt

Passwort eingeben:

(oder [ESC] zum Überspringen)

Das Passwort ist für Windows XP und beim Drücken von [ESC] wird das Ubuntu-Grub gefunden, von dem aus gebootet werden soll

Vielen Dank im Voraus für Ihre Hilfe.

Der Hauptbereich des Problems besteht darin, Truecrypt anzuweisen, wenn die Escape-Taste gedrückt wird, und wie Grub / Ubuntu für den Truecrypt-Bootloader sichtbar gemacht werden kann, um es zu finden, wenn die Esc-Taste gedrückt wird. Auch als Verkettung bekannt.

Therobyouknow
quelle

Antworten:

6

Das ist ziemlich einfach. Partitionieren Sie Ihre Festplatte, installieren Sie Windows und Ubuntu. Verwenden Sie TrueCrypt auf der Windows-Partition, wodurch Windows verschlüsselt wird, Ubuntu jedoch unverschlüsselt bleibt.

Sie werden dann feststellen, dass Sie wahrscheinlich nur Windows und dann den TrueCrypt-Bootloader starten können. Klingt so, als wärst du schon da.

Angenommen, Ihre Festplatte ist sdamit Windows sda1und Linux eingeschaltet sda2(dies ist hypothetisch, Ihre sieht so aus, als würde es nicht so sein sda2). TrueCrypt wird auf dem MBR installiert sdaund überschreibt GRUB.

Verwenden Sie die Ubuntu-Distributions-CD, um eine Live-CD zu starten, und chrooten Sie dann in Ihr vorinstalliertes System. Wie so:

sudo su -
mkdir -p /mnt/ubuntu
mount /dev/sda2 /mnt/ubuntu
mount --bind /proc /mnt/ubuntu/proc
mount --bind /dev /mnt/ubuntu/dev
chroot /mnt/ubuntu

Dann installieren Sie den GRUB - Bootloader, sondern sda2statt sda.

grub-install /dev/sda2 --force

Wenn Sie dann neu starten, werden Sie weiterhin vom TrueCrypt-Loader aufgefordert, ein Kennwort für den Start von sda-> sda1in Windows einzugeben. Wenn Sie jedoch ESCAPE drücken, haben Sie die Möglichkeit, Linux zu umgehen und direkt zu starten, jedoch sda2nicht über den MBR.

Aber warte

Bevor Sie dies tun, eine Einschränkung: Wenn Sie sich grub-installirren und den sdaMBR überschreiben , oder wenn Sie ein Kernel-Upgrade durchführen, das GRUB zum Überschreiben des MBR auslöst, müssen Sie den TrueCrypt-Bootloader neu installieren, um zurück zu gelangen in Windows. Dies ist ein großer Aufwand, wenn Sie nicht vorbereitet sind.

Ich würde vorschlagen, dass Sie, bevor Sie mit GRUB herumspielen, das TrueCrypt-Bootloader-Zeug unter Linux sichern. Auf diese Weise können Sie TrueCrypt leicht zurückschreiben, wenn Sie es brechen und nur in Linux einsteigen können.

Sichern Sie Ihren TrueCrypt-Bootloader:

dd if=/dev/sda of=~/truecrypt.mbr count=1 bs=512
dd if=/dev/sda of=~/truecrypt.backup count=8 bs=32256 # Just in case

Stellen Sie Ihren TrueCrypt-Bootloader wieder her (ich nenne das restore-truecrypt.sh):

sudo dd if=~/truecrypt.mbr of=/dev/sda count=1 bs=512
sudo dd if=~/truecrypt.backup of=/dev/sda count=8 bs=32256
sudo grub-install /dev/sda2 --force

Ich habe diese beiden Befehlssätze in kleinen Shell-Skripten, die ich immer griffbereit habe. Wenn ich versehentlich meinen Bootloader zappe (es passiert), möchte ich nicht nach Befehlen googeln oder lesen man.

Oh, und ein Wort zur Kompatibilität. Wenn ich "GRUB" schreibe, meine ich GRUB 1 oder 2. Persönlich mache ich das mit GRUB 2 unter 10.04 und Windows 7 ... aber es hat gut mit älteren Versionen von GRUB, Windows und Linux funktioniert.

Aidan Fitzpatrick
quelle
Vielen Dank @fitzpatrick für diese Antwort. Ich werde es überprüfen, wenn ich noch etwas Zeit habe. Ich habe mich mitreißen lassen, als ich versucht habe, es zum Laufen zu bringen, also habe ich mit Sicherheit Ihre genaue Richtung :) Ich werde Sie hier wissen lassen, was meine Ergebnisse sind.
Therobyouknow
Was genau ist "dd if = / dev / sda von = ~ / truecrypt.backup count = 8 bs = 32256" sichern? TC-Header? Vielen Dank!
stefan.at.wpf
Ist sda2 die / boot-Partition?
stefan.at.wpf
ok sda2 ist die Wurzelpartition, verdammt, meine ist verschlüsselt ...
stefan.at.wpf
Der ddBefehl kopiert die ersten 32 KB der Festplatte: im Grunde den vollständigen Bootsektor. In dem oben angegebenen Beispiel gibt es keine separate Boot-Partition. Die Nix-Installation befindet sich auf einer einzelnen Partition. In den frühen RedHat-Tagen habe ich mit separaten Partitionen auf Linux-Desktops gearbeitet. Heutzutage denke ich, dass Sie mit großen Festplatten in den meisten Fällen dieses Rigmarole für Ihre Server speichern können!
Aidan Fitzpatrick
2

Die Antwort, die ich auf diese Frage akzeptieren werde, ist meine eigene. Und diese Antwort lautet zu akzeptieren, dass ich dies nicht tun kann und eine der Alternativen akzeptieren werde:

  1. Verwenden Sie eine Virtualisierungs- / VMware-Anwendung, die unter Windows XP (der verschlüsselten Systemlaufwerkspartition) unter Ubuntu ausgeführt wird, z. B. VirtualBox, VMWare oder Parallels. Ich müsste also Windows starten, dann diese Anwendung ausführen und Ubuntu von dort aus starten. Einige Kommentatoren nennen einen der Nachteile dieses Ansatzes, dass Sie zweimal booten müssen (zuerst XP, dann Ubuntu), um zu Ubuntu zu gelangen. Ich würde jedoch sagen, dass es tatsächlich einen Vorteil gegenüber gewöhnlichen BIOS-gestarteten Dual-Booten hat, da tatsächlich beide Betriebssysteme gleichzeitig ausgeführt werden. Ideal, wenn Sie beispielsweise Anwendungen oder Webseiten schnell auf mehreren Plattformen testen möchten.

  2. Verwenden Sie eine sekundäre Festplatte oder SD-Karte (z. B. 8 GB, 16 GB) für Ubuntu und wählen Sie aus dem BIOS-Boot (einmalig), um Ubuntu daraus zu starten.

* Kann nicht = bedeutet wirklich, dass ich genug Zeit damit verbracht habe (ungefähr 6 Stunden über 3 Tage, wegzugehen, meine Gedanken zu klären, nach Foren zu suchen, die erfrischt zurückkehren) und nicht bereit bin, mehr auszugeben. Ich kann also nicht beschuldigt werden, faul zu sein und mich auf andere zu verlassen. Kann nicht = bedeutet auch: kann im Moment nicht . Ich werde das vielleicht noch einmal wiederholen.

Hier sind einige Referenzen, die andere möglicherweise nützlich finden:

Alle oben genannten Punkte bieten einige Einblicke, aber keine endgültige vollständige Antwort, die alle Eventualitäten oder Grub-Versionen abdeckt.

Ich habe dieselbe Frage hier im Superuser, in Ubuntuforums und in TrueCrypt-Foren gepostet:

Meine Rechtfertigung dabei ist, dass Leser dieser Foren nicht unbedingt andere Foren lesen, es wird einige Überschneidungen geben, aber einige wichtige Ratschläge werden möglicherweise übersehen.

Hintergrundgedanken und Erkenntnisse (bei Interesse!)

Ich bin eigentlich sehr erfreut zu sagen, dass ich es einen Tag genannt habe und zu den Alternativen gekommen bin, obwohl ich mich davon überwältigen ließ und weiter darum kämpfte, meine Antwort zu gewinnen und zu lösen. Aber es ist eine Erleichterung zu akzeptieren, dass dies nicht (einfach) möglich ist und dass es Alternativen gibt. Jetzt kann ich mit wichtigeren Dingen weitermachen! Ich habe bereits Windows 7 und Ubuntu 10.04 auf einem Desktop ohne Verschlüsselung dual gebootet - das ist ein ziemlich unkomplizierter Vorgang. Und mit den Alternativen bin ich nicht weit von dem entfernt, was ich in meiner ursprünglichen Antwort wollte. Eigentlich benutze ich Ubuntu momentan nicht so oft auf einem Notebook wie Windows, also werde ich es nicht so sehr vermissen. Ich habe auch ein MacBookPro, bin also keineswegs mehr ein Windows-Fan als jedes andere Betriebssystem!

Hier ist ein Grund, warum ich aus der Sicht eines anderen Benutzers Truecrypt-verschlüsseltes Windows-Dual-Booten mit Ubuntu möchte:

http://blog.mfabrik.com/2008/07/15/perfect-dual-boot-crypted-hard-disk-setup-with-truecrypt-and-luks/

"Ich habe einen Arbeits-Laptop, der in Symbian und in der Webentwicklung verwendet wird. Ich muss in der Lage sein, sowohl Vista als auch Linux zu starten. Aus Datenschutzgründen müssen beide Betriebssysteme für den Fall eines verlorenen Laptops verschlüsselt werden. Auch wenn ich kein Windows verwende aktiv können seine Webbrowser-Daten gespeicherte Kennwörter für Client-Systeme enthalten, und es wäre katastrophal, sie versehentlich zu verlieren. "

Grub2 ist viel komplexer als Grub, manche könnten dies unbedingt argumentieren. Ich hatte Erfolg mit Ubuntu vor 10.04 (GRUB nicht GRUB2) mit Windows XP:

http://www.howtoforge.com/forums/showthread.php?p=184776#post184776

Ich sage komplexer, weil jetzt mehr Einstellungsdateien vorhanden sind, die auf mehr Verzeichnisse mit Referenzen zwischen ihnen verteilt sind, einige jetzt maschinell generiert werden und von deren Bearbeitung abgeraten wird, z. B. Startmenü, es gibt eine Art Skriptsprache zu lernen und Skriptinterpreter, die ausgeführt werden, wenn eine Änderung vorgenommen wird. Es ist im Moment zu kompliziert für mich und nur zum Starten eines Betriebssystems, nicht einer Rakete zum Mond!

Therobyouknow
quelle
Eine Option , ich habe noch nicht in Betracht gezogen wird mit dem Ubuntu Alternate CD / ISO - Image - Download hier: releases.ubuntu.com/lucid Wenn Sie auf dem Ubuntu - Forum (Link oben) sehen , wo ich eine Kopie der Frage gestellt haben, Sie sehen einen Beitrag des Befragten, der dies erwähnt. Der entscheidende Punkt ist, dass Sie die Wahl haben, wo Sie GRUB platzieren möchten (und dies offiziell und ordnungsgemäß tun würden, anstatt manuell zu raten, wie ich es getan habe), und das Poster behauptet, dass sie verschlüsseltes Ubuntu und Truecrypted Windows auf demselben Computer erreicht haben - Das war mein Ziel.
Therobyouknow
1

Ich denke, ich habe das gerade ziemlich reibungslos gelöst. Meine ursprüngliche Situation war wie folgt: Ich hatte ein unverschlüsseltes Netbook (MSI U160) mit einer Windows 7-Partition und einer Ubuntu 10.10-Partition (Ubuntus grub2 sitzt im MBR).

  1. Um Truecrypt zu installieren, musste ich Windows 7 auf seiner ursprünglichen Partition neu installieren.
  2. Dann habe ich truecrypt installiert (Verschlüsselung der gesamten Windows 7-Partition)
  3. Mit diesen Anweisungen habe ich Ubuntu von einem USB-Stick neu installiert und den grub2-Loader auf der Ubuntu-Partition platziert
  4. Nach dem Neustart erhalte ich den TrueCrypt-Bootloader. Ich drücke [ESC] und erhalte eine Liste der bootfähigen Partitionen, einschließlich der Linux-Partition (es wird auch die Windows-Partition angezeigt, aber da diese verschlüsselt ist, schlägt das Booten fehl).

Ich hoffe, das wollen Sie auch.

Huhu Lesny
quelle
1

Ich habe gerade die letzten 2 Tage damit verbracht, dagegen anzukämpfen, und konnte keine dieser Antworten für mich arbeiten lassen. Was ich endlich zum Arbeiten gebracht habe, habe ich in meinem Blog dokumentiert . Hier ist die zusammenfassende Version (fertig mit Debian Wheezy; sollte auch für Ubuntu funktionieren. Andere Distributionen müssen möglicherweise geringfügig geändert werden):

Im Wesentlichen laden Sie GRUB2 in eine Kette, um SYSLINUX zu laden, wodurch das TrueCrypt Rescue-ISO-Image gestartet wird, mit dem Sie Linux starten können.

  1. Installieren Sie syslinux:

    sudo aptitude install syslinux
    
  2. Kopieren Sie die Dateien an ihren Platz:

    sudo cp /usr/lib/syslinux/memdisk /boot/
    sudo cp TrueCrypt\ Rescue\ Disk.iso /boot/truecrypt-rescue-disk.iso
    
  3. Bestimmen Sie die UUID Ihrer Boot-Partition:

    sudo blkid /dev/sda2
    

    Die Ausgabe sollte ungefähr so ​​aussehen:

    / dev / sda3: UUID = "12345678-1234-1234-1234567890"

  4. GRUB2 konfigurieren:

    Fügen Sie Folgendes hinzu zu /etc/grub.d/40_custom:

    menuentry "TrueCrypt ISO boot" {
        insmod part_msdos
        insmod fat
        insmod ext2
        insmod search_fs_uuid
        search --fs-uuid --no-floppy --set=boot [UUID without quotes]
        linux16 ($boot)/memdisk iso raw
        initrd16 ($boot)/truecrypt-rescue-disk.iso
    }
    
  5. Laden Sie die GRUB2-Konfiguration erneut

    sudo update-grub
    

Beachten Sie, dass dies Ihnen bei jedem Start von Windows die Reparaturoptionen [F8] anzeigt, da wir das System täuschen, das das TrueCrypt Rescue-CD-Image von der Festplatte startet, und nicht die "normale" TrueCrypt-Startmethode. Aber es scheint mir ein kleiner Nachteil zu sein (und könnte sogar als zusätzliches Feature angesehen werden!)

Schwach
quelle
+1 Gegenstimme für Ihre erfolgreichen Bemühungen, großartige Arbeit @Flimzy Irgendwann möchte ich Ihre Antwort versuchen und zurückmelden, und wenn ich Ihren Erfolg wiederholen kann, möchte ich Ihre Antwort als akzeptiert ansehen (ich könnte dies sowieso früher tun als Ich habe keine Maschine zum Experimentieren, sie werden derzeit alle für andere Zwecke verwendet. Danke noch einmal!
Therobyouknow
-1

Lösung: Kopieren Sie den TrueCrypt-Bootloader möglicherweise in eine IMG-Datei, um ihn von grub zu starten. oder vielleicht Grub4Dos verwenden, um Ubuntu zu laden?

huan keur
quelle