]> code.delx.au - refind/blob - mkrlconf
Updated mkrlconf, refind-install, and addition of @/boot to standard
[refind] / mkrlconf
1 #!/bin/bash
2
3 # Script to create a refind_linux.conf file for the current Linux
4 # installation.
5
6 # copyright (c) 2012-2015 by Roderick W. Smith
7 #
8 # This program is licensed under the terms of the GNU GPL, version 3,
9 # a copy of which should be distributed with this program.
10
11 # Usage:
12 #
13 # ./mkrlconf [--force]
14 #
15 # Options:
16 #
17 # --force -- Overwrite an existing file (default is to not replace existing file)
18
19 # Revision history:
20 #
21 # 0.10.0 -- Renamed from mkrlconf.sh to mkrlconf; changed to get $DefaultOptions
22 # from /proc/cmdline rather than from GRUB
23 # 0.9.0 -- Added check for OS type, to keep from running pointlessly on OS X
24 # 0.7.7 -- Fixed bug that caused stray PARTUUID= and line breaks in generated file
25 # 0.5.1 -- Initial release
26 #
27 # Note: mkrlconf version numbers match those of the rEFInd package
28 # with which they first appeared.
29
30 RLConfFile="/boot/refind_linux.conf"
31
32 if [[ `uname -s` != "Linux" ]] ; then
33 echo "This script is intended to be run from Linux. Aborting!"
34 echo ""
35 exit 1
36 fi
37
38 if [[ ! -f $RLConfFile || $1 == "--force" ]] ; then
39 RootFS=`df / | grep dev | cut -f 1 -d " "`
40 StartOfDevname=`echo $RootFS | cut -b 1-7`
41 if [[ $StartOfDevname == "/dev/sd" || $StartOfDevName == "/dev/hd" ]] ; then
42 # Identify root filesystem by UUID rather than by device node, if possible
43 Uuid=`blkid -o export -s UUID $RootFS 2> /dev/null | grep UUID=`
44 if [[ -n $Uuid ]] ; then
45 RootFS=$Uuid
46 fi
47 fi
48 DefaultOptions=`cat /proc/cmdline | cut -d ' ' -f 2- | sed 's/$/ /' | sed 's/initrd=.* //g' | sed 's/ *$//'`
49 echo "\"Boot with standard options\" \"$DefaultOptions\"" > $RLConfFile
50 echo "\"Boot to single-user mode\" \"$DefaultOptions single\"" >> $RLConfFile
51 echo "\"Boot with minimal options\" \"ro root=$RootFS\"" >> $RLConfFile
52 else
53 echo "Existing $RLConfFile found! Not overwriting!"
54 echo "To force overwriting, pass the --force option."
55 echo ""
56 fi