Programmation spécifique de GRUB
bonjour
je cherche personnes connaissant bien Grub pour m'aider à le programmer.
l'objectif mettre en service une machine à distance par le Wol.( a c'est simple et c'est fait!).
Ordonner à GRUB de lancer sur tel ou tel Os en fonction de ma demande.- là cela devient très compliqué pour moi :
je veux que tous les trois démarrages ( 3 étant un nombre fictif) il démarre sur l'Os numéro 2 puis revienne au démarrage par défaut.
Concrètement cela ferait ceci :
D1 Os1
D2 Os1
D3 Os2----------> l'os spécifique vient de démarrer.
D4 Os1
D5 Os1
D6 Os2----------> l'Os spécifique vient de démarrer
Telle est ma recherche.
AU plaisir de vous relire prochainement
bonne journée
je cherche personnes connaissant bien Grub pour m'aider à le programmer.
l'objectif mettre en service une machine à distance par le Wol.( a c'est simple et c'est fait!).
Ordonner à GRUB de lancer sur tel ou tel Os en fonction de ma demande.- là cela devient très compliqué pour moi :
je veux que tous les trois démarrages ( 3 étant un nombre fictif) il démarre sur l'Os numéro 2 puis revienne au démarrage par défaut.
Concrètement cela ferait ceci :
D1 Os1
D2 Os1
D3 Os2----------> l'os spécifique vient de démarrer.
D4 Os1
D5 Os1
D6 Os2----------> l'Os spécifique vient de démarrer
Telle est ma recherche.
AU plaisir de vous relire prochainement
bonne journée
A voir également:
- Programmation spécifique de GRUB
- Application de programmation - Guide
- Gnu grub version 2.06 - Forum Linux / Unix
- Excel compter le nombre de caractères spécifique dans une cellule ✓ - Forum Excel
- Grub rescue windows 7 ✓ - Forum Windows 7
- Compter occurences d'un caractère (excel) ✓ - Forum Excel
7 réponses
oui je pense que c est possible, (jamais essayer Wol) par exemple version grub2
en éditant le fichier /etc/grub.d/40_custom, on peut rajouter des entrées dans grub lorsque os-prober ne détecte pas .
un exemple lorsque windows n est pas détecté sur sda1 , on peut écrire ces lignes: (pour vous adapter hdo,1 ----> hd0,3 et hd0,4)
menuentry "Windows (on /dev/sda1)" {
insmod ntfs
set root='(hd0,1)'
chainloader +1
}
éditer aussi le fichier /etc/default/grub
pour rajouter cette ligne: GRUB_DISABLE_OS_PROBER=true
ensuite un sudo update-grub
mais sous réserve je ne connais pas Wol
en éditant le fichier /etc/grub.d/40_custom, on peut rajouter des entrées dans grub lorsque os-prober ne détecte pas .
un exemple lorsque windows n est pas détecté sur sda1 , on peut écrire ces lignes: (pour vous adapter hdo,1 ----> hd0,3 et hd0,4)
menuentry "Windows (on /dev/sda1)" {
insmod ntfs
set root='(hd0,1)'
chainloader +1
}
éditer aussi le fichier /etc/default/grub
pour rajouter cette ligne: GRUB_DISABLE_OS_PROBER=true
ensuite un sudo update-grub
mais sous réserve je ne connais pas Wol
merci pour ta réponse.
Elle soulève une autre question : cela nécessite que l'on soit devant la machine (en local donc).
Alors oublions la notion de WOl qui ne tient qu'au réveil de la machine et au paquet magique.
dans mon cas de figure j'ai bel et bien 2 hdd à demeure sur la machine.
Mais je veux pouvoir les démarrer en fonction du nombre de reboot à effectuer. Dans ta solution - si je l'ai bien comprise - on tien compte de la présence ou de l'absence d'un Os.
Pour moi, tous les Os seront toujours présents. SI un Os n'est pas présent, donc la machine est en rade.
Non ce qui m'intéresse c'est de pouvoir déterminer quel Os va démarrer. J'ai déjà réussi la programmation des cartes réseaux qui différencient l'Os par le réseau. Mais cela ne me donne aucune possibilité d'accéder à l'os de mon choix.
J'avais pensé à utiliser ANDLINUX pour modifier en temps réel le config de GRUB2 mais on m'a fait remarquer qu'en cas de coupure de ligne, je serai plantée et totalement parce que je ne pourrai pas reprendre la main. Donc cette solution est exclue dans l'état actuelle de ma recherche.
Suis(je plus claire dans ma demande ?
Elle soulève une autre question : cela nécessite que l'on soit devant la machine (en local donc).
Alors oublions la notion de WOl qui ne tient qu'au réveil de la machine et au paquet magique.
dans mon cas de figure j'ai bel et bien 2 hdd à demeure sur la machine.
Mais je veux pouvoir les démarrer en fonction du nombre de reboot à effectuer. Dans ta solution - si je l'ai bien comprise - on tien compte de la présence ou de l'absence d'un Os.
Pour moi, tous les Os seront toujours présents. SI un Os n'est pas présent, donc la machine est en rade.
Non ce qui m'intéresse c'est de pouvoir déterminer quel Os va démarrer. J'ai déjà réussi la programmation des cartes réseaux qui différencient l'Os par le réseau. Mais cela ne me donne aucune possibilité d'accéder à l'os de mon choix.
J'avais pensé à utiliser ANDLINUX pour modifier en temps réel le config de GRUB2 mais on m'a fait remarquer qu'en cas de coupure de ligne, je serai plantée et totalement parce que je ne pourrai pas reprendre la main. Donc cette solution est exclue dans l'état actuelle de ma recherche.
Suis(je plus claire dans ma demande ?
oups ok j avais pas vraiment analysé ta demande spécifique:
heu non je n ai jamais vu une programmation de grub qui compte les démarrage boot pour en sélectionner ensuite un par défaut....désolé.
de plus lorsque l os est sélectionné, grub n 'a plus la main pour rechanger d'avis par la suite .....mais bon :)
je veux que tous les trois démarrages ( 3 étant un nombre fictif) il démarre sur l'Os numéro 2 puis revienne au démarrage par défaut
heu non je n ai jamais vu une programmation de grub qui compte les démarrage boot pour en sélectionner ensuite un par défaut....désolé.
de plus lorsque l os est sélectionné, grub n 'a plus la main pour rechanger d'avis par la suite .....mais bon :)
Merci pour cette précision Mykkel
maintenant posons le problème autrement puisque la solution du nombre de démarrage est insoluble :
le souci est que : lorsque que win est lancé, il n'y a pas accès possible à la ligne de commande sous linux. Donc si je peux à partir d'ubuntu modifier qqchose sur win l'inverse n'est pas possible.
serait-il possible de modifier Grub de façon à ce que le programme win ne s'allume qu'une fois et que <grub revienne à sa position antérieure.
Imaginons le bouton reset d'un appareil : à chaque fois que le reset est appuyé; la config usine ressort.
Peut on considérer possible de faire quelque chose d'identique - je programme Grub pour qu'il lance Win mais qu'une fois lancé il revienne à sa position initiale - linux ?
Ce que je dis n'est pas forcement clair : je suis obligée de m'adapter en fonction des réponses qui me sont données pour avancer.
Alors je suis en toute écoute pour les informations nécessaires à la compréhension et surtout pour les réponses que vous pourrez me donner
merci
maintenant posons le problème autrement puisque la solution du nombre de démarrage est insoluble :
le souci est que : lorsque que win est lancé, il n'y a pas accès possible à la ligne de commande sous linux. Donc si je peux à partir d'ubuntu modifier qqchose sur win l'inverse n'est pas possible.
serait-il possible de modifier Grub de façon à ce que le programme win ne s'allume qu'une fois et que <grub revienne à sa position antérieure.
Imaginons le bouton reset d'un appareil : à chaque fois que le reset est appuyé; la config usine ressort.
Peut on considérer possible de faire quelque chose d'identique - je programme Grub pour qu'il lance Win mais qu'une fois lancé il revienne à sa position initiale - linux ?
Ce que je dis n'est pas forcement clair : je suis obligée de m'adapter en fonction des réponses qui me sont données pour avancer.
Alors je suis en toute écoute pour les informations nécessaires à la compréhension et surtout pour les réponses que vous pourrez me donner
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je crois que je vois ce que tu veux dire, tu veux avoir plusieurs os qui tourne en meme temps (donc forcément sur des machines différentes en réseaux ) et que grub gère tout ces os,
déjà ce qu il faut savoir , si linux reconnait une partition windows, (fat32, ntfs) windows est incapable de lire sur une partition linux (ext3, ext4..) donc déja la ca coince pour que Win puisse renvoyer la balle à linux.....puisque Win ne connait pas Linux.
le processus du bootloader est le suivant: exemple grub qui est divisé en 3 parties:
1 partie : un code routine qui se trouve en général dans le MBR (premier secteur du disque et partitionnement) qui indique ou pointer.
2 eme partie: se trouve sur la première piste, jusqu au 49 secteurs si mes souvenirs sont bons.
la se trouve se qu on appelle le 'shell grub'
3 eme partie : le programme menu grub à proprement parlé dans la partition linux.
la procédure séquentielle est toujours la même, et à ma connaissance ne voit pas comment la modifier, puisqu il faut que la machine boot pour que cette procédure soit exécutée, et si Win ou Linux sélectionné, la machine ne boot plus forcément .......donc la je ne vois pas comment cela serait possible de pouvoir lancer grub si le système d exploitation est déja lancé ?
déjà ce qu il faut savoir , si linux reconnait une partition windows, (fat32, ntfs) windows est incapable de lire sur une partition linux (ext3, ext4..) donc déja la ca coince pour que Win puisse renvoyer la balle à linux.....puisque Win ne connait pas Linux.
le processus du bootloader est le suivant: exemple grub qui est divisé en 3 parties:
1 partie : un code routine qui se trouve en général dans le MBR (premier secteur du disque et partitionnement) qui indique ou pointer.
2 eme partie: se trouve sur la première piste, jusqu au 49 secteurs si mes souvenirs sont bons.
la se trouve se qu on appelle le 'shell grub'
3 eme partie : le programme menu grub à proprement parlé dans la partition linux.
la procédure séquentielle est toujours la même, et à ma connaissance ne voit pas comment la modifier, puisqu il faut que la machine boot pour que cette procédure soit exécutée, et si Win ou Linux sélectionné, la machine ne boot plus forcément .......donc la je ne vois pas comment cela serait possible de pouvoir lancer grub si le système d exploitation est déja lancé ?
Mykkel merci pour ta réponse
par rapport à ta réflexion, je continue le raisonnement - bon sang qu'on avance vite quand on a affaire à des gens intelligents -
donc en résumé, je ne peux rien faire pour programmer à long terme
Mais imaginons la situation suivante
je suis sous WIndows - on laisse tomber les versions et je dois absolument redémarrer cette bécane à distance sur linux la prochaine fois.
au regard de ce que tu dis, je n'ai qu'une solution : lancer un système linux soit en parallèle soit en virtualisation - gros conso de ressources surtout en vnc ou équivalent.
SI on est en parallèle, il y a ANDLINUX et COLINUX que je ne maitrise pas du tout.
Serait-il possible de modifier le menu de grub2 à partir de la virtualisation ou à partir du colinux ou andlinux ?
autre solution : créer deux menus GRUB2 et fumer le menu qui ne nous intéresse pas pour démarrer sous la bonne appli
Ce que je vais dire relève uniquement de mon cerveau malade....rires :
Je fais un menu GRUB menu1 XP qui démarre automatiquement. Ce menu est installé sur la partition linux comme tu l'as dit très justement.
Je fais un menu GRUB menu 1 linux qui démarre automatiquement. MAIS ce menu est installé sur la partition windows.
Et puisque LINUX lit les partitions windows, peut-etre que j'ai intéret à mettre les deux menus - linux et xp - sur une partition windows
Résultat des courses : lorsque que je suis sous XP pu sous linux je modifie les menus en fonction de mes besoins.
QUESTIONS
cela est -il possible de dire à GRUB d'aller chercher son menu sur une autre partition que l'endroit où il se trouve ?
SI oui, je n'ai qu'à changer l'extension afin que le menu qui m'intéresse soit pris en compte, non ?
Tout ceci est une réflexion qui n'a pas forcement de sens mais c'est ce que j'entrevois depuis que je lis les sites concernant grub. Je regrette de ne pas avoir trouvé de canal irc spécialisé pour GRUB
Bonne soirée et merci encore
par rapport à ta réflexion, je continue le raisonnement - bon sang qu'on avance vite quand on a affaire à des gens intelligents -
donc en résumé, je ne peux rien faire pour programmer à long terme
Mais imaginons la situation suivante
je suis sous WIndows - on laisse tomber les versions et je dois absolument redémarrer cette bécane à distance sur linux la prochaine fois.
au regard de ce que tu dis, je n'ai qu'une solution : lancer un système linux soit en parallèle soit en virtualisation - gros conso de ressources surtout en vnc ou équivalent.
SI on est en parallèle, il y a ANDLINUX et COLINUX que je ne maitrise pas du tout.
Serait-il possible de modifier le menu de grub2 à partir de la virtualisation ou à partir du colinux ou andlinux ?
autre solution : créer deux menus GRUB2 et fumer le menu qui ne nous intéresse pas pour démarrer sous la bonne appli
Ce que je vais dire relève uniquement de mon cerveau malade....rires :
Je fais un menu GRUB menu1 XP qui démarre automatiquement. Ce menu est installé sur la partition linux comme tu l'as dit très justement.
Je fais un menu GRUB menu 1 linux qui démarre automatiquement. MAIS ce menu est installé sur la partition windows.
Et puisque LINUX lit les partitions windows, peut-etre que j'ai intéret à mettre les deux menus - linux et xp - sur une partition windows
Résultat des courses : lorsque que je suis sous XP pu sous linux je modifie les menus en fonction de mes besoins.
QUESTIONS
cela est -il possible de dire à GRUB d'aller chercher son menu sur une autre partition que l'endroit où il se trouve ?
SI oui, je n'ai qu'à changer l'extension afin que le menu qui m'intéresse soit pris en compte, non ?
Tout ceci est une réflexion qui n'a pas forcement de sens mais c'est ce que j'entrevois depuis que je lis les sites concernant grub. Je regrette de ne pas avoir trouvé de canal irc spécialisé pour GRUB
Bonne soirée et merci encore
En fait la commande update-grub va se baser sur /etc/grub/* en vue de générer /boot/grub/grub.cfg. C'est ce fichier qui est utilisé pour générer le grub proprement dit. En d'autre terme il suffit de "pipoter" soit /etc/grub soit /boot/grub/grub.cfg avant de déclencher cette commande pour corriger le grub en conséquence.
On peut même imaginer que tu aies deux systèmes tout deux responsables de générer grub au même endroit et configuré de tel sorte que le premier grub lance le 2nd OS et réciproquement.
Je m'explique :
- supposons que tu aies OS1 avec grub-pc configuré pour lancer OS2 par défaut et l'installe dans le MBR du disque sur lequel tu amorces,
- supposons que tu aies OS2 avec grub-pc configuré pour lancer OS1 par défaut et l'installe dans le MBR du disque sur lequel tu amorces,
- supposons que pour ces deux OS, à l'extinction de la machine déclenchent un script /etc/init.d/corriger_grub qui se contente de lancer la commande "update-grub". Pour ce faire il faudra activer ce script aux runlevel 0 et 6 grâce à la commande update-rc.d sous debian.
Alors à chaque reboot l'Os par défaut va changer. Je te déconseille très fortement de charcuter les scripts de grub autres que /etc/default/grub car ils risquent d'être écrasés lors des mises à jours de grub.
Bonne chance
On peut même imaginer que tu aies deux systèmes tout deux responsables de générer grub au même endroit et configuré de tel sorte que le premier grub lance le 2nd OS et réciproquement.
Je m'explique :
- supposons que tu aies OS1 avec grub-pc configuré pour lancer OS2 par défaut et l'installe dans le MBR du disque sur lequel tu amorces,
- supposons que tu aies OS2 avec grub-pc configuré pour lancer OS1 par défaut et l'installe dans le MBR du disque sur lequel tu amorces,
- supposons que pour ces deux OS, à l'extinction de la machine déclenchent un script /etc/init.d/corriger_grub qui se contente de lancer la commande "update-grub". Pour ce faire il faudra activer ce script aux runlevel 0 et 6 grâce à la commande update-rc.d sous debian.
Alors à chaque reboot l'Os par défaut va changer. Je te déconseille très fortement de charcuter les scripts de grub autres que /etc/default/grub car ils risquent d'être écrasés lors des mises à jours de grub.
Bonne chance