Après chaque mise à jour du noyau, je dois exécuter update-burg
manuellement. Comment puis-je le rendre automatique?
Une autre méthode pour vous consiste à éditer /etc/kernel-img.conf
do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
postinst_hook = update-burg
postrm_hook = update-burg
De: https://bugs.launchpad.net/burg/+bug/594431 (un rapport de bogue confirme votre expérience)
Cela peut également être effacé par les mises à jour, mais comme il est dans /etc/
vous devriez (je pense) (je pense) obtenir une invite pour conserver votre configuration existante quand une mise à jour frappe.
Comme le disent les responsables du bogue, ce n’est toujours pas idéal, car il est fort possible que quelqu'un veuille exécuter à la fois burg et grub ou tout au moins garder les deux synchronisés.
Vous pouvez aller plus loin et écrire un nouveau script comme celui-ci:
#!/bin/sh
set -e
exec update-grub "$@"
exec update-burg "$@"
Enregistrez-le sous /usr/sbin/update-bootloaders
, chmod +x
, puis collez update-bootloaders
dans /etc/kernel-img.conf
à la place de update-grub
ou update-burg
.
Je suppose qu’à long terme, un système alternatives
doit être configuré pour divers chargeurs de démarrage, comme il en existe pour Java, le système audio et d’autres sous-systèmes interchangeables.
Normalement, update-grub
est appelé. C'est juste quelque chose qui se passe. Le système s'attend à ce que grub soit le chargeur de démarrage. En supposant que vous n'utilisiez plus jamais de grub, vous pouvez le faire:
cd /usr/sbin/
Sudo mv update-grub update-grub.backup
Sudo ln -s update-burg update-grub
Cela déplace update-grub
et crée un lien symbolique à sa place qui exécute réellement update-burg
. Ainsi, lorsqu'un nouveau noyau est installé, il appelle update-grub
qui est en fait update-burg
.
Hacky mais ça devrait marcher.
Inverser:
cd /usr/sbin/
Sudo rm update-grub # this is only a symlink
Sudo mv update-grub.backup update-grub
Merci!
J'ai créé un script basé sur les informations les plus utiles et les mieux notées fournies ici. Un changement subtil est que les exécutables du chargeur de démarrage ne sont plus exécutés (comme dans le cas de grub, il se ferme; ainsi, le script se ferme et les autres chargeurs ne sont pas exécutés (@ Ubuntu11)).
Le script peut être configuré pour plusieurs chargeurs de démarrage .. (si l'exécutable est update-name
et dans /usr/sbin
;-).
Il pourrait être étendu pour autoriser les exécutables de mise à jour qui ne sont pas update-name
. Pour ce faire, utilisez peut-être name:exec
en tant que valeurs de la variable de configuration des chargeurs d’amorçage et divisez la var, puis modifiez la commande d’exécution en conséquence (vous devrez probablement utiliser un langage différent pour que cela soit élégant).
#!/bin/sh
# #################################################################
#
# Updates (multiple) bootloaders after kernel update.
#
# @Shell bash
# @see http://askubuntu.com/questions/4905/how-to-automatically-update-burg-after-a-kernel-update
#
# #################################################################
#
# Install:
#
# -----------------------------------------------------------------
# * Save as: /usr/sbin/update-bootloaders
# * Then: chmod +x /usr/sbin/update-bootloaders
# * Edit /etc/kernel-img.conf and append/replace the following parameters:
# ** postinst_hook = update-bootloaders
# ** postrm_hook = update-bootloaders
#
# #################################################################
#
# Configuration:
#
# -----------------------------------------------------------------
# BOOTLOADERS: configuration variable to list bootloaders
BOOTLOADERS="grub burg"
#
# #################################################################
set -e
for BOOTLOADER in ${BOOTLOADERS}; do
EXEC="/usr/sbin/update-${BOOTLOADER}"
if [ -x ${EXEC} ]; then
echo "Updating ${BOOTLOADER}..."
${EXEC} "$@"
fi
done
# eof
Si vous avez l'habitude de faire Sudo apt-get upgrade
pour mettre à jour vos paquets et vos noyaux, le script suivant va résoudre votre problème et résiste à 100% contre les mises à jour:
#!/bin/bash
# Check what kernels are installed.
KERLST=`ls /boot | grep vmlinu`
# Do updates.
Sudo apt-get -y update
Sudo apt-get -y upgrade
Sudo apt-get -y dist-upgrade
# Update burg if kernels changed.
if [ "$KERLST" != "`ls /boot | grep vmlinu`" ]; then
Sudo update-burg
fi
Enregistrer est sous forme de fichier texte apgrade.sh et marquez-le comme exécutable. Ce script effectuera toutes les mises à jour possibles, vérifiera si la liste du noyau a changé et mettra à jour burg le cas échéant. Je l'utilise depuis 10.04 (lié à un alias), et aucune mise à jour ne l'a cassé jusqu'à présent.
Si, toutefois, vous aimez effectuer vos mises à jour manuellement via Synaptic, la méthode d'Oli peut être meilleure.