[GRUB] Sauvegarde du précédent choix d’OS (RÉSOLU)

Questions et astuces concernant l'installation et la configuration d'archlinux
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

[GRUB] Sauvegarde du précédent choix d’OS (RÉSOLU)

Message par L_Indien »

Bonsoir Le Forum,

Voilà la configuration du système (c’est sur disque de serveur de fichier) :
  • /dev/sda1 2048 1026047 1024000 500M Amorçage BIOS
  • /dev/sda2 1026048 17803263 16777216 8G Partition d'échange Linux
  • /dev/sda3 17803264 58763263 40960000 19,5G Système de fichiers Linux
  • /dev/sda4 58763264 99723263 40960000 19,5G Système de fichiers Linux
  • /dev/sda5 99723264 130279423 30556160 14,6G Système de fichiers Linux
  • /dev/sda6 130279424 160835583 30556160 14,6G Système de fichiers Linux
Les systèmes (Archlinux et Debian) se situent sur sda3 et sda4 (partition formatée en ext4). La table de partition est du gpt.

Voici le /etc/default/grub

Code : Tout sélectionner

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
#GRUB_SAVEDEFAULT="true"
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable Hidden Menu, and optionally hide the timeout count
#GRUB_HIDDEN_TIMEOUT=5
#GRUB_HIDDEN_TIMEOUT_QUIET=true

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter 
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" 
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper 
# modes only.  Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
et le détail de /etc/grub.d/40_custom

Code : Tout sélectionner

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

savedefault

menuentry 'Debian GNU/Linux, avec Linux 4.9.0-3-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-3-amd64-advanced-27b7deee-d3c4-440a-b211-408c77205fee' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt4'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  27b7deee-d3c4-440a-b211-408c77205fee
	else
	  search --no-floppy --fs-uuid --set=root 27b7deee-d3c4-440a-b211-408c77205fee
	fi
	echo	'Chargement de Linux 4.9.0-3-amd64…'
	linux	/boot/vmlinuz-4.9.0-3-amd64 root=/dev/sda4 ro  quiet
	echo	'Chargement du disque mémoire initial…'
	initrd	/boot/initrd.img-4.9.0-3-amd64
	}
menuentry 'Debian GNU/Linux, with Linux 4.9.0-3-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-3-amd64-recovery-27b7deee-d3c4-440a-b211-408c77205fee' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt4'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  27b7deee-d3c4-440a-b211-408c77205fee
	else
	  search --no-floppy --fs-uuid --set=root 27b7deee-d3c4-440a-b211-408c77205fee
	fi
	echo	'Chargement de Linux 4.9.0-3-amd64…'
	linux	/boot/vmlinuz-4.9.0-3-amd64 root=/dev/sda4 ro single 
	echo	'Chargement du disque mémoire initial…'
	initrd	/boot/initrd.img-4.9.0-3-amd64
	}

menuentry 'Arrêt du système' {
	halt
}
menuentry 'Redémarrage du système' {
	reboot
}
Le grub est géré par Archlinux (pour être sur, j’ai effectué des modifications de grub sous debian, et rien n’est modifié au démarrage. Et pour être sur que ça soit bien Archlinux qui gère, j’ai effectué des modifications, et les modifications sont présentes au démarrage d’après).

Le soucis, c’est que la fonction de booter automatiquement sur le choix précédent ne fonctionne pas.

J’ai parcouru pas mal sur le net (wiki d’Archlinux.fr, celui d’Archlinux.org, celui d’Ubutu GRUB2 ainsi que le tuto sur Ubuntu pour le paramétrage manuel, plus d’autres sites, des forums, ...), mais le résultat est toujours le même : la fonction ne fonctionne pas…

Vous auriez une idée ou deux pour éclairer ma route ?

Je vous remercie pour les réponses.

Bonne soirée et bon week-end.
Dernière modification par L_Indien le sam. 02 sept. 2017, 22:04, modifié 2 fois.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
waitnsea
Maître du Kyudo
Messages : 2114
Inscription : jeu. 15 mars 2012, 05:08

Re: [GRUB] Sauvegarde du précédent choix d’OS

Message par waitnsea »

L_Indien a écrit : sam. 02 sept. 2017, 19:50 Le soucis, c’est que la fonction de booter automatiquement sur le choix précédent ne fonctionne pas.
Bonjour,
Normalement

Code : Tout sélectionner

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
sont nécessaires et suffisants
La seule chose qui me taquine c'est

Code : Tout sélectionner

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
Remets un dièse pour recommenter et réessaie ?

Code : Tout sélectionner

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY=true
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17229
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [GRUB] Sauvegarde du précédent choix d’OS

Message par benjarobin »

Bonjour,
Si tu utilises une entrée custom (/etc/grub.d/40_custom) modifier uniquement /etc/default/grub est clairement non suffisant. Il faut configurer les entrées qui peuvent être sauvegarder.
Le savedefault que tu as mit en dehors d'une entrée n'a stictement rien à faire là. savedefault est une commande exécutée quand tu actives l'entrée, donc elle doit être dans la ou les entrées à sauvegarder.

Sinon, utiliser la notation de /dev/sdXY pour root= est une mauvaise idée...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [GRUB] Sauvegarde du précédent choix d’OS

Message par L_Indien »

Bonsoir waitnsea,

Je te remercie pour la réponse.

Je viens de tester ton conseil, mais nan... Identique, grub lance Archlinux par défaut.

Bonne soirée.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [GRUB] Sauvegarde du précédent choix d’OS

Message par L_Indien »

Bonsoir benjarobin,

Je te remercie également pour ta réponse.

Je viens de modifier le /etc/grub.d/40_custom comme suit

Code : Tout sélectionner

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'Debian GNU/Linux, avec Linux 4.9.0-3-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-3-amd64-advanced-27b7deee-d3c4-440a-b211-408c77205fee' {
	savedefault
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt4'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  27b7deee-d3c4-440a-b211-408c77205fee
	else
	  search --no-floppy --fs-uuid --set=root 27b7deee-d3c4-440a-b211-408c77205fee
	fi
	echo	'Chargement de Linux 4.9.0-3-amd64…'
	linux	/boot/vmlinuz-4.9.0-3-amd64 root=/dev/sda4 ro  quiet
	echo	'Chargement du disque mémoire initial…'
	initrd	/boot/initrd.img-4.9.0-3-amd64
	}
menuentry 'Debian GNU/Linux, with Linux 4.9.0-3-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-3-amd64-recovery-27b7deee-d3c4-440a-b211-408c77205fee' {
	savedefault
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt4'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  27b7deee-d3c4-440a-b211-408c77205fee
	else
	  search --no-floppy --fs-uuid --set=root 27b7deee-d3c4-440a-b211-408c77205fee
	fi
	echo	'Chargement de Linux 4.9.0-3-amd64…'
	linux	/boot/vmlinuz-4.9.0-3-amd64 root=/dev/sda4 ro single 
	echo	'Chargement du disque mémoire initial…'
	initrd	/boot/initrd.img-4.9.0-3-amd64
	}

menuentry 'Arrêt du système' {
	halt
}
menuentry 'Redémarrage du système' {
	reboot
}
et nickel ça fonctionne.

Je vous remercie pour vos conseils.

Bonne soirée et bon week-end.

--------------------------------------------------------
EDIT

Je profite pour filer une info qui n'a absolument rien à voir avec grub, mais ouvrir juste un post pour çà...

Je m'explique, j'accède à ssh au serveur en question.
Normalement, quand je change d'os (du serveur ssh), il faut également modifier le fichier /root/.ssh/know_hosts du poste client (le poste qui souhaite accéder au serveur). Et là, j'ai laissé les deux lignes la même adresse IP, mais le code (ou l'identifiant, je ne connais pas le terme exact) après l'adresse IP est différent (normal), ainsi ça me permet d'accéder en ssh au serveur (en changeant d'os) sans modifier le know_hosts je ne sais pas si très clair et très utile, mais c'est pour info
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [GRUB] Sauvegarde du précédent choix d’OS

Message par FoolEcho »

L_Indien a écrit : sam. 02 sept. 2017, 21:54 --------------------------------------------------------
EDIT

Je profite pour filer une info qui n'a absolument rien à voir avec grub, mais ouvrir juste un post pour çà...

Je m'explique, j'accède à ssh au serveur en question.
Normalement, quand je change d'os (du serveur ssh), il faut également modifier le fichier /root/.ssh/know_hosts du poste client (le poste qui souhaite accéder au serveur). Et là, j'ai laissé les deux lignes la même adresse IP, mais le code (ou l'identifiant, je ne connais pas le terme exact) après l'adresse IP est différent (normal), ainsi ça me permet d'accéder en ssh au serveur (en changeant d'os) sans modifier le know_hosts je ne sais pas si très clair et très utile, mais c'est pour info
Pour des questions de lisibilité ça sera dur à retrouver, perdu dans ce fil... :|
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [GRUB] Sauvegarde du précédent choix d’OS (RÉSOLU)

Message par L_Indien »

OK, pas de soucis, c'est vrai que ce n'est pas très clair.

Je vais expliquer par un exemple...

Le serveur fonctionne sous deux distributions (Archlinux & Debian).
J'y accède depuis un poste client sous Archlinux.

À la première connexion SSH au serveur (pour l'exemple, l'OS Debian) depuis le poste client, le message suivant s'affiche :

Code : Tout sélectionner

The authenticity of host '192.168.2.20 (192.168.2.20)' can't be established.
ECDSA key fingerprint is SHA256:dfr1cs12-qcsd56svDvsBRvVd546s+scvsddd9plcqE.
Are you sure you want to continue connecting (yes/no)?
jusqu'ici, tout va bien...
Donc, je tape yes. Logique (je souhaite discuter en ssh avec mon serveur).

Je redémarre le serveur (j'avoue, et heureusement, ce n'est pas tous les 4 matins), mais je change l'os.
Je souhaite me connecter en ssh sur le même serveur (pour l'exemple, l'OS est Archlinux maintenant). Ainsi, j'ai comme retour, le message suivant :

Code : Tout sélectionner

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:dfr1cs12-qcsd56svDvsBRvVd546s+scvsddd9plcqE.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:2
ECDSA host key for 192.168.2.20 has changed and you have requested strict checking.
Host key verification failed.
Merci ssh pour l'info.
Afin d'éviter quelques manips..., il suffit juste de commenter la ligne ssh pour Debian.
SSH repose la question - pour une 1ère connexion en ssh -, il suffit de répondre encore yes (il y a ainsi une ligne ssh mais pour Archlinux)
Après, il n'y a plus qu'à éditer le fichier /root/.ssh/known_hosts et décommanter la ligne ssh pour Debian commentée avant...

Et clac. Cela permet d’accéder à ssh, depuis le poste client, au serveur de fichier peu importe l'OS (Archlinux ou Debian).

J'espère que c'est un peu plus compréhensible.

Bonne soirée et bon week-end.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Répondre