美文网首页
Grub2知识点整理(略)

Grub2知识点整理(略)

作者: 手打小黑板 | 来源:发表于2020-02-11 11:08 被阅读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实战手册) [金步国]

    相关文章

      网友评论

          本文标题:Grub2知识点整理(略)

          本文链接:https://www.haomeiwen.com/subject/mzgtfhtx.html