Comment chaîner GRUB2 pour Ubuntu 10.04 à partir de Truecrypt et de son chargeur de démarrage (multi-démarrage avec la partition Windows XP)?

9

Je veux que Truecrypt demande le mot de passe pour Windows XP comme d'habitude mais avec l'option [ESC] standard, en le sélectionnant, c'est-à-dire via la touche Échap, je veux qu'il trouve le grub pour l'installation Ubuntu (non cryptée).

J'ai installé Windows XP sur le disque dur de 120 Go d'un netbook Toshiba NB100 puis partitionné pour faire de la place pour Ubuntu 10.04 et l'ai installé après l'installation de Windows XP.

Lorsque je crypte Windows XP, Truecrypt écrase l'entrée grub dans l'enregistrement de démarrage principal (MBR), je crois (?) Et je ne pourrai plus choisir entre XP et Ubuntu. Je dois donc le restaurer.

J'ai cherché assez largement des réponses sur les forums Ubuntu et ailleurs, mais je n'ai pas encore trouvé de réponse complète qui couvre toutes les éventualités, scénarios et messages d'erreur, ou sinon ils parlent de GRUB hérité et non GRUB2. Ubuntu 10.04 utilise GRUB2.

Ma configuration:

Cloisons:

  1. Windows XP, NTFS (à chiffrer avec Truecrypt), 40 Go
  2. / boot (Ext4, 1 Go)
  3. Échange Ubuntu, 4Gb
  4. Ubuntu / (root) - système de fichiers principal (20 Go)
  5. Partage NTFS, 55 Go

Je sais que le chargeur de démarrage Truecrypt remplace le GRUB au démarrage car je l'ai déjà essayé sur un autre ordinateur portable.

Je veux que l'écran du chargeur de démarrage ressemble à quelque chose comme d'habitude:

Truecrypt

Entrer le mot de passe:

(ou [ESC] pour sauter)

le mot de passe est pour WindowsXP et en appuyant sur [ESC] pour trouver le grub Ubuntu à partir duquel démarrer

Merci d'avance pour votre aide.

La zone clé du problème est de savoir comment indiquer à Truecrypt lorsque la touche d'échappement est enfoncée et comment le Grub / Ubuntu peut être rendu visible par le chargeur de démarrage truecrypt pour le trouver, lorsque la touche esc est enfoncée. Sachant également que l'enchaînement.

therobyouknow
la source

Réponses:

6

C'est assez simple. Partitionnez votre disque, installez Windows et Ubuntu. Utilisez TrueCrypt sur la partition Windows, qui cryptera Windows mais laissera Ubuntu non crypté.

Vous constaterez alors que vous ne pouvez probablement démarrer que sous Windows, puis via le chargeur de démarrage TrueCrypt. On dirait que vous y êtes déjà.

Supposons que votre disque soit sdasous Windows sda1et Linux sda2(c'est hypothétique, le vôtre semble ne pas l'être sda2). TrueCrypt s'installera sur le MBR sdaet remplacera GRUB.

Utilisez le CD de distribution Ubuntu pour démarrer un CD live, puis chrootez dans votre système préinstallé. Ainsi:

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

Installez ensuite le chargeur de démarrage GRUB, mais sda2plutôt que sda.

grub-install /dev/sda2 --force

Ensuite, lorsque vous redémarrez, vous obtenez toujours le chargeur TrueCrypt vous demandant un mot de passe pour démarrer à partir de sda-> sda1dans Windows. Mais lorsque vous appuyez sur ÉCHAP, vous aurez la possibilité de contourner et de démarrer directement sous Linux, mais à partir de sda2plutôt que le MBR.

Mais attendez

Avant de faire cela, une mise en garde: si vous vous grub-installtrompez et écrasez le sdaMBR, ou si vous effectuez une mise à niveau du noyau qui déclenche GRUB pour écraser le MBR, vous constaterez que vous devez réinstaller le chargeur de démarrage TrueCrypt afin de revenir dans Windows. C'est un gros problème si vous n'êtes pas préparé.

Je suggère qu'avant de jouer avec GRUB, vous sauvegardiez le truc du chargeur de démarrage TrueCrypt depuis Linux. De cette façon, lorsque vous cassez TrueCrypt et ne pouvez accéder qu'à Linux, vous pouvez facilement le réécrire.

Sauvegardez votre chargeur de démarrage TrueCrypt:

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

Restaurez votre chargeur de démarrage TrueCrypt (j'appelle cela 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

J'ai ces deux ensembles de commandes dans de petits scripts shell, que je garde à portée de main. Lorsque je zappe accidentellement mon chargeur de démarrage (cela arrive), je ne veux pas être sur Google pour les commandes ou la lecture man.

Oh, et un mot sur la compatibilité. Quand j'écris "GRUB", je voulais dire GRUB 1 ou 2. Personnellement, je le fais avec GRUB 2 sur 10.04 et Windows 7 ... mais cela fonctionnait bien avec les anciennes versions de GRUB, Windows et Linux.

Aidan Fitzpatrick
la source
Merci beaucoup @fitzpatrick pour cette réponse. Je vais le vérifier quand j'aurai encore du temps. Je me suis laissé emporter par moi-même en essayant de le faire fonctionner, donc je suis certainement votre direction précise :) Je vais vous faire savoir, ici, quelles sont mes conclusions.
therobyouknow
qu'est-ce que "dd if = / dev / sda of = ~ / truecrypt.backup count = 8 bs = 32256"? En-têtes TC? Merci!
stefan.at.wpf
en outre, sda2 est-elle la partition / boot?
stefan.at.wpf
ok sda2 est le parittion racine, putain, le mien est crypté ...
stefan.at.wpf
La ddcommande copie les 32 premiers Ko du disque: essentiellement le secteur de démarrage complet. Dans l'exemple que j'ai donné ci-dessus, il n'y a pas de partition de démarrage séparée, l'installation de nix se fait sur une seule partition. Au début de RedHat, j'avais l'habitude de travailler avec des partitions séparées sur des bureaux Linux. De nos jours avec de gros disques, je pense que vous pouvez enregistrer ce rigmarole pour vos serveurs dans la plupart des cas!
Aidan Fitzpatrick
2

La réponse que je vais accepter pour cette question est la mienne. Et cette réponse est d'accepter que je ne peux pas * faire cela et j'accepterai l'une des alternatives:

  1. Utilisez une application de virtualisation / VMware exécutée dans Windows XP (la partition de lecteur système chiffrée) hébergeant Ubuntu, comme VirtualBox, VMWare ou Parallels. Je devrais donc démarrer sous Windows, puis exécuter cette application et démarrer sous Ubuntu à partir de cela. Certains commentateurs citent l'un des inconvénients de cette approche comme étant que vous devez démarrer deux fois (d'abord XP, puis Ubuntu) pour accéder à Ubuntu. Cependant, je dirais que cela a en fait un avantage sur les doubles démarrages lancés par le BIOS en ce sens que vous avez en fait les deux systèmes d'exploitation en même temps. Idéal si vous souhaitez, par exemple, tester rapidement des applications ou des pages Web sur plusieurs plates-formes.

  2. Utilisez un disque dur secondaire ou une carte SD (par exemple 8 Go, 16 Go) pour Ubuntu et sélectionnez à partir du démarrage du BIOS (une fois) pour démarrer Ubuntu à partir de cela.

* Ne peut pas = signifie vraiment que j'ai passé assez de temps (environ 6 heures sur 3 jours, m'éclaircir l'esprit, rechercher des forums revisités) à ce sujet et je ne suis pas prêt à dépenser plus. Je ne peux donc pas être accusé d'être paresseux et de compter sur les autres. Can't = signifie également: Can't pour le moment . Je reviendrai peut-être là-dessus.

Voici quelques références que d'autres pourraient trouver utiles:

Tout ce qui précède offre un aperçu mais pas une réponse complète définitive qui couvre toutes les versions éventuelles ou grub.

J'ai posté cette même question ici sur superutilisateur, sur les forums ubuntuforums et truecrypt:

Ma justification en faisant cela est que les lecteurs de ces forums ne liront pas nécessairement d'autres forums, il y aura des chevauchements mais certains conseils essentiels peuvent être manqués.

Réflexions et apprentissages (si vous êtes intéressé!)

En fait, je suis très heureux de dire que je l'ai appelé un jour et que j'ai trouvé des alternatives, même si je l'ai laissé prendre le dessus et j'ai continué à me battre pour gagner et résoudre ma réponse. Mais c'est un soulagement d'accepter que cela ne peut pas être fait (facilement) et qu'il existe des alternatives. Maintenant, je peux continuer avec des choses plus importantes! J'ai déjà double démarrage Windows 7 et Ubuntu 10.04 sur un bureau sans cryptage - c'est une procédure assez simple. Et avec les alternatives, je ne suis pas loin de ce que je voulais dans ma réponse originale. En fait, je n'utilise pas Ubuntu sur un ordinateur portable autant que Windows pour le moment, donc je ne le manquerai pas autant. J'ai également un MacBookPro, je ne suis donc pas plus un fan de Windows que n'importe quel autre OS!

Voici une raison pour laquelle je souhaiterais un double démarrage de Windows crypté avec Ubuntu, du point de vue d'un autre utilisateur:

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

"J'ai un ordinateur portable de travail utilisé dans Symbian et le développement Web. Je dois pouvoir démarrer Vista et Linux. En raison de la confidentialité des clients, les deux systèmes d'exploitation doivent être cryptés pour le cas d'un ordinateur portable perdu. Même si je n'utilise pas Windows activement, les données de son navigateur Web peuvent contenir un mot de passe stocké pour les systèmes clients et il serait catastrophique de les divulguer accidentellement. "

Grub2 est beaucoup plus complexe que grub, certains pourraient le dire nécessairement. J'ai eu du succès avec Ubuntu antérieur à 10.04 (GRUB pas GRUB2) avec Windows XP:

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

Je dis plus complexe car il y a plus de fichiers de paramètres maintenant présents, répartis sur plus de répertoires avec des références entre eux, certains sont maintenant générés par une machine et leur édition est déconseillée, par exemple le menu de démarrage, il y a une sorte de langage de script à apprendre et interprètes de script à exécuter lorsqu'une modification est effectuée. C'est trop impliqué pour moi en ce moment, et ce n'est que pour lancer un système d'exploitation, pas une fusée vers la lune!

therobyouknow
la source
Une option que je n'ai pas encore envisagée est d'utiliser l'image alternative Ubuntu CD / .ISO - téléchargez ici: releases.ubuntu.com/lucid Si vous regardez sur le forum Ubuntu (lien ci-dessus) où j'ai posté une copie de la question, vous verrez une publication du répondant qui le mentionne. Le point clé est qu'il vous donne un choix où mettre GRUB (et le ferait officiellement et correctement, plutôt que de deviner manuellement comme je l'ai fait) et l'affiche prétend qu'ils ont réalisé Ubuntu crypté et Windows Truecrypted sur la même machine - c'était mon objectif.
therobyouknow
1

Je pense que je viens de résoudre ce problème assez facilement. Ma situation d'origine était la suivante: j'avais un netbook non chiffré (MSI U160) avec une partition Windows 7 et une partition Ubuntu 10.10 (grub2 d'Ubuntu assis dans le MBR).

  1. Afin d'installer Truecrypt, j'ai dû réinstaller Windows 7 dans sa partition d'origine.
  2. Ensuite, j'ai installé truecrypt (cryptage de toute la partition Windows 7)
  3. En utilisant ces instructions, j'ai réinstallé Ubuntu à partir d'une clé USB, en plaçant le chargeur grub2 sur la partition Ubuntu
  4. Après le redémarrage, je reçois le chargeur de démarrage TrueCrypt. J'appuie sur [ESC] et j'obtiens une liste des partitions pouvant être utilisées, y compris celle de linux (elle montre également la partition Windows, mais comme elle est cryptée, le démarrage échouera).

J'espère que c'est aussi ce que vous voulez.

Huhu Lesny
la source
1

Je viens de passer les 2 derniers jours à lutter contre cela et je n'ai pu obtenir aucune de ces réponses pour moi. Ce que j'ai finalement réussi à faire, je l'ai documenté sur mon blog . Voici la version récapitulative (réalisée avec Debian Wheezy; devrait également fonctionner pour Ubuntu. D'autres distributions peuvent nécessiter de légères modifications):

Essentiellement, vous chargez GRUB2 en chaîne pour charger SYSLINUX, qui à son tour démarre l'image ISO TrueCrypt Rescue, qui vous permet de démarrer sous Linux.

  1. Installez syslinux:

    sudo aptitude install syslinux
    
  2. Copiez les fichiers en place:

    sudo cp /usr/lib/syslinux/memdisk /boot/
    sudo cp TrueCrypt\ Rescue\ Disk.iso /boot/truecrypt-rescue-disk.iso
    
  3. Déterminez l'UUID de votre partition de démarrage:

    sudo blkid /dev/sda2
    

    La sortie devrait ressembler à ceci:

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

  4. Configurez GRUB2:

    Ajoutez ce qui suit à /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. Recharger la configuration GRUB2

    sudo update-grub
    

Notez que cela vous montrera les options de réparation [F8] à chaque démarrage de Windows, car nous trompons le système en démarrant l'image du CD de secours TrueCrypt à partir du disque dur, plutôt que la méthode de démarrage TrueCrypt "normale". Mais cela me semble être un petit inconvénient (et pourrait même être considéré comme une fonctionnalité supplémentaire!)

Flimzy
la source
+1 vote positif pour vos efforts fructueux, excellent travail @Flimzy À un moment donné, je voudrais essayer votre réponse et faire rapport, et si je peux répéter votre succès, je voudrais que votre réponse soit acceptée (je pourrais le faire plus tôt de toute façon car Je n'ai pas de machine disponible pour expérimenter, ils sont tous utilisés pour d'autres choses en ce moment). Merci encore!
therobyouknow
-1

solution: peut-être copier le bootloader truecrypt dans un fichier IMG pour être démarré par grub? ou peut-être utiliser Grub4Dos pour charger Ubuntu?

huan keur
la source