web-dev-qa-db-fra.com

Comment installer deux installations indépendantes d'Ubuntu sur un seul disque dur avec UEFI?

Pour des raisons de sécurité, j'aimerais installer un système d'exploitation secondaire complètement indépendant sur un ordinateur à disque dur unique utilisant UEFI. Les deux installations doivent pouvoir utiliser différentes partitions de chiffrement LUKS en tant que périphérique racine (LVM au-dessus de chiffrement) et doivent pouvoir utiliser leurs propres noyaux.

Avoir un double démarrage avec deux systèmes d'exploitation différents n'est pas un gros problème. Ubuntu et Fedora n'interfèrent pas et peuvent partager la partition système EFI, mais deux installations Ubuntu vont se battre car elles veulent toutes deux installer leur instance Grub sur le même emplacement EFI.

  • Existe-t-il un moyen de changer Ubuntu pour installer Grub à un emplacement différent de /boot/efi/EFI/ubuntu pendant l'installation? J'ai besoin d'un moyen persistant, de sorte que les mises à jour de paquetages et les mises à jour de noyau/grub continuent à s'installer dans ce chemin. Tout comme la façon dont Fedora installerait Grub dans /boot/efi/EFI/Fedora. Je ne trouve pas cette option de configuration dans Grub. Si je pouvais, mon menu de démarrage Dell UEFI me permettrait de choisir le système d'exploitation à charger. Peut-être manque-t-il un peu de colle entre efibootmgr et grub-efi ici.

  • Sinon, serait-il possible d'utiliser une seule installation Grub à partir de l'une des deux installations Ubuntu et de la faire détecter automatiquement les bons paramètres de démarrage? Je veux dire, je sais que os-prober trouvera l'autre partition /boot avec des noyaux, mais comment peut-il connaître les paramètres de démarrage appropriés pour ce système d'exploitation (par exemple, un volume LVM dans un volume de cryptage verrouillé en tant que système de fichiers racine)? Je peux comprendre que cela puisse se faire avec des installations à partition unique non chiffrées, mais cela ne peut pas correspondre à un /boot avec son système de fichiers racine correspondant, non? Et c'est complètement impossible si crypté. Cela nécessiterait donc de nombreux ajustements manuels des fichiers de configuration grub. Je n'aime pas non plus cette option d'une configuration de chargeur de démarrage partagé unique, ce qui rend les deux systèmes d'exploitation moins isolés dans une certaine mesure.

En passant, je suis d'accord avec l'installation experte basée sur le texte sur le serveur. Aussi, certaines configurations personnalisées tant que je n'ai pas à répéter les étapes pour chaque mise à jour du noyau/Grub.

8
gertvdijk

J'ai deux suggestions ...

Option 1: séparer les PSE

Sous EFI, le chargeur de démarrage réside sur "la" partition système EFI (ESP). Je mets le mot "la" entre guillemets car aucune règle n'indique que vous êtes limité. à un ESP. Si vous créez deux ESP sur votre disque dur, vous pouvez en utiliser un pour votre première installation et le second ESP pour la deuxième installation. Cela devrait fonctionner assez facilement, bien que vous deviez créer vos partitions manuellement (en utilisant l'option "Quelque chose d'autre" lors de l'installation), au moins pour votre deuxième installation Ubuntu.

Un problème avec cette approche est que, bien que la spécification EFI indique explicitement que vous pouvez créer autant de ESP que vous le souhaitez, certains logiciels risquent d’être confus. L'installateur Windows en est un exemple frappant, du moins sous Windows 7 (je ne connais pas Windows 8 ou une version ultérieure); Lorsque le programme d'installation de Windows 7 voit un disque avec deux ESP, il disparaît et fait des choses étranges. IIRC, il ne complète pas sa propre installation correctement. Il est concevable que les outils de réparation Windows souffrent du même problème. Si vous ne démarrez pas Windows sur ce système, cela ne devrait pas être un gros problème. Si vous démarrez avec Windows, vous devez simplement être conscient du problème, car vous pouvez facilement le résoudre en modifiant temporairement le code de type du fichier non. Windows ESP (s) si vous rencontrez des problèmes. Notez que Windows démarrera correctement sur un disque avec plusieurs ESP; c'est juste l'installateur qui étouffe ces disques.

Un autre problème est de savoir comment basculer entre vos deux distributions. Vous devrez peut-être personnaliser l’une ou les deux installations de votre installation GRUB à l’aide d’un outil tel que GRUB Customizer. Une autre option (mais non incompatible) consisterait à utiliser Le gestionnaire de démarrage de votre microprogramme vous permet de basculer entre vos deux installations GRUB et d'utiliser chacune d'elles pour démarrer uniquement sa propre version d'Ubuntu.

Option n ° 2: abandonner GRUB (ou au moins les outils GRUB d'Ubuntu)

Le problème avec GRUB dans votre situation est que vous avez deux installations et que les outils de maintenance GRUB risquent de devenir confus par cette configuration. Cette observation conduit à la solution évidente que vous ne devriez tout simplement pas utiliser ces outils. Il existe plusieurs autres chargeurs de démarrage EFI pour Linux, dont la plupart sont plus faciles à gérer manuellement que GRUB. Vous pouvez configurer ELILO, SYSLINUX, le logiciel GRUB Legacy, gummiboot ou rEFInd de Fedora et gérer manuellement vos deux installations. En fait, étant donné que rEFInd détecte les noyaux lors de son démarrage, rEFInd devrait être proche de l'absence de maintenance, une fois qu'il est configuré. Alternativement, mais dans le même esprit, vous pouvez modifier à la main votre fichier grub.cfg afin de faire ce que vous voulez, plutôt que de vous fier aux scripts d'installation GRUB.

En plus de rEFInd, tous ces outils nécessitent que vous apportiez des modifications à la configuration chaque fois que vous mettez à jour un noyau, ce qui constitue un simple glissement. Il y a aussi la question de savoir quand et comment installer le programme de démarrage supplémentaire. Je le repousserais probablement après votre deuxième installation Ubuntu, car chaque installation enregistre sa propre copie de GRUB en tant que chargeur de démarrage par défaut, et vous souhaitez remplacer cette valeur par défaut.

Notez également qu'aucun de ces outils ne peut lire un noyau à partir d'un système de fichiers chiffré ou d'un LVM. Vous devez donc disposer d'une partition /boot non chiffrée distincte pour chacune de vos installations Ubuntu. C’est ainsi que la plupart des instructions que j’ai déjà vues recommandent de toute façon de configurer une installation Ubuntu chiffrée. Ce n’est donc sans doute pas une mince affaire, à moins que vous ne souhaitiez jouer sur le "bord saillant" du chiffrement de disque.

Certains chargeurs de démarrage EFI ont des exigences spécifiques supplémentaires en matière de partitionnement ou de système de fichiers. En particulier, ELILO, SYSLINUX et gummiboot exigent tous que le noyau réside sur une partition FAT, et le ESP fonctionne le mieux pour cela. Vous pouvez le faire en montant ESP sur /boot, mais il s'agit d'une solution douteuse sous Ubuntu car certaines mises à jour de paquets nécessitent des liens symboliques. Vous auriez également du mal à le faire avec deux installations Ubuntu distinctes, car ils essaieraient tous deux de revendiquer les mêmes fichiers. (Dans ce cas, "l'ESP" signifie réellement "la partition à partir de laquelle le chargeur de démarrage a été exécuté", vous ne pouvez donc avoir qu'un seul ESP dans ce cas.) GRUB Legacy et rEFInd sont plus flexibles à ce sujet.

Ma recommandation

Personnellement, j'utiliserais rEFInd pour cela - mais comme je maintiens rEFInd, je ne suis pas exactement impartial. En fait, j'ai un ordinateur qui démarre plusieurs fois entre trois installations Ubuntu et que rEFInd bascule entre elles parfaitement. Ce système particulier n'utilise pas de cryptage, mais je doute que cela cause de nouveaux problèmes du point de vue de rEFInd.

Cela dit, des PSE distincts devraient également fonctionner correctement, avec toutefois l’avertissement que vous devrez peut-être utiliser GRUB Customizer pour ajuster les paramètres d’au moins une de ces copies GRUB.

6
Rod Smith

Voici les étapes que j’utilisais pour effectuer un double démarrage avec deux systèmes Ubuntu chiffrés par LUKS sur un seul disque dur avec UEFI, à l’aide de l’option n ° 2 recommandée précédemment par Rod Smith. C'était spécifiquement avec Ubuntu 18.04.1-desktop. Le cryptage des répertoires de départ n’est plus une option donnée lors de l’installation, car la fiabilité et la maintenance de eCryptfs soulèvent des problèmes. Il est recommandé d'utiliser LUKS à la place. Je pense donc que la meilleure option consiste à avoir plusieurs utilisateurs avec des partitions d'origine chiffrées.

    1. Démarrez dans une clé USB en direct en téléchargeant le fichier ISO et en utilisant Startup Disk Creator pour formater et configurer un lecteur USB.
    1. Utilisez GParted pour partitionner le disque. Ceci était basé sur les recommandations de https://help.ubuntu.com/community/ManualFullSystemEncryption et en utilisant certaines des valeurs par défaut définies par le programme d'installation Ubuntu lors de la sélection du chiffrement de disque pour le disque complet.
      • Partition système EFI/512MiB/FAT32/boot, esp (drapeaux)
      • Système de démarrage n ° 1/732MiB/EXT4
      • Système de démarrage n ° 2/732MiB/EXT4
      • Données chiffrées n ° 1/[taille souhaitée]/effacées
      • Données cryptées n ° 2/[taille souhaitée]/effacées
    1. Redémarrez dans Live USB
      • Installez Ubuntu
      • Sélectionnez les préférences d'installation
      • Sélectionnez "Autre chose" pour la disposition du disque de partition et dans la configuration de cette partition pour l'installation:
        • Sélectionnez "Partition système EFI" comme chargeur de démarrage dans le menu du bas.
        • Sélectionnez "Data Encrypted # 1" et sélectionnez "Périphérique physique pour le cryptage", puis entrez la phrase de cryptage à utiliser pour la partition.
        • Sélectionnez la partition nouvellement créée avec EXT4 et modifiez le point de montage en "/".
        • Sélectionnez le "Système de démarrage n ° 1" et définissez le point de montage "/ boot".
      • Continuer et installer
    1. Redémarrez dans la nouvelle installation
      • Installez "refind" via "apt-get install refind" et installez-le automatiquement sur l'ESP, la "partition système EFI".
    1. Redémarrez dans le Live USB
      • Répétez les étapes 3 et 4 pour les partitions n ° 2 Boot System et Data Encrypted # 2 installant la deuxième installation Ubuntu.
    1. Configurez et mettez à niveau chaque installation selon vos besoins.
1
brihoriq

J'utilise l'approche suivante avec un seul ESP:

J'ai créé des chargeurs de démarrage supplémentaires pour chaque système d'exploitation avec

Sudo grub-install --bootloader-id=ID

en utilisant un ID différent pour chaque système d'exploitation.

Exemple:

Ubuntu 16.04 et Ubuntu 18.04 sont installés. Je démarre sous Ubuntu 16.04 et lance

Sudo grub-install --bootloader-id=Ubuntu1604

Ensuite, depuis le démarrage dans Ubuntu 18.04, je lance

Sudo grub-install --bootloader-id=Ubuntu1804

Dans les paramètres UEFI, je vois les nouvelles entrées de démarrage avec les noms Ubuntu1604 et Ubuntu1804, et réorganise l'ordre de démarrage pour définir l'une des nouvelles entrées à la première place.

Je peux aussi voir les dossiers avec ces noms dans l'ESP.

Lorsqu'une mise à niveau du système est livrée avec une nouvelle version de grub, elle réinstalle une nouvelle instance de grub dans le dossier ubuntu- de l'ESP. Elle n'affecte pas les chargeurs de démarrage que j'ai créés moi-même, mais je dois réorganiser l'ordre de démarrage à nouveau car l'entrée ubuntu- sera poussée à la première place dans l'ordre de démarrage.

Voici ce que efibootmgr -v montre dans ma configuration:

~ $ efibootmgr -v 
 BootCurrent: 0001 
 Délai d'attente: 0 secondes 
 BootOrder: 0001,0002,0004,0000,0003,0005 
 Boot0000 * ubuntu HD ( 1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000)/Fichier (\ EFI\ubuntu\shimx64.efi) 
 Boot0001 * US1804 HD (1, GPT, 249ac0f6. 91d5-6e8d63c093c3,0x800,0x9a000)/Fichier (\ EFI\US1804\grubx64.efi) 
 Boot0002 * US1604 HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c03dddd (\ EFI\US1604\grubx64.efi) 
 Boot0003 * UEFI OS HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c0,0x800,0x9a000)/Fichier (\ EFI\BOOTX64.BE) ) 
 Boot0004 * US1904 HD (1, GPT, 249ac0f6-d3e4-4b91-6d6-6e8d63c093c3,0x800,0x9a000)/Fichier (\ EFI\US1904\shimx64.efi) 
 Boot0005 * ubuntu HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000)/Fichier (EFI\Ubuntu\grubx64.efi)
0
mook765