AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 4905
In Process
jumbli
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 4 个回答
  • 6009 Views

4 个回答

  • Voted
  1. 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、音频和其他可互换子系统一样。

    • 8
  2. 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
    
    • 3
  3. 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 的方法可能会更好。

    • 1
  4. 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
    
    • 1

相关问题

  • 使用 apt-get upgrade 时如何强制安装内核更新?

  • 如何完全删除 Ruby + Rails + Gems?

  • 从 8.04 LTS 升级到 10.04 LTS 的体验?

  • 删除在线状态菜单,但保留注销菜单?

  • 什么可能会阻止 xrandr 屏幕之间的鼠标移动?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve