Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 17-07-2017 18:48:01

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Stretch
Noyau : Linux 4.9.0-3-amd64
(G)UI : Gnome
Inscription : 16-03-2012
Site Web

[Résolu] Grub: os-prober ne détecte pas un autre système chiffré

Bonjour,

J'ai une question concernant la gestion des entrées de grub.
J'ai réinstalle Stretch à coté de Jessie. J'ai donc les 2 systèmes sur mon disque (j'ai aussi un windows mais on s'en fout).
Les partitions racines des 2 systèmes sont chiffrées.
Avec un peu d'espoir, je pensais qu'os-prober allait me détecter Jessie mais rien.
C'est vraiment un domaine que je ne maîtrise pas et j'aurai besoin de vos conseils pour pouvoir booter sur le système de mon choix.

Si j'ai bien compris, on peut chainloader (j'ai pas de traduction en français roll) sur une partition

set root=(hd0,1)
chainloader +1
boot
 


et il faut l'ajouter dans le fichier /etc/grub.d/40_custom ?
est-ce qu'il existe une meilleure solution ?


Quelques infos complémentaires:
grub.cfg pour Jessie

menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-90a8c718-ffab-4f29-8ef6-8dfd631658de' {
  load_video
  insmod gzio
  if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
  insmod part_gpt
  insmod ext2
  set root='hd0,gpt1'
  if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  7b79f494-a8ea-422e-a3ba-636622659178
  else
    search --no-floppy --fs-uuid --set=root 7b79f494-a8ea-422e-a3ba-636622659178
  fi
  echo  'Chargement de Linux 3.16.0-4-amd64…'
  linux /vmlinuz-3.16.0-4-amd64 root=UUID=90a8c718-ffab-4f29-8ef6-8dfd631658de ro  quiet
  echo  'Chargement du disque mémoire initial…'
  initrd  /initrd.img-3.16.0-4-amd64
}
 



grub.cfg pour Stretch

menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9498b69f-3f01-4d56-96aa-7b011c3fd4df' {
  load_video
  insmod gzio
  if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
  insmod part_gpt
  insmod ext2
  set root='hd0,gpt6'
  if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6  8abde21b-a521-4ca4-880d-ea232aaed8a7
  else
    search --no-floppy --fs-uuid --set=root 8abde21b-a521-4ca4-880d-ea232aaed8a7
  fi
  echo  'Chargement de Linux 4.9.0-3-amd64…'
  linux /vmlinuz-4.9.0-3-amd64 root=/dev/mapper/sda7_crypt ro  quiet
  echo  'Chargement du disque mémoire initial…'
  initrd  /initrd.img-4.9.0-3-amd64
}



fdisk -l /dev/sda


Périphérique     Début       Fin  Secteurs Taille Type
/dev/sda1         2048   1953791   1951744   953M Système de fichiers Linux >> BootJessie
/dev/sda2      1953792  48828415  46874624  22,4G Système de fichiers Linux >> LuksJessie
/dev/sda3    156340224 351649791 195309568  93,1G Système de fichiers Linux >> LuksHome
/dev/sda4     48828416  49805311    976896   477M Système de fichiers Linux
/dev/sda5     49805312  96679935  46874624  22,4G Système de fichiers Linux
/dev/sda6     96679936  98633727   1953792   954M Système de fichiers Linux >> BootStretch
/dev/sda7     98633728 156340223  57706496  27,5G Système de fichiers Linux >> LuksStretch
 

Hors ligne

#2 17-07-2017 22:30:38

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Grub: os-prober ne détecte pas un autre système chiffré

nIQnutn a écrit :

Avec un peu d'espoir, je pensais qu'os-prober allait me détecter Jessie mais rien.


Cela ne me surprend qu'à moitié, même si avec le contenu en clair de la partition boot os-prober et update-grub devraient avoir tout le nécessaire pour créer des entrées de menu. Mais je ne sais pas vraiment comment os-prober fonctionne, il a peut-être besoin de lire la racine.

nIQnutn a écrit :

Si j'ai bien compris, on peut chainloader (j'ai pas de traduction en français roll) sur une partition


"Chaîner", tout simplement.
Mais attention, le chaînage avec la commande "chainloader" fonctionne très différemment avec les variantes BIOS et EFI de GRUB.
GRUB BIOS peut chaîner un disque, une partition, voir un simple fichier à condition que son premier secteur soit un secteur d'amorce exécutable de type BIOS.
En revanche GRUB EFI ne peut chaîner qu'un autre fichier exécutable EFI.
GRUB BIOS peut aussi charger une autre instance de GRUB BIOS. Il faut utiliser la commande "multiboot" avec comme argument le fichier grub/i386-pc/core.img situé dans la partition ou le répertoire boot.

nIQnutn a écrit :

et il faut l'ajouter dans le fichier /etc/grub.d/40_custom ?


A l'intérieur d'un paragraphe "menuentry". Il faudra ensuite exécuter update-grub pour regénérer grub.cfg.
On peut aussi l'ajouter au fichier /boot/grub/custom.cfg qui est inclus au démarrage par les instructions ajoutées par /etc/grub.d/41_custom. Donc pas besoin d'exécuter update-grub quand on le modifie.

nIQnutn a écrit :

grub.cfg pour Jessie


Je suis un peu étonné que la racine du système soit identifiée par un UUID et pas avec le nom du volume chiffré /dev/mapper/sdXX_crypt comme pour Stretch et comme j'ai l'habitude de voir.

Hors ligne

#3 17-07-2017 23:50:11

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Stretch
Noyau : Linux 4.9.0-3-amd64
(G)UI : Gnome
Inscription : 16-03-2012
Site Web

Re : [Résolu] Grub: os-prober ne détecte pas un autre système chiffré

Merci pour tes explications.

Je suis dans le cas d'un grub bios.
D'après ce que tu expliques, j'ai la possibilité de chaîner la partition BootJessie ou utiliser la commande "multiboot".
Est-ce qu'il y a une différence entre les 2 méthodes ? en cas de modification par exemple qui pourrait me faire choisir l'une ou l'autre.
Petite précision, ce que tu appelles "secteur d'amorce exécutable de type BIOS." c'est ce qui est présent sous gparted avec le nom drapeau "bios_grub" ?

Pour le fichier grub.cfg, je ne pense pas avoir fait quelque chose de particulier.

lsblk -o NAME,PARTFLAGS
 


 NAME                                          PARTFLAGS
sda                                          
├─sda1                                        
├─sda2                                        
│ └─luks-6db26ee0-907c-43bc-92eb-a1101a149403
├─sda3                                        
│ └─sda3_crypt                                
├─sda4                                        
├─sda5                                        
├─sda6                                        
└─sda7                                        
  └─sda7_crypt                                
sdb                                          
├─sdb1                                        
│ └─luks-f4ecf517-517b-47ce-b8b5-8417ddf8cd10
└─sdb3                                        
  └─luks-f51834d7-f077-463d-8e12-107133cc4156
sdc                                          
├─sdc1                                        0x80
├─sdc2                                        
├─sdc3                                        
└─sdc4                                        
sdd                                          
├─sdd1                                        0x8000000000000000
│ └─sdf1_crypt                                
├─sdd2                                        0x8000000000000000
└─sdd3                                        0x8000000000000000
sde                                          
├─sde1                                        
├─sde2                                        
├─sde3                                        
└─sde4                                        
sdf                                          
├─sdf1                                        0x8000000000000000
└─sdf2                                        0x8000000000000000
sr0                                          
 


sdc1: partition windows reconnu par os-prober.

Hors ligne

#4 18-07-2017 10:43:02

Croutons
Membre
Distrib. : Handylinux 2.5 vers Jessie et Debian Stretch
Noyau : Linux 3.16.0-4-686-pae, Linux 4.9.0-3-686-pae
(G)UI : xfce
Inscription : 16-12-2016

Re : [Résolu] Grub: os-prober ne détecte pas un autre système chiffré

Bonjour
Peut être en ajoutant une ligne dans le /etc/default/grub?

manual grub a écrit :

GRUB_ENABLE_CRYPTODISK’

    If set to ‘y’, grub-mkconfig and grub-install will check for encrypted disks and generate additional commands needed to access them during boot. Note that in this case unattended boot is not possible because GRUB will wait for passphrase to unlock encrypted container.


if set to 'y' doit signifier

GRUB_ENABLE_CRYPTODISK="true"


sans oublier de update grub pour génerer le nouveau grub.cfg

Sources : https://www.gnu.org/software/grub/manua … figuration

Dernière modification par Croutons (18-07-2017 10:44:04)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#5 18-07-2017 11:44:11

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Grub: os-prober ne détecte pas un autre système chiffré

nIQnutn a écrit :

D'après ce que tu expliques, j'ai la possibilité de chaîner la partition BootJessie ou utiliser la commande "multiboot".


Note : chaîner la partition n'est possible que si la boot image de GRUB est installée dans le secteur d'amorce de cette partition. En clair : lors de l'installation de GRUB avec l'installateur Debian ou grub-install on a spécifié la partition /dev/sda1 et non le disque entier /dev/sda (ce qui installe la boot image de GRUB dans le MBR). Dans le cas contraire, il reste possible de réinstaller GRUB dans le secteur d'amorce de la partition. De toute façon la boot image du GRUB de Jessie dans le MBR a été écrasée par la boot image du GRUB de Stretch lors de l'installation de cette dernière.

Croutons a écrit :

Est-ce qu'il y a une différence entre les 2 méthodes ?


Pour chaîner un autre GRUB, j'ai une préférence pour multiboot si le fichier core.img du GRUB cible est présent. Outre que cette méthode ne dépend pas de la présence d'une boot image, elle est plus fiable que chainloader dans le cas où la core image du GRUB cible n'a pas pu être "embarquée" et n'existe que dans ce fichier core.img.

nIQnutn a écrit :

Petite précision, ce que tu appelles "secteur d'amorce exécutable de type BIOS." c'est ce qui est présent sous gparted avec le nom drapeau "bios_grub" ?


Non, pas du tout. Ce "drapeau" est la façon de Gparted de représenter le type de la partition, "BIOS boot". Ce type de partition est reconnu par GRUB qui peut l'utiliser pour y installer sa core image embarquée sur un disque au format GPT (en remplacement de l'espace non alloué entre le MBR et la première partition). D'ailleurs je ne vois pas de partition de ce type sur tes disques, ce qui signifie que la core image de GRUB n'est pas embarquée, c'est donc moins fiable.

Un secteur d'amorce, c'est le premier secteur d'un disque ou d'une partition lorsqu'il contient une signature de secteur d'amorce (aa55) et un programme d'amorce comme la boot image de GRUB, LILO ou le code amorce de DOS/Windows.

Croutons a écrit :

Peut être en ajoutant une ligne GRUB_ENABLE_CRYPTODISK dans le /etc/default/grub?


Inutile car les partition boot ne sont pas chiffrées.
Par contre ça pourrait peut-être aider si la partition racine chiffrée de Jessie était "ouverte" lors de l'exécution de os-prober/update-grub.

Croutons a écrit :

if set to 'y' doit signifier
GRUB_ENABLE_CRYPTODISK="true"


Surtout pas ! Il faut impérativement mettre 'y' et rien d'autre sinon l'option n'est pas prise en compte. Je me suis déjà fait avoir.

Hors ligne

#6 18-07-2017 12:30:51

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Stretch
Noyau : Linux 4.9.0-3-amd64
(G)UI : Gnome
Inscription : 16-03-2012
Site Web

Re : [Résolu] Grub: os-prober ne détecte pas un autre système chiffré

Merci pour les explications détaillées.
Je ferai le retour des modifications.

Pour les partitions chiffrées, j'ai trouvé: https://wiki.archlinux.org/index.php/GRUB#Encryption

Hors ligne

#7 18-07-2017 19:08:19

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Stretch
Noyau : Linux 4.9.0-3-amd64
(G)UI : Gnome
Inscription : 16-03-2012
Site Web

Re : [Résolu] Grub: os-prober ne détecte pas un autre système chiffré

Finalement, j'ai une solution qui marche grâce à ton aide:

nano /etc/grub.d/40_custom


menuentry "experimental GRUB Jessie" {
set root='hd0,gpt1'
insmod ext2
multiboot /grub/i386-pc/core.img
}


update-grub



Évidemment, ça n'a pas marché du premier coup puisque j'avais mis /boot/grub/i386-pc/core.img au lieu de /grub/i386-pc/core.img

Hors ligne

#8 18-07-2017 20:31:16

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Grub: os-prober ne détecte pas un autre système chiffré

nIQnutn a écrit :

j'ai une solution qui marche grâce à ton aide


Je n'envisage pas autrement ma participation à ce forum.
Je ne suis pas là pour donner une solution toute cuite mais pour fournir de quoi construire sa propre solution.

Hors ligne

Pied de page des forums