Faire grub garder son démarrage par défaut sous les mises à jour du noyau

11

Je double-démarre ma machine et je veux qu'elle démarre par défaut dans Windows afin que chaque fois que je redémarre la machine à distance depuis mon domicile, elle puisse revenir dans Windows (au lieu d'Ubuntu).

Le problème est que chaque fois qu'Ubuntu met à jour le noyau, je dois réinitialiser l'élément de démarrage par défaut de grub vers Windows. C'est parce que le chargeur de menu grub utilise des positions c'est-à-dire 6 pour le système d'exploitation par défaut pour démarrer. Et quand Ubuntu installe un nouveau noyau, il change cet ordre.

Je cherche un moyen de configurer grub pour se souvenir de son élément de démarrage par défaut sous les mises à jour du noyau.

reprogrammeur
la source

Réponses:

9

Grub 1 (Ubuntu 9.04 et versions antérieures)

Je trouve que le moyen le plus simple de le faire est de déplacer l'entrée de démarrage Windows au-dessus des entrées Ubuntu dans /boot/grub/menu.lst. Par défaut, le fichier de configuration Grub est présenté comme suit:

  1. options de base
  2. configuration du noyau debian auto-magic (y compris les utilitaires comme memtest86 + par défaut)
  3. autres OS détectés

La section 2 est délimitée par ces lignes dans le fichier de configuration:

### BEGIN AUTOMAGIC KERNELS LIST
(lots of stuff here)
### END DEBIAN AUTOMAGIC KERNELS LIST

Les entrées pour les systèmes d'exploitation détectés automatiquement (par exemple, Windows) sont placées après cette section. Lorsque vous installez un nouveau noyau, la section 2 est la seule section qui est modifiée. Ainsi, déplacer le système d'exploitation détecté automatiquement quelque part avant la BEGINligne le placera là où le numéro d'entrée ne changera pas lorsqu'un nouveau noyau sera installé.


Grub 2 (Ubuntu 9.10 et versions ultérieures)

Avec Grub2, l'intégralité du fichier de configuration est créé à nouveau à chaque update-grubexécution, donc l'édition /boot/grub/grub.cfgne sera pas une solution permanente. La façon dont ce fichier est généré est gérée par les fichiers /etc/default/grubet les scripts dans /etc/grub.d/*. Nous modifions donc la configuration en modifiant les fichiers qui contrôlent les sections individuelles du fichier de configuration, puis en réexécutant update-grub.

Mon /etc/grub.dinclut ces fichiers:

  • 00_header
  • 05_debian_theme
  • 10_hurd
  • 10_linux
  • 20_memtest86 +
  • 21_memtest86
  • 30_os-prober
  • 40_custom

Ce sont des scripts shells qui sont exécutés afin de générer le fichier de configuration. L'entrée de démarrage Windows est générée par 30_os-prober, qui est exécutée après la génération des entrées de démarrage Linux 10_linux. Il suffit donc de renommer 30_os-proberquelque chose de moins de 10 et de relancerupdate-grub

mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober
update-grub

Maintenant, votre entrée Windows doit être la première entrée, et vous pouvez la définir comme entrée de démarrage par défaut ( GRUB_DEFAULT=) dans /etc/default/grub.

Quack Quichotte
la source
2

Suivez les instructions sur mon blog ici pour utiliser le chargeur de démarrage Windows propre pour votre travail. Je l'utilise maintenant, et lorsque je démarre le PC, j'ai deux options:

Windows Vista Ubuntu 10.04

Il n'y a pas d'autre encombrement. Vous pouvez également définir de nombreuses options différentes. Si je n'appuie sur rien pendant 5 secondes, Windows démarre.

Bonne chance.

Antrikshy
la source
ce lien est presque mort
tshepang