]> code.delx.au - refind/blobdiff - mkrlconf
Renamed support scripts: install.sh to refind-install, mvrefind.sh to
[refind] / mkrlconf
diff --git a/mkrlconf b/mkrlconf
new file mode 100755 (executable)
index 0000000..f6369c7
--- /dev/null
+++ b/mkrlconf
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# Script to create a refind_linux.conf file for the current Linux
+# installation.
+
+# copyright (c) 2012-2015 by Roderick W. Smith
+#
+# This program is licensed under the terms of the GNU GPL, version 3,
+# a copy of which should be distributed with this program.
+
+# Usage:
+#
+# ./mkrlconf [--force]
+#
+# Options:
+#
+#   --force  -- Overwrite an existing file (default is to not replace existing file)
+
+# Revision history:
+#
+#  0.9.3 -- Renamed from mkrlconf.sh to mkrlconf
+#  0.9.0 -- Added check for OS type, to keep from running pointlessly on OS X
+#  0.7.7 -- Fixed bug that caused stray PARTUUID= and line breaks in generated file
+#  0.5.1 -- Initial release
+#
+# Note: mkrlconf version numbers match those of the rEFInd package
+# with which they first appeared.
+
+RLConfFile="/boot/refind_linux.conf"
+
+if [[ `uname -s` != "Linux" ]] ; then
+   echo "This script is intended to be run from Linux. Aborting!"
+   echo ""
+   exit 1
+fi
+
+if [[ ! -f $RLConfFile || $1 == "--force" ]] ; then
+   if [[ -f /etc/default/grub ]] ; then
+      # We want the default options used by the distribution, stored here....
+      source /etc/default/grub
+   fi
+   RootFS=`df / | grep dev | cut -f 1 -d " "`
+   StartOfDevname=`echo $RootFS | cut -b 1-7`
+   if [[ $StartOfDevname == "/dev/sd" || $StartOfDevName == "/dev/hd" ]] ; then
+      # Identify root filesystem by UUID rather than by device node, if possible
+      Uuid=`blkid -o export -s UUID $RootFS 2> /dev/null | grep UUID=`
+      if [[ -n $Uuid ]] ; then
+         RootFS=$Uuid
+      fi
+   fi
+   DefaultOptions="$GRUB_CMDLINE_LINUX $GRUB_CMDLINE_LINUX_DEFAULT"
+   echo "\"Boot with standard options\"        \"ro root=$RootFS $DefaultOptions \"" > $RLConfFile
+   echo "\"Boot to single-user mode\"          \"ro root=$RootFS $DefaultOptions single\"" >> $RLConfFile
+   echo "\"Boot with minimal options\"         \"ro root=$RootFS\"" >> $RLConfFile
+else
+   echo "Existing $RLConfFile found! Not overwriting!"
+   echo "To force overwriting, pass the --force option."
+   echo ""
+fi