To reduce duplicated code and simplified scripts introduce scylla_lib.sh for shellscripts which provides functions to classify distributions, and load all sysconfig files. This also fixes script bugs to misdetect Debian and RHEL. Signed-off-by: Takuya ASADA <syuu@scylladb.com> Message-Id: <1480667672-9453-2-git-send-email-syuu@scylladb.com>
61 lines
1.9 KiB
Bash
Executable File
61 lines
1.9 KiB
Bash
Executable File
#!/bin/bash -e
|
|
#
|
|
# Copyright (C) 2015 ScyllaDB
|
|
|
|
. /usr/lib/scylla/scylla_lib.sh
|
|
|
|
print_usage() {
|
|
echo "scylla_bootparam_setup --ami"
|
|
echo " --ami setup AMI instance"
|
|
exit 1
|
|
}
|
|
|
|
|
|
AMI_OPT=0
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
"--ami")
|
|
AMI_OPT=1
|
|
shift 1
|
|
;;
|
|
*)
|
|
print_usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ ! -e /etc/default/grub ] && [ ! -e /boot/grub/menu.lst ]; then
|
|
echo "Unsupported bootloader"
|
|
exit 1
|
|
fi
|
|
if [ -e /etc/default/grub ]; then
|
|
if [ "`grep hugepagesz /etc/default/grub`" != "" ] || [ "`grep hugepages /etc/default/grub`" != "" ]; then
|
|
sed -e "s#hugepagesz=2M ##" /etc/default/grub > /tmp/grub
|
|
mv /tmp/grub /etc/default/grub
|
|
sed -e "s#hugepages=[0-9]* ##" /etc/default/grub > /tmp/grub
|
|
mv /tmp/grub /etc/default/grub
|
|
fi
|
|
if [ $AMI_OPT -eq 1 ]; then
|
|
sed -e "s#^GRUB_CMDLINE_LINUX=\"#GRUB_CMDLINE_LINUX=\"clocksource=tsc tsc=reliable hugepagesz=2M hugepages=$NR_HUGEPAGES #" /etc/default/grub > /tmp/grub
|
|
else
|
|
sed -e "s#^GRUB_CMDLINE_LINUX=\"#GRUB_CMDLINE_LINUX=\"hugepagesz=2M hugepages=$NR_HUGEPAGES #" /etc/default/grub > /tmp/grub
|
|
fi
|
|
mv /tmp/grub /etc/default/grub
|
|
if is_debian_variant; then
|
|
update-grub
|
|
else
|
|
grub2-mkconfig -o /boot/grub2/grub.cfg
|
|
fi
|
|
fi
|
|
|
|
if is_ec2 && [ -e /boot/grub/menu.lst ]; then
|
|
if [ "`grep hugepagesz /boot/grub/menu.lst`" != "" ] || [ "`grep hugepages /boot/grub/menu.lst`" != "" ]; then
|
|
sed -e "s#hugepagesz=2M ##" /boot/grub/menu.lst > /tmp/menu.lst
|
|
mv /tmp/menu.lst /boot/grub/menu.lst
|
|
sed -e "s#hugepages=[0-9]* ##" /boot/grub/menu.lst > /tmp/menu.lst
|
|
mv /tmp/menu.lst /boot/grub/menu.lst
|
|
fi
|
|
sed -e "s#^kernel\\(.*\\)#kernel\\1 hugepagesz=2M hugepages=$NR_HUGEPAGES #" /boot/grub/menu.lst > /tmp/menu.lst
|
|
mv /tmp/menu.lst /boot/grub/menu.lst
|
|
fi
|