diff options
Diffstat (limited to 'sys-boot/refind-bin')
-rwxr-xr-x | sys-boot/refind-bin/files/refind-install | 80 | ||||
-rw-r--r-- | sys-boot/refind-bin/files/refind-mkconfig | 177 | ||||
-rw-r--r-- | sys-boot/refind-bin/files/refind.d-gentoo | 120 | ||||
-rw-r--r-- | sys-boot/refind-bin/files/refind.default | 180 |
4 files changed, 0 insertions, 557 deletions
diff --git a/sys-boot/refind-bin/files/refind-install b/sys-boot/refind-bin/files/refind-install deleted file mode 100755 index 35b1a01..0000000 --- a/sys-boot/refind-bin/files/refind-install +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash -# -# script to install rEFInd -# -# Usage: -# -# refind-install -# -# This program is copyright (c) 2012 by David P. Crandall -# It is released under the terms of the GNU GPL, version 3. -# It is based on the work of Roderick W. Smith from the -# install.sh script in the rEFInd package. -# -# Revision history: -# -# 0.4.5 -- Initial version -# -# Note: version numbers match those of the rEFInd package -# with which this script first appeared. - -InstallIt="0" - -CpuType=$(uname -m) -if [[ $CpuType == 'x86_64' ]] ; then - Refind="refind_x64.efi" -elif [[ $CpuType == 'i386' || $CpuType == 'i486' || $CpuType == 'i586' || $CpuType == 'i686' ]] ; then - Refind="refind_ia32.efi" - ewarn "CAUTION: This Linux installation uses a 32-bit kernel. 32-bit EFI-based" - ewarn "computers are VERY RARE. If you've installed a 32-bit version of Linux" - ewarn "on a 64-bit computer, you should manually install the 64-bit version of" - ewarn "rEFInd. Installation will now proceed presuming a 32-bit EFI." -else - echo - echo "Unknown CPU type '$CpuType'; aborting!" - echo - exit -fi - -Efibootmgr=$(which efibootmgr 2> /dev/null) -if [[ $Efibootmgr ]] ; then - modprobe efivars &> /dev/null - EspLine=$(df /boot/efi | grep boot) - InstallPart=$(echo $EspLine | cut -d " " -f 6) - InstallDisk=$(grep $InstallPart /etc/mtab | cut -d " " -f 1 | cut -c 1-8) - PartNum=$(grep $InstallPart /etc/mtab | cut -d " " -f 1 | cut -c 9-10) - TargetDir="/EFI/refind" - EntryFilename=$TargetDir/$Refind - EfiEntryFilename=$(echo ${EntryFilename//\//\\\}) - EfiEntryFilename2=$(echo ${EfiEntryFilename} | sed s/\\\\\\\\/\\\\\\\\\\\\\\\\/g) - ExistingEntry=$($Efibootmgr -v | grep $EfiEntryFilename2) - if [[ $ExistingEntry ]] ; then - ExistingEntryBootNum=$(echo $ExistingEntry | cut -c 5-8) - FirstBoot=$($Efibootmgr | grep BootOrder | cut -c 12-15) - if [[ $ExistingEntryBootNum != $FirstBoot ]] ; then - echo "An existing rEFInd boot entry exists, but isn't set as the default boot" - echo "manager. The boot order is being adjusted to make rEFInd the default boot" - echo "manager. If this is NOT what you want, you should use efibootmgr to" - echo "manually adjust your EFI's boot order." - $Efibootmgr -b $ExistingEntryBootNum -B &> /dev/null - InstallIt="1" - fi - else - InstallIt="1" - fi - if [[ $InstallIt == "1" ]] ; then - echo "Installing rEFInd as default boot manager" - $Efibootmgr -c -l $EfiEntryFilename -L rEFInd -d $InstallDisk -p $PartNum &> /dev/null - if [[ $? != 0 ]] ; then - echo - echo "ALERT: There were problems running the efibootmgr program! You may need to" - echo "rename the rEFInd binary to the default name (EFI/boot/bootx64.efi" - echo "on x86-64 systems or EFI/boot/bootia32.efi on x86 systems) to have it run!" - echo - fi - fi -else - echo - echo "Could not locate the efibootmgr program." - echo -fi diff --git a/sys-boot/refind-bin/files/refind-mkconfig b/sys-boot/refind-bin/files/refind-mkconfig deleted file mode 100644 index 560503d..0000000 --- a/sys-boot/refind-bin/files/refind-mkconfig +++ /dev/null @@ -1,177 +0,0 @@ -#!/usr/bin/env python -# -# script to automate creation of rEFInd configuration files -# -# Usage: -# -# refind-mkconfig -# -# This program is copyright (c) 2012 by David P. Crandall -# It is released under the terms of the GNU GPL, version 3. -# -# Revision history: -# -# 0.4.5 -- Initial version -# -# Note: version numbers match those of the rEFInd package -# with which this script first appeared. - -import os, re -from collections import OrderedDict, deque -from string import Template - -class _Template(Template): - idpattern = '[0-9]+' - -class _Parser(object): - def __init__(self, files): - self.files = files - self.state = pattern - self.stanzas = OrderedDict() - self.header = None - self.menu = None - - def process(self, lines): - remaining = self.state.process(lines, self) - if remaining: - self.process(remaining) - - def getstanzas(self): - for file in self.files: - with open(file, 'r') as sf: - lines = deque(sf.readlines()) - self.process(lines) - return self.stanzas - -class _Pattern(object): - def __init__(self): - self.header = re.compile("^\[(.+)\]") - - def process(self, lines, parser): - line = lines.popleft() - match = self.header.match(line) - if match: - parser.header = match.group(1) - parser.stanzas[parser.header] = OrderedDict() if parser.header not in parser.stanzas - parser.state = transition - return lines - -class _Menustart(object): - def __init__(): - self.start = re.compile("^menuentry\s+(.+)\s+\{") - - def process(self, lines, parser): - line = lines.popleft() - match = self.start.match(line) - if match: - parser.menu = match.group(1) - parser.stanzas[parser.header][parser.menu] = [line] - parser.state = menu_end - return lines - -class _Menuend(object): - def __init__(): - self.end = re.compile("^\}") - - def process(self, lines, parser): - line = lines.popleft() - parser.stanzas[parser.header][parser.menu].append(line) - if self.end.match(line): - parser.state = transition - return lines - -class _Transition(object): - def process(self, lines, parser): - if pattern.header.match(lines[0]): - parser.state = pattern - elif menu_start.start.match(lines[0]) - parser.state = menu_start - else - discard = lines.popleft() - return lines - -class Mkconfig(object): - def __init__(self): - self.efi = self._findEFI() - self.conf = os.path.join(self.efi, "/EFI/refind/refind.test") - self.comment = re.compile('^\s*#') - self.stanzas = OrderedDict() - self.stanzaFiles = sum([[os.path.join(r, f) for f in fl] - for r, d, fl in os.walk("/etc/refind.d")], []) - - blockdir = re.compile('^' + self.efi + '/EFI/(refind|tools)') - stripdir = re.compile('^' + self.efi) - efiFiles = [[os.path.join(r, f) for f in fl] - for r, d, fl in os.walk(self.efi) if not blockdir.match(r)] - # flatten generated lists - efiFiles = sum(efiFiles, []) - # sort by modification date of files, newest first - efiFiles = sorted(efiFiles, reverse=True, key=lambda i: os.path.getmtime(i)) - # strip mount path - self.efiFiles = [stripdir.sub('', f) for f in efiFiles] - - def _findEFI(self): - if os.path.ismount("/boot/efi"): - mntpath = os.path.abspath("/boot/efi") - elif os.path.ismount("/boot"): - mntpath = os.path.abspath("/boot") - else - print "The EFI partition could not be found at /boot or /boot/efi. Exiting" - exit - with open("/proc/mounts") as mnts: - for line in mnts: - words = re.split('\s+', line) - if words[1] == mntpath: - if words[2] == "vfat": - return mntpath - print "EFI partition must be vfat, but the filesystem is " + words[3] + ". Exiting" - exit - - def _getstanzas(self): - p = - for file in self.stanzaFiles: - with open(file, 'r') as sf: - lines = sf.readlines() - - - def writeGlobalOptions(self): - with open(self.conf, 'w') as newconf: - newconf.write("# This file has been automatically generated by refind-mkconfig.\n") - newconf.write("# Manual edits will be overwritten the next time refind-mkconfig\n") - newconf.write("# is invoked. To change settings, edit /etc/default/refind and\n") - newconf.write("# the files located at /etc/refind.d.\n\n") - # Get global options - newconf.write("# Global options\n") - with open("/etc/default/refind") as default: - for line in default: - if NOT self.comment.match(line): - newconf.write(line + "\n") - - def writeStanzas(self): - # Get OS stanzas - with open(self.conf, 'a') as newconf: - newconf.write("\n# OS stanzas\n\n") - p = _Parser(self.stanzaFiles) - self.stanzas = p.getstanzas - for pk in self.stanzas: - pattern = re.compile(pk) - for file in self.efiFiles: - match = pattern.match(file) - if match: - values = {str(i): match.group(i) for i in range(pattern.groups)} - for mk in self.stanzas[pk]: - for line in self.stanzas[pk][mk]: - t = _Template(line) - newconf.write(t.substitute(values)) - newconf.write("\n") - -pattern = _Pattern() -menu_start = _Menustart() -menu_end = _Menuend() -transition = _Transition() - -if __name__ == '__main__': - cfg = Mkconfig() - cfg.writeGlobalOptions - cfg.writeStanzas - print "New refind.conf written to " + cfg.efi
\ No newline at end of file diff --git a/sys-boot/refind-bin/files/refind.d-gentoo b/sys-boot/refind-bin/files/refind.d-gentoo deleted file mode 100644 index 728c742..0000000 --- a/sys-boot/refind-bin/files/refind.d-gentoo +++ /dev/null @@ -1,120 +0,0 @@ -# -# script to install rEFInd -# -# Usage: -# -# refind-mkconfig -# -# This program is copyright (c) 2012 by David P. Crandall -# It is released under the terms of the GNU GPL, version 3. -# -# Revision history: -# -# 0.4.5 -- Initial version -# -# Note: version numbers match those of the rEFInd package -# with which this script first appeared. -# -# Sample manual configuration stanzas. Each begins with the "menuentry" -# keyword followed by a name that's to appear in the menu (use quotes -# if you want the name to contain a space) and an open curly brace -# ("{"). Each entry ends with a close curly brace ("}"). Common -# keywords within each stanza include: -# -# volume - identifies the filesystem from which subsequent files -# are loaded. You can specify the volume by label or by -# a number followed by a colon (as in "0:" for the first -# filesystem or "1:" for the second). -# loader - identifies the boot loader file -# initrd - Specifies an initial RAM disk file -# icon - specifies a custom boot loader icon -# ostype - OS type code to determine boot options available by -# pressing Insert. Valid values are "MacOS", "Linux", -# "Windows", and "XOM". Case-sensitive. -# graphics - set to "on" to enable graphics-mode boot (useful -# mainly for MacOS) or "off" for text-mode boot. -# Default is auto-detected from loader filename. -# options - sets options to be passed to the boot loader; use -# quotes if more than one option should be passed or -# if any options use characters that might be changed -# by rEFInd parsing procedures (=, /, #, or tab). -# disabled - use alone or set to "yes" to disable this entry. -# -# Note that you can use either DOS/Windows/EFI-style backslashes (\) -# or Unix-style forward slashes (/) as directory separators. Either -# way, all file references are on the ESP from which rEFInd was -# launched. -# Use of quotes around parameters causes them to be interpreted as -# one keyword, and for parsing of special characters (spaces, =, /, -# and #) to be disabled. This is useful mainly with the "options" -# keyword. Use of quotes around parameters that specify filenames is -# permissible, but you must then use backslashes instead of slashes, -# except when you must pass a forward slash to the loader, as when -# passing a root= option to a Linux kernel. - -# Below are several sample boot stanzas. All are disabled by default. -# Find one similar to what you need, copy it, remove the "disabled" line, -# and adjust the entries to suit your needs. - -# A sample entry for a Linux 3.3 kernel with its new EFI boot stub -# support on a filesystem called "KERNELS". This entry includes -# Linux-specific boot options and specification of an initial RAM disk. -# Note uses of Linux-style forward slashes, even in the initrd -# specification. Also note that a leading slash is optional in file -# specifications. - -[(.*)/vmlinuz-((.*)-gentoo)(\.old)?] -menuentry "Gentoo ${3}" { - icon EFI/refind/icons/os_gentoo.icns - ostype Linux - volume ESP - loader ${0} - initrd ${1}/initramfs-genkernel-x86_64-${2} - options "domdadm root=LABEL=gentoo" -} - -menuentry Linux { - icon EFI/refind/icons/os_linux.icns - volume KERNELS - loader bzImage-3.3.0-rc7 - initrd initrd-3.3.0.img - options "ro root=UUID=5f96cafa-e0a7-4057-b18f-fa709db5b837" - disabled -} - -# A sample entry for loading Ubuntu using its standard name for -# its GRUB 2 boot loader. Note uses of Linux-style forward slashes -[ubuntu/grubx64.efi] -menuentry Ubuntu { - loader /EFI/ubuntu/grubx64.efi - icon /EFI/refined/icons/os_linux.icns - disabled -} - -# A minimal ELILO entry, which probably offers nothing that -# auto-detection can't accomplish. -[elilo.efi] -menuentry "ELILO" { - loader \EFI\elilo\elilo.efi - disabled -} - -# Like the ELILO entry, this one offers nothing that auto-detection -# can't do; but you might use it if you want to disable auto-detection -# but still boot Windows.... -menuentry "Windows 7" { - loader \EFI\Microsoft\Boot\bootmgfw.efi - disabled -} - -# EFI shells are programs just like boot loaders, and can be -# launched in the same way. You can pass a shell the name of a -# script that it's to run on the "options" line. The script -# could initialize hardware and then launch an OS, or it could -# do something entirely different. -menuentry "Windows via shell script" { - icon \EFI\refind\icons\os_win.icns - loader \EFI\tools\shell.efi - options "fs0:\EFI\tools\launch_windows.nsh" - disabled -}
\ No newline at end of file diff --git a/sys-boot/refind-bin/files/refind.default b/sys-boot/refind-bin/files/refind.default deleted file mode 100644 index 2067dd3..0000000 --- a/sys-boot/refind-bin/files/refind.default +++ /dev/null @@ -1,180 +0,0 @@ -# -# refind.conf -# Configuration file for the rEFInd boot menu -# - -# Timeout in seconds for the main menu screen. Setting the timeout to 0 -# disables automatic booting (i.e., no timeout). -# -timeout 20 - -# Hide user interface elements for personal preference or to increase -# security: -# banner - the rEFInd title banner -# label - text label in the menu -# singleuser - remove the submenu options to boot Mac OS X in single-user -# or verbose modes; affects ONLY MacOS X -# hwtest - the submenu option to run Apple's hardware test -# arrows - scroll arrows on the OS selection tag line -# all - all of the above -# -#hideui singleuser -#hideui all - -# Set the name of a subdirectory in which icons are stored. Icons must -# have the same names they have in the standard directory. The directory -# name is specified relative to the main rEFInd binary's directory. If -# an icon can't be found in the specified directory, an attempt is made -# to load it from the default directory; thus, you can replace just some -# icons in your own directory and rely on the default for others. -# Default is "icons". -# -#icons_dir myicons - -# Use a custom title banner instead of the rEFInd icon and name. The file -# path is relative to the directory where refind.efi is located. The color -# in the top left corner of the image is used as the background color -# for the menu screens. Currently uncompressed BMP images with color -# depths of 24, 8, 4 or 1 bits are supported. -# -#banner hostname.bmp - -# Custom images for the selection background. There is a big one (144 x 144) -# for the OS icons, and a small one (64 x 64) for the function icons in the -# second row. If only a small image is given, that one is also used for -# the big icons by stretching it in the middle. If only a big one is given, -# the built-in default will be used for the small icons. -# -# Like the banner option above, these options take a filename of -# an uncompressed BMP image file. -# -#selection_big selection-big.bmp -#selection_small selection-small.bmp - -# Use text mode only. When enabled, this option forces rEFInd into text mode. -# -#textonly - -# Set the screen's video resolution. Pass this option two values, -# corresponding to the X and Y resolutions. Note that not all resolutions -# are supported. On UEFI systems, passing an incorrect value results in a -# message being shown on the screen to that effect, along with a list of -# supported modes. On EFI 1.x systems (e.g., Macintoshes), setting an -# incorrect mode silently fails. On both types of systems, setting an -# incorrect resolution results in the default resolution being used. -# A resolution of 1024x768 usually works, but higher values often don't. -# Default is "0 0" (use the system default resolution, usually 800x600). -# -#resolution 1024 768 - -# Launch specified OSes in graphics mode. By default, rEFInd switches -# to text mode and displays basic pre-launch information when launching -# all OSes except OS X. Using graphics mode can produce a more seamless -# transition, but displays no information, which can make matters -# difficult if you must debug a problem. Also, on at least one known -# computer, using graphics mode prevents a crash when using the Linux -# kernel's EFI stub loader. -# Valid options: -# osx - Mac OS X -# linux - A Linux kernel with EFI stub loader -# elilo - The ELILO boot loader -# grub - The GRUB (Legacy or 2) boot loader -# windows - Microsoft Windows -# Default value: osx -# -#use_graphics_for osx,linux - -# Which non-bootloader tools to show on the tools line, and in what -# order to display them: -# shell - the EFI shell -# gptsync - the (dangerous) gptsync.efi utility -# about - an "about this program" option -# exit - a tag to exit from rEFInd -# shutdown - shuts down the computer (a bug causes this to reboot EFI -# systems) -# reboot - a tag to reboot the computer -# Default is shell,about,shutdown,reboot -# -#showtools shell, about, reboot - -# Directories in which to search for EFI drivers. These drivers can -# provide filesystem support, give access to hard disks on plug-in -# controllers, etc. In most cases none are needed, but if you add -# EFI drivers and you want rEFInd to automatically load them, you -# should specify one or more paths here. rEFInd always scans the -# "drivers" subdirectory of its own installation directory; this -# option specifies ADDITIONAL directories to scan. -# Default is to scan no additional directories for EFI drivers -# -#scan_driver_dirs EFI/tools/drivers,drivers - -# Which types of boot loaders to search, and in what order to display them: -# internal - internal EFI disk-based boot loaders -# external - external EFI disk-based boot loaders -# optical - EFI optical discs (CD, DVD, etc.) -# hdbios - BIOS disk-based boot loaders -# biosexternal - BIOS external boot loaders (USB, eSATA, etc.) -# cd - BIOS optical-disc boot loaders -# manual - use stanzas later in this configuration file -# Default is internal,external,optical -# -#scanfor internal,external,optical - -# When scanning volumes for EFI boot loaders, rEFInd always looks for -# Mac OS X's and Microsoft Windows' boot loaders in their normal locations, -# and scans the root directory and every subdirectory of the /EFI directory -# for additional boot loaders, but it doesn't recurse into these directories. -# The also_scan_dirs token adds more directories to the scan list. -# Directories are specified relative to the volume's root directory. This -# option applies to ALL the volumes that rEFInd scans. If a specified -# directory doesn't exist, it's ignored (no error condition results). -# The default is to scan no additional directories. -# -#also_scan_dirs boot,EFI/linux/kernels - -# Directories that should NOT be scanned for boot loaders. By default, -# rEFInd doesn't scan its own directory or the EFI/tools directory. -# You can "blacklist" additional directories with this option, which -# takes a list of directory names as options. You might do this to -# keep EFI/boot/bootx64.efi out of the menu if that's a duplicate of -# another boot loader or to exclude a directory that holds drivers -# or non-bootloader utilities provided by a hardware manufacturer. If -# a directory is listed both here and in also_scan_dirs, dont_scan_dirs -# takes precedence. -# -#dont_scan_dirs EFI/boot,EFI/Dell - -# Scan for Linux kernels that lack a ".efi" filename extension. This is -# useful for better integration with Linux distributions that provide -# kernels with EFI stub loaders but that don't give those kernels filenames -# that end in ".efi", particularly if the kernels are stored on a -# filesystem that the EFI can read. When uncommented, this option causes -# all files in scanned directories with names that begin with "vmlinuz" -# or "bzImage" to be included as loaders, even if they lack ".efi" -# extensions. The drawback to this option is that it can pick up kernels -# that lack EFI stub loader support and other files. Most notably, if you -# want to give a kernel a custom icon by placing an icon with the kernel's -# filename but a ".icns" extension in the same directory as the kernel, this -# option will cause the icon file to show up as a non-functional loader tag. -# Default is to NOT scan for kernels without ".efi" extensions. -# -#scan_all_linux_kernels - -# Set the maximum number of tags that can be displayed on the screen at -# any time. If more loaders are discovered than this value, rEFInd shows -# a subset in a scrolling list. If this value is set too high for the -# screen to handle, it's reduced to the value that the screen can manage. -# If this value is set to 0 (the default), it's adjusted to the number -# that the screen can handle. -# -#max_tags 0 - -# Set the default menu selection. The available arguments match the -# keyboard accelerators available within rEFInd. You may select the -# default loader using: -# - A digit between 1 and 9, in which case the Nth loader in the menu -# will be the default. -# - Any substring that corresponds to a portion of the loader's title -# (usually the OS's name or boot loader's path). -# -#default_selection 1 |