Grub2知识点整理(略)

2020-02-11  本文已影响0人  手打小黑板

GRUB2命令

Set 设置环境变量 set root='hd0,msdos1'

menuentry "title" [--class=class …] [--users=users] [--unrestricted] [--hotkey=key] [--id=id] [arg …] { command; … }

定义一个名为"title"的菜单项。当此菜单项被选中时,GRUB将会把环境变量"chosen"的值设为"id"(使用了[--id=id]选项)或"title"(未使用[--id=id]选项),然后执行花括号中的命令列表,如果列表中最后一个命令执行成功,并且已经载入了一个内核,那么将执行"boot"命令。

可以使用 --class 选项指定菜单项所属的"样式类"。从而可以使用指定的主题样式显示菜单项。

可以使用 --users 选项指定只允许特定的用户访问此菜单项。如果没有使用此选项,则表示允许所有用户访问。

可以使用 --unrestricted 选项指明允许所有用户访问此菜单项。

可以使用 --hotkey 选项设置访问此菜单项的热键(快捷键)。"key"可以是一个单独的字母,或者'backspace','tab','delete'之一。

可以使用 --id 选项为此菜单项设置一个全局唯一的标识符。"id"必须由ASCII字母/数字/下划线组成,且不得以数字开头。

[arg …]是可选的参数列表。你可以把它们理解为命令行参数。实际上"title"也是命令行参数,只不过这个参数是个必须参数而已。这些参数都可以在花括号内的命令列表中使用,"title"对应着"$1",其余的以此类推。

insmod module

载入名为"module"的GRUB2模块。

chainloader [--force] file

链式加载"file"文件。通常使用磁盘块表示法,例如用'+1'表示当前根分区的第一个扇区。

linux16 file …

以传统的16位启动协议从"file"载入一个Linux内核映像,并将其余的字符作为内核的命令行参数逐字传入。这通常用于启动一些遵守Linux启动协议的特殊工具(例如MEMDISK)。

[注意]使用传统的16位启动协议意味着:(1)'vga='启动选项依然有效,(2)不能启动纯64位内核(也就是内核必须要'CONFIG_IA32_EMULATION=y'才行)。

initrd16 file

为以16位协议启动的Linux内核载入一个"initial ramdisk",并在内存里的Linux设置区域设置合适的参数。

[注意]这个命令必须放在"linux16"命令之后使用。

loopback [-d] device file

将"file"文件映射为"device"回环设备。例如:

loopback loop0 /path/to/image
ls (loop0)/

可以使用 -d 选项,删除先前使用这个命令创建的设备。

default

默认选中第几个菜单项(从'0'开始计数)

GRUB2环境变量

default

默认选中第几个菜单项(从'0'开始计数)

gfxpayload

设置Linux内核启动时的视频模式,可以指定一组由逗号或分号分隔的模式以供逐一尝试:每个模式的格式必须是:'text'(普通文本模式,不能用于UEFI平台),'keep'(继承"gfxmode"的值),'auto'(自动检测),'宽x高','宽x高x色深'之一,并且只能使用VBE标准指定的模式[640x480,800x600,1024x768,1280x1024]x[16,24,32]。在BIOS平台上的默认值是'text',在UEFI平台上的默认值是'auto'。除非你想明确设置Linux控制台的分辨率(要求内核必须"CONFIG_FRAMEBUFFER_CONSOLE=y"),或者打算在BIOS平台上使用图形控制台(要求内核必须"CONFIG_FRAMEBUFFER_CONSOLE=y"),否则不要设置此变量

root

设置"根设备"。任何未指定设备名的文件都视为位于此设备。初始值由GRUB在启动时根据"prefix"变量的值自动设置。在大多数情况下,你都需要修改它。

superusers

设置一组"超级用户"(使用空格/逗号/分号进行分隔),以开启安全认证的功能。

theme

设置菜单界面的主题风格文件的位置,例如:"/boot/grub/themes/starfield/theme.txt"。关于如何定制界面风格(背景图片/字体/颜色/图标等)的细节,可以参考GRUB2手册中的"<u>Theme file format</u>"部分。

timeout

在启动默认菜单项前,等待键盘输入的秒数。默认值是'5'秒。'0'表示直接启动默认菜单项(不显示菜单),'-1'表示永远等待。

pager

如果设为'1',那么每一满屏后暂停输出,等待键盘输入。缺省是'',表示不暂停。

Insmod模块

pxe.mod Driver to provide access to the pxe filesystem

pxecmd.mod Command to control the PXE device

cat.mod Show the contents of a file. 显示文件内容

cmp.mod Compare two files.

configfile.mod configure - Load another config file.

                                   source    - Load another config file without changing context.

                                   .         - Load another config file without changing context.

cpuid.mod Check for CPU features

crc.mod Calculate the crc32 checksum of a file.

echo.mod Display a line of text.

halt.mod halts the computer. This command does not work on all firmware.

suspend.mod Halt the system, if possible using APM

hello.mod Say hello

help.mod Show a help message.

hexdump.mod Dump the contents of a file or memory.

ls.mod List devices and files.

lspci.mod List PCI devices

normal.mod Grub2 的常规模式(于此对应的是安全模式,内置于 kernel 中)

pci.mod

play.mod 播放音频文件 (体验功能) Play a tune

read.mod Set variable with user input

reboot.mod Reboot the computer. 重启计算机

search.mod Search devices by file, filesystem label or filesystem UUID.

serial.mod

sleep.mod Wait for a specified number of seconds

terminal.mod Select a terminal.

terminfo.mod Set terminfo type.

test.mod test -

                                      [ - Evaluate an expression

ieee1275_suspend Return to Open Firmware prompt

分区管理


pc.mod pc 机上的分区类型(主分区、扩展分区)管理

sun.mod sun 机上的分区类型管理

gpt.mod Read GUID Partition Tables (GPT).

apple.mod 苹果机的分区管理

acorn.mod Linux/ADFS partition tables.

amiga.mod Amiga partition tables (RDB).

图形相关:


vga.mod 字符终端

gfxterm.mod 图形终端

                                   background_image - Load background image for active terminal.

font.mod Specify one or more font files to display.

vbe.mod pc 上图形核心库

vbeinfo.mod List compatible VESA BIOS extension video modes.

vbetest.mod Test VESA BIOS Extension 2.0+ support

video.mod

videotest.mod Test video subsystem

bitmap.mod 图片格式基类

jpeg.mod JPG 图片格式解码

tga.mod TGA 图片格式解码

png.mod PNG 图片格式解码

文件系统


affs.mod Amiga Fast FileSystem.

afs.mod The native AtheOS file-system.

cpio.mod cpio and tar filesystem.

ext2.mod Second Extended filesystem

fat.mod FAT filesystem

hfs.mod HFS

hfsplus.mod HFS+ Filesystem.

iso9660.mod iso9660 implementation with extensions: SUSP, Rock Ridge. (光盘文件系统)

jfs.mod JFS

minix.mod The minix filesystem, version 1 and 2.

ntfs.mod NTFS filesystem

ntfscomp.mod compression support for the NTFS filesystem

reiserfs.mod ReiserFS versions up to 3.6

sfs.mod Amiga Smart FileSystem.

udf.mod Universal Disk Format filesystem. (光盘文件系统)

ufs.mod Unix File System

xfs.mod XFS

fshelp.mod Filesystem helper functions (查找文件、读取文件操作)

磁盘访问


ata.mod ATA disk access.

fs_uuid.mod Access disks by their filesystem UUID.

host.mod Dummy disk driver to provide access to the hosts filesystem. (grub-emu 用以访问宿主文件系统)

loopback.mod Make a device of a file. (command to add loopback devices.)

biosdisk.mod BIOS 磁盘设备 (cdrom, hdd, cdrom 访问层)

lvm.mod module to read Logical Volumes. (加密卷)

memdisk.mod Access embedded memory disk

raid.mod module to read RAID arrays.

引导器


appleloader.mod Boot legacy system. (apple legacy boot loader.)

multiboot.mod multiboot - Load a Multiboot kernel.

                                   module    - Load a Multiboot module.

linux.mod linux - Load a linux kernel.

                                   initrd   - Load an initrd.

loadenv.mod load_env - Load variables from environment block file.

                                   save_env - Save variables to environment block file.

blocklist.mod Print a block list.

boot.mod Boot an operating system.

bsd.mod freebsd - load freebsd kernel

                                   openbsd - load openbsd kernel

                                   netbsd  - load netbsd kernel

                                   freebsd_loadenv

                                           - load freebsd env

                                   freebsd_module

                                           - load freebsd module

chain.mod load another boot loader

其他 (未知)


aout.mod

elf.mod

_bsd.mod

_chain.mod

_linux.mod

_multiboot.mod

IO hook


bufio.mod buffered io access

gzio.mod decompression support for gzip


GRUB2命名规则

设备与分区

GRUB2对设备与分区的命名规则举例如下,看看就能明白。需要说明的是磁盘从"0"开始计数,分区从"1"开始计数。

(fd0)          第一软盘
(hd0)          第一硬盘[大多数U盘与USB接口的移动硬盘以及SD卡也都被当作硬盘看待]
(hd1,1)        第二硬盘的第一分区(通用于MBR与GPT分区)
(hd0,msdos2)   第一硬盘的第二MBR分区,也就是传统的DOS分区表
(hd1,msdos5)   第二硬盘的第五MBR分区,也就是第一个逻辑分区
(hd0,gpt1)     第一硬盘的第一GPT分区
(cd)           启动光盘[仅在从光盘启动GRUB时可用]
(cd0)          第一光盘

上面所举的例子仅是最常用的情形,更多高级的设备命名规则请参考GRUB2手册中的"<u>Naming convention</u>"与"<u>How to specify devices</u>"部分。此外,如果你想看看当前系统上有哪些设备可用,可以在GRUB SHELL中使用"ls"命令(可能需要先加载必要的驱动模块)。

文件

文件的命名方法有两种:(1)绝对路径表示法,(2)相对路径表示法。举例如下:

(fd0)/grldr                 第一软盘根目录下的"grldr"文件[绝对路径]
(hd0,gpt1)/boot/vmlinuz     第一硬盘的第一GPT分区"boot"目录下的"vmlinuz"文件[绝对路径]
/boot/vmlinuz               根设备"boot"目录下的"vmlinuz"文件[相对路径],
                            当"root"环境变量等于"(hd0,gpt1)"时,等价于"(hd0,gpt1)/boot/vmlinuz"

上面所举的例子仅是最常用的情形,更多高级的文件命名规则请参考GRUB2手册中的"<u>How to specify files</u>"部分。

磁盘块

磁盘块的命名方法同样也有两种:(1)绝对路径表示法,(2)相对路径表示法。举例如下:

(hd1,1)0+1  在第二硬盘的第一分区上,从第"0"个磁盘块(首扇区)起,长度为"1"的连续块。[绝对路径]
(hd1,1)+1   含义与上一个相同,因为当从第"0"个磁盘块(首扇区)起时,"0"可以省略不写。[绝对路径]
+1          在根设备上,从第"0"个磁盘块(首扇区)起,长度为"1"的连续块。[相对路径]
            当"root"环境变量等于"(hd1,1)"时,等价于"(hd1,1)0+1"

磁盘块几乎只用于链式引导(chainloader)的场合。更多高级的磁盘块命名规则请参考GRUB2手册中的"<u>How to specify block lists</u>"部分。

这是我记录的一些常用的知识点,详细使用以及例子请到这里:

GRUB2配置文件"grub.cfg"详解(GRUB2实战手册) [金步国]

上一篇下一篇

猜你喜欢

热点阅读