parent
0e733bd0de
commit
867baa7266
@ -0,0 +1,84 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
COMMAND="$1"
|
||||
KVER="$2"
|
||||
|
||||
ESP_MOUNTPOINT=/boot/efi
|
||||
EFI_DIR="$ESP_MOUNTPOINT/qubes"
|
||||
|
||||
if [ ! -d "$EFI_DIR" ]; then
|
||||
# non-EFI system
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
case "$COMMAND" in
|
||||
add)
|
||||
# take the default section and use it as a template for the new entry
|
||||
awk -F = --assign "kver=${KVER}" '
|
||||
/^\[/ {
|
||||
# section header - previous section (if any) ended
|
||||
|
||||
# if default section already processed, that is all
|
||||
if (in_default) exit;
|
||||
in_global=0;
|
||||
in_default=0;
|
||||
}
|
||||
/\[global\]/ {
|
||||
in_global=1;
|
||||
}
|
||||
/^\[/ {
|
||||
if ("[" default_name "]" == $0) {
|
||||
in_default=1;
|
||||
print "[" kver "]";
|
||||
next;
|
||||
}
|
||||
}
|
||||
/^default=/ {
|
||||
if (in_global)
|
||||
default_name=$2;
|
||||
}
|
||||
/^kernel=/ {
|
||||
if (in_default) {
|
||||
sub("=[^ ]*", "=vmlinuz-" kver);
|
||||
}
|
||||
}
|
||||
/^ramdisk=/ {
|
||||
if (in_default) {
|
||||
sub("=[^ ]*", "=initramfs-" kver ".img");
|
||||
}
|
||||
}
|
||||
{
|
||||
if (in_default) {
|
||||
print;
|
||||
}
|
||||
}' $EFI_DIR/xen.cfg >> $EFI_DIR/xen.cfg
|
||||
|
||||
# then change the default
|
||||
sed -e "s/default=.*/default=$KVER/" -i $EFI_DIR/xen.cfg
|
||||
|
||||
dracut -f "$EFI_DIR/initramfs-${KVER}.img" "$KVER"
|
||||
;;
|
||||
remove)
|
||||
# don't care about changing default= line - yum should prevent removing
|
||||
# currently running kernel
|
||||
awk -F = --assign "kver=${KVER}" '
|
||||
/^\[/ {
|
||||
# section header - previous section (if any) ended
|
||||
|
||||
in_current=0;
|
||||
}
|
||||
/^\[/ {
|
||||
if ($0 == "[" kver "]")
|
||||
in_current=1;
|
||||
}
|
||||
{
|
||||
if (!in_current) {
|
||||
print;
|
||||
}
|
||||
}' $EFI_DIR/xen.cfg > $EFI_DIR/xen.cfg.new
|
||||
mv $EFI_DIR/xen.cfg.new $EFI_DIR/xen.cfg
|
||||
rm -f "$EFI_DIR/initramfs-${KVER}.img"
|
||||
;;
|
||||
esac
|
Loading…
Reference in new issue