Конкретные ответы очень хорошие.
В общем, если вы хотите, чтобы некоторые вещи определялись / устанавливались в оболочке, просто напишите сценарий, чтобы сделать это, а затем выполните его с помощью source или ., когда вы хотите, чтобы эта настройка действовала.
Если это то, что вы хотите все время, вы можете указать его в .profile (для систем входа) или в .bashrc для всех оболочек (если вы используете bash).
При таком подходе вы можете иметь несколько сценариев для настройки различных рабочих сред по мере необходимости, если вы убедитесь, что они не наступают друг на друга, если вы вызываете один из них после первого вызова.
Если у вас есть привычка делать 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 (привязанный к псевдониму), и никакие обновления не прервали его до сих пор.
Если, однако, вам нравится делать ваши обновления вручную через синаптику, тогда метод Оли может быть лучше ,
Обычно вызывается 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.
Hacky, но он должен работать.
Чтобы обратить вспять:
cd /usr/sbin/
sudo rm update-grub # this is only a symlink
sudo mv update-grub.backup update-grub
Я создал сценарий на основе наиболее полезной / наилучшей информации, представленной здесь. Одно из незначительных изменений заключается в том, что исполняемые файлы загрузчика больше не выполняются exec'd (как в случае с grub, который выйдет, поэтому сценарий завершается, а другие загрузчики не выполняются (@ Ubuntu11)).
сценарий может быть настроен для нескольких загрузчиков .. (если исполняемый файл update-name и /usr/sbin ;-).
Он может быть расширен, чтобы позволить исполняемым файлам обновления не update-name. Для этого, возможно, используйте name:exec в качестве значений в конфигурационной переменной boot-loaders и разделите 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 и пометить его как исполняемый файл. Этот скрипт будет выполнять все возможные обновления, проверять, изменился ли список ядра, и обновить burg, если он это сделал. Я использую его с 10.04 (привязанный к псевдониму), и никакие обновления не прервали его до сих пор.
Если, однако, вам нравится делать ваши обновления вручную через синаптику, тогда метод Оли может быть лучше ,
Обычно вызывается 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.
Hacky, но он должен работать.
Чтобы обратить вспять:
cd /usr/sbin/
sudo rm update-grub # this is only a symlink
sudo mv update-grub.backup update-grub
Я создал сценарий на основе наиболее полезной / наилучшей информации, представленной здесь. Одно из незначительных изменений заключается в том, что исполняемые файлы загрузчика больше не выполняются exec'd (как в случае с grub, который выйдет, поэтому сценарий завершается, а другие загрузчики не выполняются (@ Ubuntu11)).
сценарий может быть настроен для нескольких загрузчиков .. (если исполняемый файл update-name и /usr/sbin ;-).
Он может быть расширен, чтобы позволить исполняемым файлам обновления не update-name. Для этого, возможно, используйте name:exec в качестве значений в конфигурационной переменной boot-loaders и разделите 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 # Проверьте, какие ядра установлены. KERLST = `ls / boot | grep vmlinu` # Обновления. sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y dist-upgrade # Обновление burg, если ядра изменены. если ["$ KERLST"! = "` ls / boot | grep vmlinu` "]; затем sudo update-burg fi
Сохранить как текстовый файл apgrade.sh и пометить его как исполняемый файл. Этот скрипт будет выполнять все возможные обновления, проверять, изменился ли список ядра, и обновить burg, если он это сделал. Я использую его с 10.04 (привязанный к псевдониму), и никакие обновления не сломали его до сих пор.
Если, однако, вам нравится делать ваши обновления вручную через синаптические, тогда метод Оли может быть лучше ,
Обычно вызывается 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 # это только символическая ссылка sudo mv update-grub.backup update-grub
[ ! d12]
Я создал сценарий на основе наиболее полезной / наилучшей информации, представленной здесь. Одно из тонких изменений заключается в том, что исполняемые файлы загрузчика больше не выполняются exec'd (как в случае с grub, который завершается, поэтому сценарий завершается, а другие загрузчики не выполняются (@ Ubuntu11)).
сценарий может быть настроен для нескольких загрузчиков .. (если исполняемый файл update-name
и в / usr / sbin
;-).
Он может быть расширен, чтобы обновлять исполняемые файлы, которые не являются update-name
. Для этого, возможно, используйте имя : exec
как значения в переменной конфигурации boot-loaders и разделите var, а затем измените команду выполнения (возможно, для этого нужно будет использовать другой язык, чтобы это было элегантно).
#! / bin / sh # ################################## ################################# # # Обновления (несколько) загрузчиков после обновления ядра. # # @shell bash # @see http://askubuntu.com/questions/4905/how-to-automatically-update-burg-after-a-kernel-update # # ########### ################################################## #### # # Установить: # # ---------------------------------------- ------------------------- # * Сохранить как: / usr / sbin / update-bootloaders # * Затем: chmod + x / usr / sbin / update-bootloaders # * Измените /etc/kernel-img.conf и добавьте / замените следующие параметры: # ** postinst_hook = update-bootloaders # ** postrm_hook = update-bootloaders # # ########## ################################################## ##### # # Конфигурация: # # --------------------------------------- -------------------------- # BOOTLOADERS: переменная конфигурации для списка загрузчиков BOOTLOADERS = "grub burg" # # ######## ################################################## ####### set -e для BOOTLOADER в $ {BOOTLOADERS}; do EXEC = "/ usr / sbin / update - $ {BOOTLOADER}", если [-x $ {EXEC}]; затем echo "Обновление $ {BOOTLOADER} ..." $ {EXEC} "$ @" fi done # eof
Если у вас есть привычка делать sudo apt-get upgrade
для обновления ваших пакетов и ядер, следующий скрипт решит вашу проблему и на 100% устойчив к обновлениям:
] #! / bin / bash # Проверьте, какие ядра установлены. KERLST = `ls / boot | grep vmlinu` # Обновления. sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y dist-upgrade # Обновление burg, если ядра изменены. если ["$ KERLST"! = "` ls / boot | grep vmlinu` "]; затем sudo update-burg fi
Сохранить как текстовый файл apgrade.sh и пометить его как исполняемый файл. Этот скрипт будет выполнять все возможные обновления, проверять, изменился ли список ядра, и обновить burg, если он это сделал. Я использую его с 10.04 (привязанный к псевдониму), и никакие обновления не сломали его до сих пор.
Если, однако, вам нравится делать ваши обновления вручную через синаптические, тогда метод Оли может быть лучше ,
Обычно вызывается 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 # это только символическая ссылка sudo mv update-grub.backup update-grub
[ ! d12]
Я создал сценарий на основе наиболее полезной / наилучшей информации, представленной здесь. Одно из тонких изменений заключается в том, что исполняемые файлы загрузчика больше не выполняются exec'd (как в случае с grub, который завершается, поэтому сценарий завершается, а другие загрузчики не выполняются (@ Ubuntu11)).
сценарий может быть настроен для нескольких загрузчиков .. (если исполняемый файл update-name
и в / usr / sbin
;-).
Он может быть расширен, чтобы обновлять исполняемые файлы, которые не являются update-name
. Для этого, возможно, используйте имя : exec
как значения в переменной конфигурации boot-loaders и разделите var, а затем измените команду выполнения (возможно, для этого нужно будет использовать другой язык, чтобы это было элегантно).
#! / bin / sh # ################################## ################################# # # Обновления (несколько) загрузчиков после обновления ядра. # # @shell bash # @see http://askubuntu.com/questions/4905/how-to-automatically-update-burg-after-a-kernel-update # # ########### ################################################## #### # # Установить: # # ---------------------------------------- ------------------------- # * Сохранить как: / usr / sbin / update-bootloaders # * Затем: chmod + x / usr / sbin / update-bootloaders # * Измените /etc/kernel-img.conf и добавьте / замените следующие параметры: # ** postinst_hook = update-bootloaders # ** postrm_hook = update-bootloaders # # ########## ################################################## ##### # # Конфигурация: # # --------------------------------------- -------------------------- # BOOTLOADERS: переменная конфигурации для списка загрузчиков BOOTLOADERS = "grub burg" # # ######## ################################################## ####### set -e для BOOTLOADER в $ {BOOTLOADERS}; do EXEC = "/ usr / sbin / update - $ {BOOTLOADER}", если [-x $ {EXEC}]; затем echo "Обновление $ {BOOTLOADER} ..." $ {EXEC} "$ @" fi done # eof
Если у вас есть привычка делать sudo apt-get upgrade
для обновления ваших пакетов и ядер, следующий скрипт решит вашу проблему и на 100% устойчив к обновлениям:
] #! / bin / bash # Проверьте, какие ядра установлены. KERLST = `ls / boot | grep vmlinu` # Обновления. sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y dist-upgrade # Обновление burg, если ядра изменены. если ["$ KERLST"! = "` ls / boot | grep vmlinu` "]; затем sudo update-burg fi
Сохранить как текстовый файл apgrade.sh и пометить его как исполняемый файл. Этот скрипт будет выполнять все возможные обновления, проверять, изменился ли список ядра, и обновить burg, если он это сделал. Я использую его с 10.04 (привязанный к псевдониму), и никакие обновления не сломали его до сих пор.
Если, однако, вам нравится делать ваши обновления вручную через синаптические, тогда метод Оли может быть лучше ,
Обычно вызывается 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 # это только символическая ссылка sudo mv update-grub.backup update-grub
[ ! d12]
Я создал сценарий на основе наиболее полезной / наилучшей информации, представленной здесь. Одно из тонких изменений заключается в том, что исполняемые файлы загрузчика больше не выполняются exec'd (как в случае с grub, который завершается, поэтому сценарий завершается, а другие загрузчики не выполняются (@ Ubuntu11)).
сценарий может быть настроен для нескольких загрузчиков .. (если исполняемый файл update-name
и в / usr / sbin
;-).
Он может быть расширен, чтобы обновлять исполняемые файлы, которые не являются update-name
. Для этого, возможно, используйте имя : exec
как значения в переменной конфигурации boot-loaders и разделите var, а затем измените команду выполнения (возможно, для этого нужно будет использовать другой язык, чтобы это было элегантно).
#! / bin / sh # ################################## ################################# # # Обновления (несколько) загрузчиков после обновления ядра. # # @shell bash # @see http://askubuntu.com/questions/4905/how-to-automatically-update-burg-after-a-kernel-update # # ########### ################################################## #### # # Установить: # # ---------------------------------------- ------------------------- # * Сохранить как: / usr / sbin / update-bootloaders # * Затем: chmod + x / usr / sbin / update-bootloaders # * Измените /etc/kernel-img.conf и добавьте / замените следующие параметры: # ** postinst_hook = update-bootloaders # ** postrm_hook = update-bootloaders # # ########## ################################################## ##### # # Конфигурация: # # --------------------------------------- -------------------------- # BOOTLOADERS: переменная конфигурации для списка загрузчиков BOOTLOADERS = "grub burg" # # ######## ################################################## ####### set -e для BOOTLOADER в $ {BOOTLOADERS}; do EXEC = "/ usr / sbin / update - $ {BOOTLOADER}", если [-x $ {EXEC}]; затем echo "Обновление $ {BOOTLOADER} ..." $ {EXEC} "$ @" fi done # eof
Если у вас есть привычка делать sudo apt-get upgrade
для обновления ваших пакетов и ядер, следующий скрипт решит вашу проблему и на 100% устойчив к обновлениям:
] #! / bin / bash # Проверьте, какие ядра установлены. KERLST = `ls / boot | grep vmlinu` # Обновления. sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y dist-upgrade # Обновление burg, если ядра изменены. если ["$ KERLST"! = "` ls / boot | grep vmlinu` "]; затем sudo update-burg fi
Сохранить как текстовый файл apgrade.sh и пометить его как исполняемый файл. Этот скрипт будет выполнять все возможные обновления, проверять, изменился ли список ядра, и обновить burg, если он это сделал. Я использую его с 10.04 (привязанный к псевдониму), и никакие обновления не сломали его до сих пор.
Если, однако, вам нравится делать ваши обновления вручную через синаптические, тогда метод Оли может быть лучше ,
Обычно вызывается 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 # это только символическая ссылка sudo mv update-grub.backup update-grub
[ ! d12]
Я создал сценарий на основе наиболее полезной / наилучшей информации, представленной здесь. Одно из тонких изменений заключается в том, что исполняемые файлы загрузчика больше не выполняются exec'd (как в случае с grub, который завершается, поэтому сценарий завершается, а другие загрузчики не выполняются (@ Ubuntu11)).
сценарий может быть настроен для нескольких загрузчиков .. (если исполняемый файл update-name
и в / usr / sbin
;-).
Он может быть расширен, чтобы обновлять исполняемые файлы, которые не являются update-name
. Для этого, возможно, используйте имя : exec
как значения в переменной конфигурации boot-loaders и разделите var, а затем измените команду выполнения (возможно, для этого нужно будет использовать другой язык, чтобы это было элегантно).
#! / bin / sh # ################################## ################################# # # Обновления (несколько) загрузчиков после обновления ядра. # # @shell bash # @see http://askubuntu.com/questions/4905/how-to-automatically-update-burg-after-a-kernel-update # # ########### ################################################## #### # # Установить: # # ---------------------------------------- ------------------------- # * Сохранить как: / usr / sbin / update-bootloaders # * Затем: chmod + x / usr / sbin / update-bootloaders # * Измените /etc/kernel-img.conf и добавьте / замените следующие параметры: # ** postinst_hook = update-bootloaders # ** postrm_hook = update-bootloaders # # ########## ################################################## ##### # # Конфигурация: # # --------------------------------------- -------------------------- # BOOTLOADERS: переменная конфигурации для списка загрузчиков BOOTLOADERS = "grub burg" # # ######## ################################################## ####### set -e для BOOTLOADER в $ {BOOTLOADERS}; do EXEC = "/ usr / sbin / update - $ {BOOTLOADER}", если [-x $ {EXEC}]; затем echo "Обновление $ {BOOTLOADER} ..." $ {EXEC} "$ @" fi done # eof
Если у вас есть привычка делать sudo apt-get upgrade
для обновления ваших пакетов и ядер, следующий скрипт решит вашу проблему и на 100% устойчив к обновлениям:
] #! / bin / bash # Проверьте, какие ядра установлены. KERLST = `ls / boot | grep vmlinu` # Обновления. sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y dist-upgrade # Обновление burg, если ядра изменены. если ["$ KERLST"! = "` ls / boot | grep vmlinu` "]; затем sudo update-burg fi
Сохранить как текстовый файл apgrade.sh и пометить его как исполняемый файл. Этот скрипт будет выполнять все возможные обновления, проверять, изменился ли список ядра, и обновить burg, если он это сделал. Я использую его с 10.04 (привязанный к псевдониму), и никакие обновления не сломали его до сих пор.
Если, однако, вам нравится делать ваши обновления вручную через синаптические, тогда метод Оли может быть лучше ,
Обычно вызывается 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 # это только символическая ссылка sudo mv update-grub.backup update-grub
[ ! d12]
Я создал сценарий на основе наиболее полезной / наилучшей информации, представленной здесь. Одно из тонких изменений заключается в том, что исполняемые файлы загрузчика больше не выполняются exec'd (как в случае с grub, который завершается, поэтому сценарий завершается, а другие загрузчики не выполняются (@ Ubuntu11)).
сценарий может быть настроен для нескольких загрузчиков .. (если исполняемый файл update-name
и в / usr / sbin
;-).
Он может быть расширен, чтобы обновлять исполняемые файлы, которые не являются update-name
. Для этого, возможно, используйте имя : exec
как значения в переменной конфигурации boot-loaders и разделите var, а затем измените команду выполнения (возможно, для этого нужно будет использовать другой язык, чтобы это было элегантно).
#! / bin / sh # ################################## ################################# # # Обновления (несколько) загрузчиков после обновления ядра. # # @shell bash # @see http://askubuntu.com/questions/4905/how-to-automatically-update-burg-after-a-kernel-update # # ########### ################################################## #### # # Установить: # # ---------------------------------------- ------------------------- # * Сохранить как: / usr / sbin / update-bootloaders # * Затем: chmod + x / usr / sbin / update-bootloaders # * Измените /etc/kernel-img.conf и добавьте / замените следующие параметры: # ** postinst_hook = update-bootloaders # ** postrm_hook = update-bootloaders # # ########## ################################################## ##### # # Конфигурация: # # --------------------------------------- -------------------------- # BOOTLOADERS: переменная конфигурации для списка загрузчиков BOOTLOADERS = "grub burg" # # ######## ################################################## ####### set -e для BOOTLOADER в $ {BOOTLOADERS}; do EXEC = "/ usr / sbin / update - $ {BOOTLOADER}", если [-x $ {EXEC}]; затем echo "Обновление $ {BOOTLOADER} ..." $ {EXEC} "$ @" fi done # eof
Обычно вызывается 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 # это только символическая ссылка sudo mv update-grub.backup update-grub
[ ! d12]
Я создал сценарий на основе наиболее полезной / наилучшей информации, представленной здесь. Одно из тонких изменений заключается в том, что исполняемые файлы загрузчика больше не выполняются exec'd (как в случае с grub, который завершается, поэтому сценарий завершается, а другие загрузчики не выполняются (@ Ubuntu11)).
сценарий может быть настроен для нескольких загрузчиков .. (если исполняемый файл update-name
и в / usr / sbin
;-).
Он может быть расширен, чтобы обновлять исполняемые файлы, которые не являются update-name
. Для этого, возможно, используйте имя : exec
как значения в переменной конфигурации boot-loaders и разделите var, а затем измените команду выполнения (возможно, для этого нужно будет использовать другой язык, чтобы это было элегантно).
#! / bin / sh # ################################## ################################# # # Обновления (несколько) загрузчиков после обновления ядра. # # @shell bash # @see http://askubuntu.com/questions/4905/how-to-automatically-update-burg-after-a-kernel-update # # ########### ################################################## #### # # Установить: # # ---------------------------------------- ------------------------- # * Сохранить как: / usr / sbin / update-bootloaders # * Затем: chmod + x / usr / sbin / update-bootloaders # * Измените /etc/kernel-img.conf и добавьте / замените следующие параметры: # ** postinst_hook = update-bootloaders # ** postrm_hook = update-bootloaders # # ########## ################################################## ##### # # Конфигурация: # # --------------------------------------- -------------------------- # BOOTLOADERS: переменная конфигурации для списка загрузчиков BOOTLOADERS = "grub burg" # # ######## ################################################## ####### set -e для BOOTLOADER в $ {BOOTLOADERS}; do EXEC = "/ usr / sbin / update - $ {BOOTLOADER}", если [-x $ {EXEC}]; затем echo "Обновление $ {BOOTLOADER} ..." $ {EXEC} "$ @" fi done # eof
Если у вас есть привычка делать sudo apt-get upgrade
для обновления ваших пакетов и ядер, следующий скрипт решит вашу проблему и на 100% устойчив к обновлениям:
] #! / bin / bash # Проверьте, какие ядра установлены. KERLST = `ls / boot | grep vmlinu` # Обновления. sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y dist-upgrade # Обновление burg, если ядра изменены. если ["$ KERLST"! = "` ls / boot | grep vmlinu` "]; затем sudo update-burg fi
Сохранить как текстовый файл apgrade.sh и пометить его как исполняемый файл. Этот скрипт будет выполнять все возможные обновления, проверять, изменился ли список ядра, и обновить burg, если он это сделал. Я использую его с 10.04 (привязанный к псевдониму), и никакие обновления не сломали его до сих пор.
Если, однако, вам нравится делать ваши обновления вручную через синаптические, тогда метод Оли может быть лучше ,
~ / bin
(и избавиться от расширения .sh), если вы хотите запустить его как aupgrade
.
– Oli♦
21 October 2010 в 18:44
Еще один способ для вас - отредактировать /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 /
, вы должны (я думаю) получить приглашение сохранить существующую конфигурацию при ударе обновления.
Как говорят люди в этой ошибке, это все еще не идеально, поскольку есть все возможности, чтобы кто-то мог захотеть запустить как burg, так и grub или, по крайней мере, сохраните два синхронизированных.
Вы можете пойти дальше и написать новый скрипт следующим образом:
#! / bin / sh set -e exec update-grub "$ @" exec update-burg "$ @"
Сохранить его как / usr / sbin / update-bootloaders
, chmod + x
, а затем вставьте upd ate-bootloaders
в /etc/kernel-img.conf
вместо update-grub
или update-burg
.
Я предполагаю, что в долгосрочной перспективе необходимо установить альтернативы
для различных загрузчиков, которые существуют для java, аудио и других взаимозаменяемых подсистем.