以前UEFIについてpostした時はGRUBで説明しました.
しかし,そもそもが複数ブートローダーをインストールでき,しかもブートメニューそのものをもつUEFIにとって,GRUBのような旧来のマルチブートの巨大な仕組みは必要でしょうか.
それと,MacユーザーがrEFInt/rEFIndつかってるのかっこいい
ということでrEFIndをLinuxでもつかおう!
これ読んで♡ ArchWiki - rEFInd
これだけだとあまりなのでざっくり説明を以下にします
まずダウンロード SourceForge
または各種パッケージからインストールしてください.
ArchLinuxならpacman -S refind-efi
次に,ダウンロードしたものを解凍してそのフォルダに移動するか,
パッケージをインストールしたならそのまま,
/boot/efi/EFI/refind/*にrEFIndがインストールされます.
おっと,/dev/sda1をEFIシステムパーティションとしてFAT32にフォーマットするなどして,/boot/efiにマウントするのは忘れずに.
ここで,refind-installに失敗するなら,普通にコピーしたほうが確実かつてっとりばやいです.
ここのコピーコマンドのコピー元は各自自分の環境に合せましょう.
この記事中では/usr/share/refindにrefindが置いてあるものとします.
そしたらコピーした/boot/efi/EFI/refind/refind.confの編集です.
これはほぼArchLinuxでパッケージからインストールされたテンプレートそのままです.
ポイントは,resolutionの設定をresolution 0にして,ネイティブの最大のサイズにしたところとか. 別にこうしなくて1024 768とかでも良いですが,1366x768をフレームバッファで表示できるのにあえて1024x768でとかにすると妙に表示が崩れます.
それとscan_all_linux_kernelsをオンにしておきましょう.
また,menuentryのところは全てデフォルトのですが,scanに任せるからmenuentry要らないかとおもってコメントアウトしたらなぜかscanがLinux kernelみつけてくれなかったので,とりあえずデフォルトのままにしときましょう.
ブートオプションとかべつにここの設定は読まれないです.たぶん.
confのコメントが詳しいのでたぶん困ることはほぼないです.
そして,/boot/にあるLinuxカーネルと同じフォルダに,
このファイルにはカーネルコマンドラインを記述します.
EFI STUBカーネルな起動と同様なわけですが,実際Linuxカーネルは
CONFIG_EFI_STUBをオンにしておく必要アリ.
このコンフィグもコピー元のテンプレートを元に適当に書くだけでオッケー.
私の場合はこのようにしており,カーネル引数のオプション多いですが,普通はこんなに長いオプションにする必要はないです.
root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxx
rootfstype=<fstype>
rw
systemd.unit=graphical.target
この4つは最低限必要だとおもいます.
(PARTUUID以下のxxxx……はlsblkやblkidコマンドでPARTUUIDを調べ,書き換えてください. rootfstype=のところも<fstype>は実際自分がカーネルを置いてるディレクトリのあるディスクの,ファイルシステムを記述しましょう.)
一番下に書いたsystemd.unit=graphical.targetはSys Initでいうランレベル5のSystemD Init版です.
Sys Initを使用しているのならただ5とランレベルだけを書くだけでいけた気がしますね.
そして最後に仕上げです.
これで簡単に起動できますね.
(このコマンドの,Xを,ハードディスクのデバイス名(普通a.2つめのハードディスクとかにインストールしたければb)に置き換えて,また,Yをパーティション番号(普通1)に置き換える,としてからコマンドを打ってください)
以上であとはもうrEFIndから起動できるはず.
おまけ
おまけというより余談.EFIシステムパーティションの直下にshellx64.efiというUEFIなバイナリアプリケーションを置くと,UEFIシェルとしてrEFIndに表示されます.
また,rEFIndの優れた点を上げると,デフォルトでGUIチックでわかりやすいUIであること,また,BtrFS,ext2,ext4,Reiserfs4,HFSなどのファイルシステムのドライバをもっており自動でスキャンしてくれること等とても優れている.
ということでつかってみましょう!
しかし,そもそもが複数ブートローダーをインストールでき,しかもブートメニューそのものをもつUEFIにとって,GRUBのような旧来のマルチブートの巨大な仕組みは必要でしょうか.
それと,MacユーザーがrEFInt/rEFIndつかってるのかっこいい
ということでrEFIndをLinuxでもつかおう!
これ読んで♡ ArchWiki - rEFInd
これだけだとあまりなのでざっくり説明を以下にします
まずダウンロード SourceForge
または各種パッケージからインストールしてください.
ArchLinuxならpacman -S refind-efi
次に,ダウンロードしたものを解凍してそのフォルダに移動するか,
パッケージをインストールしたならそのまま,
# refind-installとしてください .
/boot/efi/EFI/refind/*にrEFIndがインストールされます.
おっと,/dev/sda1をEFIシステムパーティションとしてFAT32にフォーマットするなどして,/boot/efiにマウントするのは忘れずに.
ここで,refind-installに失敗するなら,普通にコピーしたほうが確実かつてっとりばやいです.
# mkdir -p /boot/efi/EFI/refindこれだけです. わざわざrefind-installのオプション調べるならこうしてしまったほうがラクかもしれません.
# cp /usr/share/refind/refind_x64.efi /boot/efi/EFI/refind/refind_x64.efi
# cp /usr/share/refind/refind.conf-sample /boot/efi/EFI/refind/refind.conf
# cp -r /usr/share/refind/{icons,fonts,drivers_x64} /boot/efi/EFI/refind/
ここのコピーコマンドのコピー元は各自自分の環境に合せましょう.
この記事中では/usr/share/refindにrefindが置いてあるものとします.
そしたらコピーした/boot/efi/EFI/refind/refind.confの編集です.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# 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 | |
# Screen saver timeout; the screen blanks after the specified number of | |
# seconds with no keyboard input. The screen returns after most keypresses | |
# (unfortunately, not including modifier keys such as Shift, Control, Alt, | |
# or Option). Setting a value of "-1" causes rEFInd to start up with its | |
# screen saver active. The default is 0, which disables the screen saver. | |
#screensaver 300 | |
# Hide user interface elements for personal preference or to increase | |
# security: | |
# banner - the rEFInd title banner (built-in or loaded via "banner") | |
# label - boot option 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 | |
# safemode - remove the submenu option to boot Mac OS X in "safe mode" | |
# hwtest - the submenu option to run Apple's hardware test | |
# arrows - scroll arrows on the OS selection tag line | |
# hints - brief command summary in the menu | |
# editor - the options editor (+, F2, or Insert on boot options menu) | |
# all - all of the above | |
# Default is none of these (all elements active) | |
# | |
#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, as well as PNG images. | |
# | |
#banner hostname.bmp | |
#banner mybanner.png | |
# Specify how to handle banners that aren't exactly the same as the screen | |
# size: | |
# noscale - Crop if too big, show with border if too small | |
# fillscreen - Fill the screen | |
# Default is noscale | |
# | |
#banner_scale fillscreen | |
# Icon sizes. All icons are square, so just one value is specified. The | |
# big icons are used for OS selectors in the first row and the small | |
# icons are used for tools on the second row. Drive-type badges are 1/4 | |
# the size of the big icons. Legal values are 32 and above. If the icon | |
# files do not hold icons of the proper size, the icons are scaled to | |
# the specified size. The default values are 48 and 128 for small and | |
# big icons, respectively. | |
# | |
#small_icon_size 96 | |
#big_icon_size 256 | |
# 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 with a color depth of 24, 8, 4, or 1 bits, | |
# or a PNG image. The PNG format is required if you need transparency | |
# support (to let you "see through" to a full-screen banner). | |
# | |
#selection_big selection-big.bmp | |
#selection_small selection-small.bmp | |
# Set the font to be used for all textual displays in graphics mode. | |
# The font must be a PNG file with alpha channel transparency. It must | |
# contain ASCII characters 32-126 (space through tilde), inclusive, plus | |
# a glyph to be displayed in place of characters outside of this range, | |
# for a total of 96 glyphs. Only monospaced fonts are supported. Fonts | |
# may be of any size, although large fonts can produce display | |
# irregularities. | |
# The default is rEFInd's built-in font, Luxi Mono Regular 12 point. | |
# | |
#font myfont.png | |
# Use text mode only. When enabled, this option forces rEFInd into text mode. | |
# Passing this option a "0" value causes graphics mode to be used. Pasing | |
# it no value or any non-0 value causes text mode to be used. | |
# Default is to use graphics mode. | |
# | |
#textonly | |
# Set the EFI text mode to be used for textual displays. This option | |
# takes a single digit that refers to a mode number. Mode 0 is normally | |
# 80x25, 1 is sometimes 80x50, and higher numbers are system-specific | |
# modes. Mode 1024 is a special code that tells rEFInd to not set the | |
# text mode; it uses whatever was in use when the program was launched. | |
# If you specify an invalid mode, rEFInd pauses during boot to inform | |
# you of valid modes. | |
# CAUTION: On VirtualBox, and perhaps on some real computers, specifying | |
# a text mode and uncommenting the "textonly" option while NOT specifying | |
# a resolution can result in an unusable display in the booted OS. | |
# Default is 1024 (no change) | |
# | |
#textmode 2 | |
# Set the screen's video resolution. Pass this option either: | |
# * two values, corresponding to the X and Y resolutions | |
# * one value, corresponding to a GOP (UEFI) video mode | |
# 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 | |
resolution 0 | |
# 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. You can specify an empty list to boot all | |
# OSes in text mode. | |
# 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 (requires external program; see rEFInd | |
# documentation for details) | |
# memtest - the memtest86 program, in EFI/tools, EFI/memtest86, | |
# EFI/memtest, EFI/tools/memtest86, or EFI/tools/memtest | |
# gptsync - the (dangerous) gptsync.efi utility (requires external | |
# program; see rEFInd documentation for details) | |
# gdisk - the gdisk partitioning program | |
# apple_recovery - boots the Apple Recovery HD partition, if present | |
# windows_recovery - boots an OEM Windows recovery tool, if present | |
# (see also the windows_recovery_files option) | |
# mok_tool - makes available the Machine Owner Key (MOK) maintenance | |
# tool, MokManager.efi, used on Secure Boot systems | |
# about - an "about this program" option | |
# exit - a tag to exit from rEFInd | |
# shutdown - shuts down the computer (a bug causes this to reboot | |
# many UEFI systems) | |
# reboot - a tag to reboot the computer | |
# firmware - a tag to reboot the computer into the firmware's | |
# user interface (ignored on older computers) | |
# Default is shell,memtest,gdisk,apple_recovery,windows_recovery,mok_tool,about,shutdown,reboot,firmware | |
# | |
#showtools shell, gdisk, memtest, mok_tool, about, reboot, exit, firmware | |
# Boot loaders that can launch a Windows restore or emergency system. | |
# These tend to be OEM-specific. | |
# Default is LRS_ESP:/EFI/Microsoft/Boot/LrsBootmgr.efi | |
# | |
#windows_recovery_files LRS_ESP:/EFI/Microsoft/Boot/LrsBootmgr.efi | |
# 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" and "drivers_{arch}" subdirectories of its own installation | |
# directory (where "{arch}" is your architecture code); 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 | |
# Note that the legacy BIOS options require firmware support, which is | |
# not present on all computers. | |
# On UEFI PCs, default is internal,external,optical,manual | |
# On Macs, default is internal,hdbios,external,biosexternal,optical,cd,manual | |
# | |
#scanfor internal,external,optical,manual | |
# Delay for the specified number of seconds before scanning disks. | |
# This can help some users who find that some of their disks | |
# (usually external or optical discs) aren't detected initially, | |
# but are detected after pressing Esc. | |
# The default is 0. | |
# | |
#scan_delay 5 | |
# 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 UNLESS you include | |
# a volume name and colon before the directory name, as in "myvol:/somedir" | |
# to scan the somedir directory only on the filesystem named myvol. If a | |
# specified directory doesn't exist, it's ignored (no error condition | |
# results). The default is to scan the "boot" directory in addition to | |
# various hard-coded directories. | |
# | |
#also_scan_dirs boot,ESP2:EFI/linux/kernels | |
# Partitions to omit from scans. You must specify a volume by its | |
# label, which you can obtain in an EFI shell by typing "vol", from | |
# Linux by typing "blkid /dev/{devicename}", or by examining the | |
# disk's label in various OSes' file browsers. | |
# The default is "Recovery HD,LRS_ESP". | |
# | |
#dont_scan_volumes "Recovery HD" | |
# Directories that should NOT be scanned for boot loaders. By default, | |
# rEFInd doesn't scan its own directory, the EFI/tools directory, the | |
# EFI/memtest directory, or the EFI/memtest86 directory. Using the | |
# dont_scan_dirs option enables you to "blacklist" other directories; | |
# but note that using this option removes the EFI/memtest and | |
# EFI/memtest86 directories, so if you don't want them scanned, be | |
# sure to include them in your new list. You might use this token 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. Note that this blacklist applies to ALL the | |
# filesystems that rEFInd scans, not just the ESP, unless you precede | |
# the directory name by a filesystem name, as in "myvol:EFI/somedir" | |
# to exclude EFI/somedir from the scan on the myvol volume but not on | |
# other volumes. | |
# | |
#dont_scan_dirs ESP:/EFI/boot,EFI/Dell,EFI/memtest86 | |
# Files that should NOT be included as EFI boot loaders (on the | |
# first line of the display). If you're using a boot loader that | |
# relies on support programs or drivers that are installed alongside | |
# the main binary or if you want to "blacklist" certain loaders by | |
# name rather than location, use this option. Note that this will | |
# NOT prevent certain binaries from showing up in the second-row | |
# set of tools. Most notably, various Secure Boot and recovery | |
# tools are present in this list, but may appear as second-row | |
# items. | |
# The file may be specified as a bare name (e.g., "notme.efi"), as | |
# a complete filename (e.g., "/EFI/somedir/notme.efi"), or as a | |
# complete filename with volume (e.g., "SOMEDISK:/EFI/somedir/notme.efi"). | |
# The default is shim.efi,shim-fedora.efi,shimx64.efi,PreLoader.efi, | |
# TextMode.efi,ebounce.efi,GraphicsConsole.efi,MokManager.efi,HashTool.efi, | |
# HashTool-signed.efi,bootmgr.efi | |
# | |
#dont_scan_files shim.efi,MokManager.efi | |
# 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. Passing this option | |
# a "0" value causes kernels without ".efi" extensions to NOT be scanned; | |
# passing it alone or with any other value causes all kernels to be scanned. | |
# 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). | |
# You may also specify multiple selectors by separating them with commas | |
# and enclosing the list in quotes. | |
# If you follow the selector(s) with two times, in 24-hour format, the | |
# default will apply only between those times. The times are in the | |
# motherboard's time standard, whether that's UTC or local time, so if | |
# you use UTC, you'll need to adjust this from local time manually. | |
# Times may span midnight as in "23:30 00:30", which applies to 11:30 PM | |
# to 12:30 AM. You may specify multiple default_selection lines, in which | |
# case the last one to match takes precedence. Thus, you can set a main | |
# option without a time followed by one or more that include times to | |
# set different defaults for different times of day. | |
# | |
#default_selection 1 | |
#default_selection Microsoft | |
#default_selection "bzImage,vmlinuz" | |
#default_selection Maintenance 23:30 2:00 | |
#default_selection "Maintenance,OS X" 1:00 2:30 | |
default_selection "vmlinuz-linux" | |
# Include a secondary configuration file within this one. This secondary | |
# file is loaded as if its options appeared at the point of the "include" | |
# token itself, so if you want to override a setting in the main file, | |
# the secondary file must be referenced AFTER the setting you want to | |
# override. Note that the secondary file may NOT load a tertiary file. | |
# | |
#include manual.conf | |
# 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. | |
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=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" | |
disabled | |
} | |
# A sample entry for loading Ubuntu using its standard name for | |
# its GRUB 2 boot loader. Note uses of Linux-style forward slashes | |
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. | |
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 | |
} | |
# Mac OS is normally detected and run automatically; however, | |
# if you want to do something unusual, a manual boot stanza may | |
# be the way to do it. This one does nothing very unusual, but | |
# it may serve as a starting point. Note that you'll almost | |
# certainly need to change the "volume" line for this example | |
# to work. | |
menuentry "My Mac OS X" { | |
icon \EFI\refind\icons\os_mac.icns | |
volume "OS X boot" | |
loader \System\Library\CoreServices\boot.efi | |
disabled | |
} |
これはほぼArchLinuxでパッケージからインストールされたテンプレートそのままです.
ポイントは,resolutionの設定をresolution 0にして,ネイティブの最大のサイズにしたところとか. 別にこうしなくて1024 768とかでも良いですが,1366x768をフレームバッファで表示できるのにあえて1024x768でとかにすると妙に表示が崩れます.
それとscan_all_linux_kernelsをオンにしておきましょう.
また,menuentryのところは全てデフォルトのですが,scanに任せるからmenuentry要らないかとおもってコメントアウトしたらなぜかscanがLinux kernelみつけてくれなかったので,とりあえずデフォルトのままにしときましょう.
ブートオプションとかべつにここの設定は読まれないです.たぶん.
confのコメントが詳しいのでたぶん困ることはほぼないです.
そして,/boot/にあるLinuxカーネルと同じフォルダに,
# cp /usr/share/refind/refind_linux.conf-sample /boot/refind_linux.confとしてブートオプションのためのコンフィグファイルを置きます.
このファイルにはカーネルコマンドラインを記述します.
EFI STUBカーネルな起動と同様なわけですが,実際Linuxカーネルは
CONFIG_EFI_STUBをオンにしておく必要アリ.
このコンフィグもコピー元のテンプレートを元に適当に書くだけでオッケー.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## This file should be present in the same directory as the EFISTUB kernel and initramfs files | |
## More info at http://www.rodsbooks.com/refind/linux.html , http://www.rodsbooks.com/efi-bootloaders/efistub.html | |
"Boot with defaults" "root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rootfstype=btrfs rw quiet splash systemd.unit=graphical.target radeon.modeset=1 radeon.audio=1 radeon.dpm=1 acpi_backlight=vendor console=tty0" | |
"Boot with nosplash" "root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rootfstype=btrfs rw quiet systemd.unit=graphical.target radeon.modeset=1 radeon.audio=1 radeon.dpm=1 acpi_backlight=vendor console=tty0" | |
"Boot with message" "root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rootfstype=btrfs rw systemd.unit=graphical.target radeon.modeset=1 radeon.audio=1 radeon.dpm=1 acpi_backlight=vendor console=tty0" | |
"Boot to terminal" "root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rootfstype=btrfs rw systemd.unit=multi-user.target radeon.modeset=1 radeon.audio=1 radeon.dpm=1 acpi_backlight=vendor console=tty0" |
私の場合はこのようにしており,カーネル引数のオプション多いですが,普通はこんなに長いオプションにする必要はないです.
root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxx
rootfstype=<fstype>
rw
systemd.unit=graphical.target
この4つは最低限必要だとおもいます.
(PARTUUID以下のxxxx……はlsblkやblkidコマンドでPARTUUIDを調べ,書き換えてください. rootfstype=のところも<fstype>は実際自分がカーネルを置いてるディレクトリのあるディスクの,ファイルシステムを記述しましょう.)
一番下に書いたsystemd.unit=graphical.targetはSys Initでいうランレベル5のSystemD Init版です.
Sys Initを使用しているのならただ5とランレベルだけを書くだけでいけた気がしますね.
そして最後に仕上げです.
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/refind/refind_x64.efi -L "rEFInd"efibootmgrコマンドでUEFIのメニューエントリにrEFIndを追加しておきましょう.
これで簡単に起動できますね.
(このコマンドの,Xを,ハードディスクのデバイス名(普通a.2つめのハードディスクとかにインストールしたければb)に置き換えて,また,Yをパーティション番号(普通1)に置き換える,としてからコマンドを打ってください)
以上であとはもうrEFIndから起動できるはず.
おまけ
おまけというより余談.EFIシステムパーティションの直下にshellx64.efiというUEFIなバイナリアプリケーションを置くと,UEFIシェルとしてrEFIndに表示されます.
また,rEFIndの優れた点を上げると,デフォルトでGUIチックでわかりやすいUIであること,また,BtrFS,ext2,ext4,Reiserfs4,HFSなどのファイルシステムのドライバをもっており自動でスキャンしてくれること等とても優れている.
ということでつかってみましょう!