39 |
grubby=/sbin/grubby |
grubby=/sbin/grubby |
40 |
fi |
fi |
41 |
|
|
42 |
[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel |
[ -f /etc/conf.d/grubby ] && . /etc/conf.d/grubby |
43 |
|
|
44 |
cfgGrub="" |
cfgGrub="" |
45 |
cfgLilo="" |
cfgLilo="" |
101 |
{ |
{ |
102 |
echo "Usage: $(basename $0) [-v] [--mkinitrd] [--rminitrd]" >&2 |
echo "Usage: $(basename $0) [-v] [--mkinitrd] [--rminitrd]" >&2 |
103 |
echo " [--initrdfile=<initrd-image>] [--depmod] [--rmmoddep]" >&2 |
echo " [--initrdfile=<initrd-image>] [--depmod] [--rmmoddep]" >&2 |
104 |
echo " [--kernel-args=<args>] [--remove-args=<args>]" >&2 |
echo " [--kernel-args=<args>] [--remove-args=<args>]" >&2 |
105 |
echo " [--banner=<banner>] [--multiboot=multiboot]" >&2 |
echo " [--banner=<banner>] [--multiboot=multiboot]" >&2 |
106 |
echo " [--mbargs=mbargs] [--make-default]" >&2 |
echo " [--mbargs=mbargs] [--make-default]" >&2 |
107 |
echo " <--install | --remove | --update> <kernel-version>" >&2 |
echo " <--install | --remove | --update> <kernel-version>" >&2 |
109 |
exit 1 |
exit 1 |
110 |
} |
} |
111 |
|
|
112 |
|
run_grub2() |
113 |
|
{ |
114 |
|
if [ -d /boot/grub2 -a -x /sbin/grub2-mkconfig ] |
115 |
|
then |
116 |
|
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old |
117 |
|
/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg |
118 |
|
fi |
119 |
|
} |
120 |
|
|
121 |
install() |
install() |
122 |
{ |
{ |
123 |
# XXX kernel should be able to be specified also (or work right on ia64) |
# XXX kernel should be able to be specified also (or work right on ia64) |
150 |
return |
return |
151 |
fi |
fi |
152 |
|
|
153 |
|
# Run grub2's configuration update in parallel, if it is installed |
154 |
|
run_grub2 |
155 |
|
|
156 |
# get the root filesystem to use |
# get the root filesystem to use |
157 |
rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab) |
rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab) |
158 |
|
|
196 |
if [[ -n ${runLilo} ]] |
if [[ -n ${runLilo} ]] |
197 |
then |
then |
198 |
[[ -n ${verbose} ]] && echo "running ${lilo}" |
[[ -n ${verbose} ]] && echo "running ${lilo}" |
199 |
if [ ! -x $lilo ] |
if [ ! -x ${lilo} ] |
200 |
then |
then |
201 |
[[ -n ${verbose} ]] && echo "${lilo} does not exist" |
[[ -n ${verbose} ]] && echo "${lilo} does not exist" |
202 |
else |
else |
218 |
return |
return |
219 |
fi |
fi |
220 |
|
|
221 |
|
# Run grub2's configuration update in parallel, if it is installed |
222 |
|
run_grub2 |
223 |
|
|
224 |
if [[ -n ${cfgGrub} ]] |
if [[ -n ${cfgGrub} ]] |
225 |
then |
then |
226 |
[[ -n ${verbose} ]] && echo "removing ${version} from ${grubConfig}" |
[[ -n ${verbose} ]] && echo "removing ${version} from ${grubConfig}" |
232 |
if [[ -n ${cfgLilo} ]] |
if [[ -n ${cfgLilo} ]] |
233 |
then |
then |
234 |
[[ -n ${verbose} ]] && echo "removing ${version} from ${liloConfig}" |
[[ -n ${verbose} ]] && echo "removing ${version} from ${liloConfig}" |
235 |
${grubby} --remove-kernel=${bootPrefix}/${kernelName}-${version} \ |
${grubby} --remove-kernel=${bootPrefix}/${kernelName}-${version} --${liloFlag} |
|
--${liloFlag} |
|
236 |
|
|
237 |
if [[ -n ${runLilo} ]] |
if [[ -n ${runLilo} ]] |
238 |
then |
then |
251 |
|
|
252 |
update() |
update() |
253 |
{ |
{ |
254 |
|
if [ ! -f ${bootPrefix}/${kernelName}-${version} ] |
255 |
|
then |
256 |
|
[[ -n ${verbose} ]] && echo "kernel for ${version} does not exist, not running grubby" |
257 |
|
return |
258 |
|
fi |
259 |
|
|
260 |
|
INITRD="" |
261 |
|
if [ -f ${initrdfile} ] |
262 |
|
then |
263 |
|
[[ -n ${verbose} ]] && echo "found ${initrdfile} and using it with grubby" |
264 |
|
INITRD="--initrd ${initrdfile}" |
265 |
|
fi |
266 |
|
|
267 |
|
# Run grub2's configuration update in parallel, if it is installed |
268 |
|
run_grub2 |
269 |
|
|
270 |
if [[ -n ${cfgGrub} ]] |
if [[ -n ${cfgGrub} ]] |
271 |
then |
then |
272 |
[[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}" |
[[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}" |
273 |
${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \ |
${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \ |
274 |
|
${INITRD} \ |
275 |
${kernargs:+--args="${kernargs}"} \ |
${kernargs:+--args="${kernargs}"} \ |
276 |
${removeargs:+--remove-args="${removeargs}"} |
${removeargs:+--remove-args="${removeargs}"} |
277 |
else |
else |
282 |
then |
then |
283 |
[[ -n ${verbose} ]] && echo "updating ${version} from ${liloConfig}" |
[[ -n ${verbose} ]] && echo "updating ${version} from ${liloConfig}" |
284 |
${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \ |
${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \ |
285 |
|
${INITRD} \ |
286 |
${kernargs:+--args="${kernargs}"} \ |
${kernargs:+--args="${kernargs}"} \ |
287 |
${removeargs:+--remove-args="${removeargs}"} \ |
${removeargs:+--remove-args="${removeargs}"} \ |
288 |
--${liloFlag} |
--${liloFlag} |
367 |
--remove-args*) |
--remove-args*) |
368 |
if echo $1 | grep '=' >/dev/null |
if echo $1 | grep '=' >/dev/null |
369 |
then |
then |
370 |
removeargs=$(echo $1 | sed 's/^--remove-args=//') |
removeargs=$(echo $1 | sed 's/^--remove-args=//') |
371 |
else |
else |
372 |
removeargs=$2 |
removeargs=$2 |
373 |
shift |
shift |
465 |
|
|
466 |
kernelmajor=$(echo ${kernel} | cut -d . -f 1,2) |
kernelmajor=$(echo ${kernel} | cut -d . -f 1,2) |
467 |
|
|
468 |
# kernel image for 2.4 is vmlinux |
# kernel image for 2.4 is kernel |
469 |
if [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]] |
if [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]] |
470 |
then |
then |
471 |
if [[ ${kernelmajor} = 2.4 ]] |
if [[ ${kernelmajor} = 2.4 ]] |