jumbli Asked: 2010-09-30 07:22:29 +0800 CST2010-09-30 07:22:29 +0800 CST 2010-09-30 07:22:29 +0800 CST 如何在内核更新后自动更新 burg 772 每次内核更新后,我都必须update-burg手动运行。我如何使它自动? 10.04 kernel burg 4 个回答 Voted Oli 2010-10-01T06:06:23+08:002010-10-01T06:06:23+08:00 您的另一种方法是编辑/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 来自:https ://bugs.launchpad.net/burg/+bug/594431 (错误报告反映了您的经验) 这同样可以通过更新消除,但正如它在/etc/你应该(我认为)得到提示以在更新确实命中时保留你现有的配置。 正如 bug 中的人们继续说的那样,这仍然不理想,因为很有可能有人可能想要同时运行 burg 和 grub,或者至少让两者保持同步。 你可以更进一步,写一个像这样的新脚本: #!/bin/sh set -e exec update-grub "$@" exec update-burg "$@" 将其另存为/usr/sbin/update-bootloaders, it ,chmod +x然后update-bootloaders代替or 。/etc/kernel-img.confupdate-grubupdate-burg 我想从长远来看,alternatives需要为各种引导加载程序设置一个系统,就像 Java、音频和其他可互换子系统一样。 Oli 2010-09-30T07:31:53+08:002010-09-30T07:31:53+08:00 通常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 Malabarba 2010-10-22T05:30:18+08:002010-10-22T05:30:18+08:00 如果您有更新软件包和内核的习惯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并将其标记为可执行文件。该脚本将执行所有可能的更新,检查内核列表是否已更改,并更新 burg 以防万一。我从 10.04 开始使用它(绑定到别名),到目前为止还没有更新破坏它。 但是,如果您喜欢通过突触手动进行更新,那么 Oli 的方法可能会更好。 Thf 2012-05-31T10:31:02+08:002012-05-31T10:31:02+08:00 谢谢! 我根据此处提供的最有用/评价最高的信息创建了一个脚本。一个微妙的变化是引导加载程序可执行文件不再被执行(在 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
您的另一种方法是编辑
/etc/kernel-img.conf
来自:https ://bugs.launchpad.net/burg/+bug/594431 (错误报告反映了您的经验)
这同样可以通过更新消除,但正如它在
/etc/
你应该(我认为)得到提示以在更新确实命中时保留你现有的配置。正如 bug 中的人们继续说的那样,这仍然不理想,因为很有可能有人可能想要同时运行 burg 和 grub,或者至少让两者保持同步。
你可以更进一步,写一个像这样的新脚本:
将其另存为
/usr/sbin/update-bootloaders
, it ,chmod +x
然后update-bootloaders
代替or 。/etc/kernel-img.conf
update-grub
update-burg
我想从长远来看,
alternatives
需要为各种引导加载程序设置一个系统,就像 Java、音频和其他可互换子系统一样。通常
update-grub
会被调用。这只是发生的事情。系统期望 grub 成为引导加载程序。假设你再也不会使用 grub,你可以这样做:这会移开
update-grub
并在其实际运行的位置创建一个符号链接update-burg
。因此,当安装新内核时,它update-grub
实际上会调用update-burg
.哈克但它应该工作。
扭转:
如果您有更新软件包和内核的习惯
sudo apt-get upgrade
,以下脚本将解决您的问题,并且对更新具有 100% 的弹性:另存为文本文件apgrade.sh并将其标记为可执行文件。该脚本将执行所有可能的更新,检查内核列表是否已更改,并更新 burg 以防万一。我从 10.04 开始使用它(绑定到别名),到目前为止还没有更新破坏它。
但是,如果您喜欢通过突触手动进行更新,那么 Oli 的方法可能会更好。
谢谢!
我根据此处提供的最有用/评价最高的信息创建了一个脚本。一个微妙的变化是引导加载程序可执行文件不再被执行(在 grub 的情况下它退出;因此脚本退出并且其他加载程序不执行(@Ubuntu11))。
该脚本可以为多个引导加载程序配置..(如果可执行文件
update-name
在/usr/sbin
;-) 中。它可以扩展为允许更新不是
update-name
. 为此,可以name:exec
在引导加载程序配置变量中用作值并拆分 var,然后相应地更改执行命令(可能需要使用不同的语言才能优雅)。