カーネルを更新するたびに、update-burg
を手動で実行する必要があります。自動化するにはどうすればよいですか?
別の方法は、/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
From: https://bugs.launchpad.net/burg/+bug/594431 (バグレポートはあなたの経験を反映しています)
これは同様に更新によって一掃できますが、/etc/
にあるので、should(私は思う)更新がヒットします。
バグの人々が言うように、誰かがburgとgrubの両方を実行したり、少なくとも2つの同期を維持したりする可能性があるため、これはまだ理想的ではありません。
さらに進んで、次のような新しいスクリプトを作成することもできます。
#!/bin/sh
set -e
exec update-grub "$@"
exec update-burg "$@"
/usr/sbin/update-bootloaders
、chmod +x
として保存し、update-bootloaders
または/etc/kernel-img.conf
の代わりにupdate-grub
にupdate-burg
を貼り付けます。
長期的には、alternatives
システムは、Java、オーディオ、その他の交換可能なサブシステムに存在するさまざまなブートローダー用にセットアップする必要があると思います。
通常、update-grub
が呼び出されます。これはただ起こることです。システムはgrubがブートローダーであることを期待しています。あなたが二度とgrubを使用するつもりがないと仮定すると、これを行うことができます:
cd /usr/sbin/
Sudo mv update-grub update-grub.backup
Sudo ln -s update-burg update-grub
これにより、update-grub
が外れ、実際にupdate-burg
を実行する場所にシンボリックリンクが作成されます。そのため、新しいカーネルをインストールすると、update-grub
が呼び出されますが、これは実際にはupdate-burg
です。
ハッキーですが、動作するはずです。
逆にするには:
cd /usr/sbin/
Sudo rm update-grub # this is only a symlink
Sudo mv update-grub.backup update-grub
ありがとう!
ここで提供される最も役立つ/最も評価の高い情報に基づいてスクリプトを作成しました。微妙な変更の1つは、ブートローダーの実行可能ファイルが実行されなくなることです(grubの場合のように終了します。したがって、スクリプトが終了し、他のローダーが実行されません(@ Ubuntu11))。
このスクリプトは、複数のブートローダー用に設定できます..(実行可能ファイルがupdate-name
および/usr/sbin
;-の場合).
update-name
以外の実行可能ファイルを更新できるように拡張できます。これを行うには、ブートローダーの設定変数の値としてname:exec
を使用し、varを分割し、それに応じて実行コマンドを変更します(これを行うには、おそらく別の言語を使用する必要があります)。
#!/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
Sudo apt-get upgrade
を実行してパッケージとカーネルを更新する習慣がある場合、次のスクリプトは問題を解決し、更新に対して100%回復力があります。
#!/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
保存はテキストファイルとしてapgrade.shで実行可能としてマークします。このスクリプトは、可能なすべての更新を実行し、カーネルリストが変更されたかどうかを確認し、変更された場合に更新を行います。私は10.04(エイリアスにバインドされている)以来それを使用してきましたが、これまでに更新されたものはありません。
ただし、シナプスを介して手動で更新を行う場合は、Oliの方法の方が適している可能性があります。