GRUB2命令和环境变量列表

操作系统45讲之Ubuntu 18.0.4使用GRUB配置并启动自己的简单操作系统雏形 其中的“sda1”就是硬盘的第一个分区(硬件分区选择 MBR),但是 GRUB 的 menuentry 中不能写 sda1,而是要写“hd0,msdos1”,这是 GRUB 的命名方式,hd0 表示第一块硬盘,结合起来就是第一块硬盘的第一个分区。发现多了不少文件,HelloOS.bin需要移动到/boot目录下。将上边写入到grub.cfg的内容写入到40_custom文件中。更新/boot/grub/grub.cfg文件。按下“ESC”可以正常退出到grub引导菜单。将下边的内容写到grub.cfg中。 阅读详情
AI摘要

本文档详细介绍了GRUB2中的环境变量及其用途,包括biosnum、chosen等,并列举了GRUB2中的各种命令,如serial、terminal_input等。此外还提供了使用示例,帮助读者更好地理解和掌握GRUB2的配置。

摘取自GRUB2中文手册

环境变量

biosnum

当链式加载时,GRUB 需要知道根设备的 BIOS 驱动器号。如果 BISONUM 变量正确设置,GRUB 就
不需要猜测驱动器号了。它会改变 BIOS 驱动器在链式加载系统中的映射关系。

chosen

当执行菜单项时,GRUB 自动设置 CHOSEN 变量为当前菜单项标题。如果当前在单项是某个菜单的子
菜单,那么 CHOSEN 会包含它的父菜单标题,各个父菜单之间使用 > 分割 。例如 :
“other>fedora>fedora_16” ,表示当前菜单标题是 fedora_16,它的 级菜单是 fedora,更 级菜单是
other。依此类推。

color_highlight

这个选项包含了终端的高亮显示的前景色和背景色的设定,她们之间使用斜线 / 分割。改变这个选项可
以改变默认的基本色彩。默认值是:”black/white”

color_normal

这个变量包含了普通显示时的前景和背景色。由斜线分割。默认是:”white/black”

色彩必须是以下之一:
black blue green cyan red magenta brown yellow white
light-gray drak-gray
light-blue light-green light-cyan light-red light-magenta

debug

开启这个变量可以从 GRUB 的各个组件会输出调试信息。变量的值是调试选项,它们之间使用空格或者
逗号分割。使用 all 表示开启所有调试选项。

default

变量值可以设置为某个菜单项的标题或者索引。如果设置了这个选项,那么它所指定的菜单项默认被选中。并且作为自动加载菜单项。

如果某个菜单项含有子菜单那么它必须使用 > 分割各个 级菜单:

Submenu 1
Menu Entry 1
Menu Entry 2
Submenu 2
Submenu 3
Menu Entry 3
Menu Entry 4
Menu Entry 5
如果你想选中 Menu Entry 3 那么应该使用:

set default=”Submenu 2>Submenu 3>Menu Entry 3 ”
这个变量通常使用 GRUB_DEFAULT 变量间接设置。

fallback

类似于 default ,这个选项用来指定一个菜单项。当 default 菜单项加载失败的时候,会加载 fallback 的
菜单项。值的格式同 default 选项。

gfxmode

它设置 gfxterm 图形终端的分辨率。你只能在你的显卡通过 VESA BIOS Extensions 支持图形终端的时
候才能使用它。例如:LCD 面板的分辨率可能不能使用这个变量控制。默认值是”auto”。

变量值可以通过逗号或者分号指定多个。GRUB 会依次尝试这些分辨率。分别率的格式应该是:

WIDTHxHIEGHT 或者 WIDTHxHEIGHTxDEPTH

gfxpayload

这个变量设置后控制 linux 内核启动后的显示方式。它用来替换 vga= 内核参数。可以设置为:”text” 强
制 linux 以文本模式启动, “keep” 使用 gfxmode 变量的设置。或者所有被 gfxmode 接受的值。

根据你的内核、发行版、显卡和一些不确定因素,使用这个选项可能导致 GNU/linux 发生显示问题。此
时应该设置为 “text” 。
这个选项的默认值因平台而异。在 PC BIOS默认值为 “text” ,其他情况可能是 “auto” 或者是某个有 效的图形模式。
这个选项通常使用 GRUB_GFXPAYLOAD_LINUX 变量设置。

gfxterm_font

设置 gfxterm 图形终端的默认字体。

icondir

这个选项设置 GRUB 搜索图标使用的路径。

lang

这个选项设置 gettext 命令使用的语言编码,它用来翻译字符串 。 通常法语应该设为 “fr” ,简体中文设
为 “zh_CN” 。

grub2-mkconfig 程序会根据当前 OS 的语言设置自动设置这个变量。

locale_dir

这个变量设置翻译文件所在路径 。通常是 /boot/grub2/locale 。如果没有设置此变量,那么国际化选项
是关闭的。

这个变量包含被选中的菜单项文本的前景色和背景色。使用 / 分割前景色和背景色,默认值等于
color_highlight 变量。

这个变量设置未选中菜单项的前景色和背景色。使用 / 分割前景和背景。默认值等于 color_normal 变量。

pager

如果设置为 1 那么每当输出充满屏幕时自动暂停,按下任意键后继续查看下一页。默认是不暂停。

prefix

设置 grub 模块和配置文件的路径。通常是 “$root/boot/grub2” 。它通常由 grub2-install 在安装 grub 时
就写在内嵌的配置文件内。grub2-mkrescue 创建的可引导光盘也已经自动设置 root 和 prefix,用户配
置文件内无需设置 prefix 的值。GRUB 模块会根据 prefix 加载,所以它必须正确设置。否则就会提示
error: file not found 。

root

设置 GRUB 根设备。任何路径中没有指定设备的,都会使用根设备作为默认分区。这个变量应该在
GRUB 启动时由配置文件决定。

例如,如果 GRUB 安装到第一块硬盘的第一个分区,那么 root 应该设为 (hd0,1) ;prefix 应该为
“$root/boot/grub”

superusers

这个变量设置一个超级用户列表。参考:权限管理 50

theme

这个变量为包含 GRUB 图形菜单主题的路径。

通常使用变量:GRUB_THEME 设置。

timeout

它指定自动加载倒计时时限,单位为秒。GRUB 成功加载菜单配置文件后就立刻开始倒计时,如果在这
段时间内没有任何键盘操作那么加载默认菜单项。如果 unset 这个变量或者设为 -1 那么不自动加载默认
菜单项。

这个变量通常使用 GRUB_TIMEOUT 或者 GRUB_HIDDEN_TIMEOUT 变量设置。

GRUB环境区块

这个功能用来在一次引导时记录下一些信息,下一次启动 GRUB 可以读取这些信息。假设你希望默认菜
单项为最后一次使用的那个。你就需要使用这个。由于空间限制,为了节省代码量同时也是为了防止文
件系统崩溃,GRUB 不能写入文件。因此 GRUB 不能创建或者修改自己的配置文件。因此 GRUB 提供
了环境区块的功能,它用来记录 GRUB 当前的状态,便于日后加载。

环境区块是一个 1024byte 的文件,它通常命名为 /boot/grub2/grubenv 。在 GRUB 中可以使用 load_
env 命令加载它,使用 save_env 写入当前 GRUB 环境变量到区块中。在 OS 中,可以使用 grub2-
editenv 程序编辑区块文件。

由于安全问题,这个功能只能应用在普通磁盘(非 LVM 和 RAID ),不使用文件系统校检 (非 ZFS
) ,使用 BIOS 或者 EFI( 非 ATA, USB 或者 IEEE1275 ) 的平台 。

GRUB_SAVEDEFAULT 变量就是使用环境区块完成自己的功能。

命令列表

这一章里我们列举所有 GRUB 中的命令。命令被分割到不同的組。有一些只能被永在配置文件和菜单的
全局区域。大部分命令可以出现在任意位置,既可以使用 GRUB 命令行执行,也可以通过配置文件运行。

在救援模式下只有 insmod 、ls、set 和 unset 命令可用。如果你不知道在救援模式下应该干些什么。参
考《GRUB 救援 shell 》

只用于菜单的命令

配置文件的语法遵守以下规则:

  • 文件必须是纯文本
  • #开始的行作为注释行
  • 选项之间使用空格隔开
  • 所有的数字都可以是十进制或者是 16 进制(前缀 0x 或者
    0X)。

语法:

menuentry TITLE [`--class=class' ...] [`--users=users'] [`--hotkey=key'] 
{ COMMAND; ... } 

以 TITLE 为名字建立菜单项。当进入这个菜单项后 GRUB 会设定 CHOSEN 变量的值为 TITE,然后
执行花括号内的命令 。最后一条命令成功执行后,如果 OS 内核已经被加载,那么自动执行 boot 命令。

--class 选项可以使用任意次,它把此菜单项归类到某个菜单类别里。菜单类别决定了菜单使用的样式盒。 

--users 选项,设置某个特殊的用户才能访问这个菜单。--users=user1 --users=user2 指定两个用户能访 
问此菜单。参考:权限管理 50 

--hotkey 选项,为菜单项设置一个快捷键,KEY 可以是 某个单个字母,或者是 "tab" "backspace" " 
delete " 之一。 

实例:

menuentry 'Windows XP' { 
insmod fat 
search -f /ntldr --set=root 
chainloader +1 
sendkey enter
} 

语法:

submenu TITLE [`--class=class' ...] [`--users=users'] [`--hotkey=key'] 
{ MENU ENTRIES ... } 

定义子菜单,添加一个名为 TITLE 的菜单项,但是这个菜单项包含下级菜单。当进入此菜单时,会显示
花括号内定义的菜单。

--class 选项可以使用任意次,它把此菜单项归类到某个菜单类别里。菜单类别决定了菜单使用的样式盒。 

--users 选项,设置某个特殊的用户才能访问这个菜单。参考:权限管理 50 

--hotkey 选项,为菜单项设置一个快捷键,KEY 可以是 某个单个字母,或者是 "tab" "backspace" " 
delete " 之一。 

实例:

menuentry 'Fedora' { 
    echo 'Fedora' 
} 
menuentry 'Redhat' { 
    echo 'Redhat' 
} 
menuentry 'BSD' { 
    echo 'Free BSD' 
} 
submenu 'Other OS' { 
    menuentry 'Windows 7' { 
    echo 'Windows 7' 
    } 
    menuentry 'Windows XP' { 
    echo 'Windows XP' 
    }
}

通用命令

这些命令可以出现在任意位置,既可以使用 GRUB 命令行执行,也可以通过配置文件运行。

serial

语法:

serial [`--unit=unit'] [`--port=port'] [`--speed=speed'] 
[`--word=word'] [`--parity=parity'] [`--stop=stop'] 

初始化串口设备。UNIT 是一个介于 0-3 的整数,它指定了串口端口。默认值为 0,它代表了 COM1 端
口。PORT 是搜索 UART1的 I/O 端口。 SPEED 是传输速率,默认为 9600 。WORD 和 STOP 是数据
的 bit 数和结束位 。数据 bit 数必须是 5 到 8,结束位必须是 1 或 2 。默认值是 8 数据位,1 结束位。
PARITY 可用值为:”no” “odd” “even” ,默认值为 “no”

如果不使用 terminal_out 和 terminal_input 指定 serial 为目标设备,串行端口并不用作信息传输。

terminal_input

语法:

terminal_input [`--append'|`--remove'] [terminal1] [terminal2] 
显示/设置输入终端。当不使用参数的时候显示当前激活的可用的输入终端。 
--append  添加指定终端到激活的输入终端列表中。列表中的任意终端都可以给 GRUB 提供输入。 
--remove ,从输入终端列表中删除指定终端。 

因为计算机内部采用并行数据,不能直接把数据发到 Modem,必须经过 UART 整理才能进行异步传输,
其过程为:CPU 先把准备写入串行设备的数据放到 UART 的寄存器(临时内存块)中,再通过
FIFO(First Input First Output,先入先出队列)
传送到串行设备,若是没有 FIFO,信息将变得杂乱无章, 不可能传送到 Modem。
如果没有使用 –append 和 –remove 但是提供了终端,那么只显示指定终端。

terminfo

terminfo [-a|-u|-v] [term] 

通过提供 terminfo 数据库中的项目名设置终端类型,它的值应该类似于 Unix 中 TERM 环境变量的值,

当前可用的终端类型: vt100、 vt100-color、 ieee1275、 dumb 。如果你需要其他的终端类型,请联
系我们,和我们讨论添加新的终端类型。

选项:-a’ (--ascii'),-u’ (--utf8'), and-v’ (`–visual-utf8’) ,控制非 ASCII 字符如何显示,-a 用于只
支持 ASCII 的终端,-u 指定 logically-ordered UTF-8 ,-v visually-ordered UTF-8 。(換句话说在不
支持双向文本的终端 会以合适顺序从左向右显示文本;这对 UTF-8 可能不是很合适,只是一个应急方案).

用于菜单或命令行的命令

这些命令可以用于菜单或命令行。如果你忘记了某个命令可以输入 help 得到帮助。

acpi

acpi [`-1'|`-2'] 
[`--exclude=table1,...'|`--load-only=table1,...'] 
[`--oemid=id'] [`--oemtable=table'] [`--oemtablerev=rev'] 
[`--oemtablecreator=creator'] [`--oemtablecreatorrev=rev'] 
[`--no-ebda'] filename ... 

现代 BIOS 系统通常都包含高级电源管理(ACPI),并且定义了大量表格用来描述 ACPI 兼容的 OS。
在这某些情况下,默认的 table 不适和你的 OS 。你需要使用这个命令去替换默认的表格。

通常这个命令会在 BIOS 的扩展数据段中修改 RSDP(root system description pointer)。使用了–no-
ebda 选项新的表只被 GRUB 知晓,这可以用于 GRUB 的 EFI 仿真。

badram

badram addr,mask[,addr,mask...] 

这个命令使用内存管理器筛选掉指定内存区域的错误内存(通常这意味着损坏)。它在 OS 内核正式启动
之前都有效。启动后的内核会从 GRUB 中得到内存映射。通常 Linux GnuMach FreeBSD 和其他多起
动 OS 都支持这个特性。

此命令的语法格式与 memtest86+ 工具相同。需要提供基地址和掩码。Given a page-aligned address
and a base address / mask pair, if all the bits of the page-aligned address that are enabled by the
mask match with the base address, it means this page is to be filtered.

blocklist

blocklist file 

显示 file 的区块列表。

boot

已经加载内核或者已经执行了 chainloader 命令后,执行 boot 会开始引导。通常 boot 会在菜单内的命令
结束后自动执行。

background_image

background_image IMAGE 

载入指定的图片作为背景. 使用这个命令需要载入 gfxterm 模块,并且输出终端要设置为 gfxterm

insmod png 
insmod jpeg 
insmod vbe 
insmod vga 
insmod gfxterm 
loadfont /boot/wqy.pf2 
#载入字体用来显示中文。参见   字体:17 
set gfxmode=1024x768 
terminal_output gfxterm 
#应该在执行 terminal 命令之前设置 gfxterm 相关的变量。 
menuentry "xfpm-general-settings.png"  { 
    background_image (cd)/boot/theme/xfpm-general-settings.png 
} 
menuentry "grub-splash.png"  { 
    background_image (cd)/boot/theme/grub-splash.png 
}

cat

cat [--dos] file 

显示 FILE 的内容。实例:

grub> cat /etc/fstab 

如果设置了–dos 选项那么按照 dos 格式,把 \r\n 解释为一个换行。否则\r 会被显示为一个特殊字符,\n 会被当作换行。

chainloader

chainloader [--force] file 

链式加载指定文件。通常 file 使用区块列表指定,例如:

chainloader  (hd0,msdos1)+1 

如果指定了–force 那么强行加载,而不去检查文件是否有正确的标记。这个通常用于加载其他有缺陷的
加载器,例如 SCO UnixWare 7.1。

cmp

cpm file1 file2 

比较文件 file1 和 file2 。如果二者大小不同那么显示:

Differ in size: 0x1234 [foo], 0x4321 [bar] 

如果二者大小相同但是某些字节不同,那么会显示那个字节的地址:

Differ at the offset 777: 0xbe [foo], 0xef [bar] 

如果两个文件完全相同那么不显示任何东西。

configfile

configfile file 

加载一个配置文件。如果 FILE 内包含了菜单定义,那么在加载完毕后立刻进入菜单显示模式。

cpuid

cpuid [-l] 

检查 CPU 特性,这个命令只用于 x86 cpu。当使用了 -l 选项 如果 CPU 支持 long 模式 (64bit),那么返
回 true。

如果没有包含-l 选项,此命令的行为类似与 -l 选项。会在随后的 GRUB 版本中升级它。

crc

crc FILE 

显示文件 FILE 的 CRC32 校检和。

date

date [[year-]month-day] [hour:minute[:second]] 

如果没有任何参数那么显示当前的日期和时间。

其他情况下会修改当前时间或者日期。但是只改动指定参数,其他的保持不变。例如:

date 01-01 

会改变月和日,但是年和 时分秒 都保持不变。

drivemap

drivemap `-l'|`-r'|[`-s'] from_drive to_drive 

没有使用任何选项那么映射 from_drive 到 to_drive 。某些 OS 不能从非第一块硬盘 引导,此时你需
要这个命令去把第二块硬盘映射成第一块。命令会忽略路径中的非设备的部分。因此你可以放心的使用

$root 或者 $prefix 

-s 选项,交换映射。把 from_drive 映射成 to_drive 同时把 to_drive 映射成 from_drive ,也就是两个 
设备调换。 

-l 选项,显示当前的映射。 

-r 选项,重置所有的映射到默认状态。 

实例:

drivemap -s (hd0) (hd1) 

他会调换第一块和第二块硬盘。

echo

echo [-n] [-e] string ... 

显示指定的文本,并且在行尾添加换行。如果使用了-n 不添加换行。如果有多个 word 传入那么各个字
符串之间使用空格分割(类似于 shell 中的命令参数分割)。当然双引号字符串可以使用变量扩展。

echo "root=$root" 

显示当前的根设备

-e 选项,解析字符串中的转义序列。 

`\\'   反斜线 
`\a'  警告音 
`\c'  静止添加换行 
`\f'   进纸符 
`\n'  换行符 
`\r'   回车符 
`\t'   横向制表符 
`\v'  竖直制表符 

export

export envvar 

导出变量 ENVVAR,被导出的变量会自动在 configfile 命令加载的子脚本中定义。

false

false 

这个命令不做任何事情,只是退出状态非 0 。 它可以在流程控制语句中使用。

gettext

gettext string 

翻译 string 到当前语言。

当前语言编码在 GRUB lang 环境变量。翻译文件从 locale_dir 指定的目录中搜索 MO 文件。

gptsync

gptsync device [partition[+/-[type]]] ... 

使用 GUID 分区表的磁盘也支持传统的 MBR 分区表称作 legacy MBR。legacy MBR 只是 GPT 的一个
子集。

这个命令在指定设备的指定分区 添加一个 legacy MBR。TYPE 是 MBR 分区的类型代码。可以是 10
进制也可以是 16 进制(前缀 0x)。在 PARTITION 和 TYPE 之间如果是+号代表此分区激活,- 代表此分
区非激活。只有一个分区可以处在激活状态。如果 + - 和 TYPE 都省略了,那么此分区设置为非激活。

halt

halt `--no-apm' 

这个命令关闭计算机,然后关闭电源。如果使用了 –no-apm 那么关闭计算机后不使用 BISO 的 APM
关闭电源。

help

help [pattern] 

显示关于匹配指定模式的命令名的详细帮助文件。如果省略 pattern 你会看到所有的命令简短的列表。

initrd

initrd FILE 

为已经加载的 linux 内核,加载 initrd,并且设置 linux 内核内存中的参数。这个选项必须在 linux 命令
之后使用。

initrd16

inttrd16 FILE 

在 16bit 模式下加载 initrd,这个命令必须在 linux16 命令后面使用。

insmod

insmod MODULE 

动态加载名为 MODULE 的 GRUB 模块。不要跟后缀:

insmod fat       #正确 
insmod fat.mod   #错误 

keystatus

keystatus  [--shift] [--ctrl]  [--alt] 

如果 Shift 或者 alt 或者 ctrl 按键处在按下状态,那么退出状态为 0,否则为 1。这个功能对在脚本中使用
特殊控制键很有用。

这个功能只在某些平台 支持。如果 keystatus 不使用任何选项,在支持 keystatus 的平台 退出状态为
0 否则为 1 。

linux

linux FILE .. ... 

以 32bit 模式加载 linux 内核 FILE。命令行中剩下的参数都会被作为内核参数传递给内核。注意,每次
使用 linux 命令后,都必须重新加载 initrd。

在 x86 系统 ,内核必须使用 32bit 引导协议。这意味着 vga= 选项无效。如果你希望设置显示模式,你
需要使用 set gfxpayload=1024x768 或者 set gfxpayload=”keep” 。通常 GRUB 发现 vga 命令行参数
时会自动设置 gfxpayload 。linux16 命令可以没有这个限制。

linux16

16bit 模式下加载 linux 内核。命令行中剩下的参数都会被作为内核参数传递给内核。注意,每次使用
linux16 命令后,都必须重新使用 initrd16 命令。

内核会使用传统的 16bit 引导协议。它不会导致 vga 内核参数无效。也可以用来加载其他的类 linux 内核
的镜像程序。

这个命令只用于 x86 平台。

list_env

list_env  [-f  FILE] 

显示环境区块文件中的变量。如果使用了 -f FILE ,那么显示指定区块文件中的变量。

load_env

load_env  [-f  FILE] 

从环境区块文件中载入变量,如果使用了 -f FILE ,那么载入指定区块文件中的变量。

loopback

loopback  [-d]  DEVICE  FILE 

把镜像文件 FILE 挂载到设备名 DEVICE 。以实现对镜像文件内容的访问。
实例:

loopback loop0  /WinPE.iso 
ls (loop0)/ 

这个命令也可以在 iso 文件中读取文件。

实例,硬盘安装 Fedora-16-i386-DVD.iso:
假设文件放置在 winxp 下 F 盘根目录,设备号为 (hd0,msdos7):

loopback fedora /Fedora-16-i386-DVD.iso 
set root='(fedora)' 
linux /isolinux/vmlinuz 
initrd /isolinux/initrd.img 
boot 

但是 loopback 和磁盘仿真暂时不是一个东西。所以你不能 chainloader (loop0)+1

若需要引导 img 或者 iso ,你需要使用 memdisk,参见 前言->准备 memdisk 1

ls

ls   [arg ...] 

类似与 linux ls 命令,显示设备或者文件。

无参数时显示所有 GRUB 已知的设备。
如果参数是一个设备名那么显示指定设备的属性,如果是个绝对目录那么显示目录内容:

loopback fd0 /Ghost82.img 
ls  (fd0) 
ls  (fd0)/ 

normal

normal  [FILE] 

进入 normal 模式,并且加载配置文件,然后显示 GRUB 菜单。

如果指定了配置文件 FILE 那么加载指定配置文件,否则加载 $prefix/grub.cfg 配置文件。

在 normal 模式,命令、文件系统模块 和加密模块都已经自动加载,并且拥有完整的语法解析器。其他
的模块可以在配置文件中使用 insmod 命令加载。

normal 命令可以嵌套执行。即在 normal 模式下依然可以调用 normal 。它类似于 configfile 命令。

normal_exit

normal_exit 

退出当前的 normal 模式。如果当前是最后一个 normal 模式,那么退回到命令行救援模式。

parttool

parttool PART  COMMANDS 

对分区表进行操作。

COMMAND 以如下格式出现

CMD=VALUE :设置某个属性值 或者 
    CMD+  CMD- :表示开启或关闭某个分区属性,+-和 CMD 之间不能有空格。 

目前 parttool 命令对使用 DOS 分区表,MBR 分区表的用户有用。 

boot :当开启它激活选中分区(被激活的分区是可引导的),并且取消所有其他分区的激活状态。只能够对主分区 这么做。 
    parttool (hd0,1) boot+ 
    parttool (hd0,1) boot- 

type :改变分区类型,分区类型由一个介于 0x00 ~ 0xFF 的数指定:type=0x80 
hidden 

当开启这个选项,设置指定分区在分区表中的隐藏位。当关闭这个选项开启隐藏位。这对于 DOS Windos 
系统和多个 Fat 格式的主分区同时存在的时候有意义。 

password

password USER clear-password 

定义一个用户 USER,并且用明文指定他的密码。

password father  hello 
password mother boy 

这个命令添加了两个用户,并且分别指定它的密码为 hello 和 boy。参考:权限管理 50

password_pbkdf2

password_pbkdf2  USER  hashed-PASSWORD 

定义一个用户 USER,并且用散列后的密文指定他的密码。调用 grub2-mkpasswd-pbkdf2 计算密文的
散列。参考:权限管理 50

play

play file | tempo [pitch1 duration1] [pitch2 duration2] ... 

tempo 是所有 duration 的单位,设置为 60 代表基于 1 秒,120 代表基于半秒。 pitch 代表声音的频率,
设置为 0 表示声音衰减。duration 代表声音持续的时间。

实例:

play 60  100 2 200 3 300 1 

以命令播放 100Hz 的声音持续 2 秒,200Hz 持续 3 秒 ,300Hz 持续 1 秒。

play 120  100 2 200 3 300 1 

以命令播放 100Hz 的声音持续 1 秒,200Hz 持续 1.5 秒 ,300Hz 持续 0.5 秒。
如果参数是一个文件名,那么播放指定文件内的音频数据。文件是二进制格式,第一个 32bit 被作为无符
号 32bit 小端序数字读取它作为 tempo 使用。然后随后每个 32bit 被当作两个 16bit 无符号小端序数字,
分别作为 pitch 和 duration 使用。

pxe_unload

pxe_unload 

卸载 PXE 环境,此命令只在 PC BIOS 平台有效。

read

read  [var] 

等待用户输入,按下 enter 后,输入的行不包括换行符被保存到名为 var 的变量中。

reboot

重启电脑。

save_env

save_env  [-f  file]  var ... 

把指定的变量保存到区块文件中,如果指定了 -f file 那么保存到 file 文件中(file 必须是环境区块文件)。

search [--file  FILE ]  [--label  LABEL]  [--fs-uuid  UUID ]  [--set  [var] ] [--no-floppy] 

--file FILE 选项,那么在所有设备里搜索文件 FILE 。 
--label LABEL 选项,搜索卷标为 LABEL 的设备。 
--fs-uuid UUID 选项,查询指定 UUID 的设备。 

如果指定–set var,那么在搜索成功后设置 var (var 可以是任意变量名)的值为目标设备名。

实例:

加载 Win Xp 的命令: 
insmod ntfs 
insmod fat 
search  --file /ntldr --set root 
chainloader +1 
boot

里面的 search 命令 搜索 /ntldr 文件,并且把找到的第一个包含这个文件的设备设为根设备。

search.file search.fs_label 和 search.fs_uuid 是 search –file ,search –label ,search –fs-uuid 的简写。

sendkey

sendkey [--num|--caps|--scroll|--insert| 
--pause|--left-shift|--right-shift| 
--sysrq|--numkey|--capskey|--scrollkey| 
--insertkey|--left-alt|--right-alt| 
--left-ctrl|--right-ctrl on|off]... [no-led] 
keystroke 

发送指定的按键序列到键盘缓冲区。某些 OS 或者加载器需要特殊的键盘操作,例如 进入安全模式 。使
用 sendkey 可以由 GRUB 发送按键给被引导的文件,可以避免用户操作。

你最多可以提供 16 个按键,因为 BIOS 的键盘缓冲就这么大。按键名可以是大写或者小写单个字母, 单个数字。

具体列表不在这里提供了

sendkey 命令支持多种选项,它们影响 BIOS 的键盘状态字节。接受 on 或 off 参数,用来开或者关掉
对应的状态位。提供选项但是省略参数,不对状态位产生影响。 –num –caps –scroll –insert 选项,
虚拟开启对应的键盘模式。 –numkey –cpaskey –scrollkey –insertkey 分别仿真对应的键保持按下的
状态。其他的状态标记和选项的字面含义相同。

–no-led 选项,在改变其他选项的状态位时不改变键盘 LED 灯。

如果多次执行 sendkey 命令,那么只有最后一次有效。由于 sendkey 会改变 BIOS 键盘缓冲区,在某些
系统下会导致挂起、重启、其他意外行为。如果 OS 或者加载器使用自己的驱动程序控制键盘,那么
sendkey 不会发生作用。

set

set [envvar=value] 

设置环境变量 envvar 的值为 value。envvar 可以是任何变量名。如果没有指定参数,那么显示当前的环
境变量和它们的值。

true

命令退出状态为 0,不做任何事情。它用于流程控制。

unset

unset envvar 

从内存中删除 envvar 变量。envvar 可以是任何有效的变量名。

uppermem

GRUB2 中暂未实现,它正在计划之中。

GRUB2相关命令 当主机安装了多个操作系统(如 Windows + Linux 双系统),需要固定默认启动某个系统。:在 Ansible/Puppet 脚本中,需让服务器下次启动时进入特定模式(如单用户模式)。:新内核(如5.4.0-100)启动失败,需临时切换回旧内核(5.4.0-99)。系统安装了新内核,但希望继续使用旧内核作为默认选项(测试新内核稳定性时)。:系统因内核崩溃进入救援模式,修复后需临时指定一个稳定内核启动。:系统升级了新内核,需测试其稳定性,但不想永久修改默认启动项。 阅读详情

相关推荐

GRUB配置文件详解(/boot/grub2/grub.cfg、/etc/default/grub、/etc/grub.d/)

编辑。

weixin_53389944的博客 1702

linux 命令行下各种分辨率字体显示问题小记录

1、 grub2 修改启动控制台分辨率 先说第一步吧,grub2里面用于控制分辨率的主要有2个参数,改配置文件什么的估计网上也有一大把文章了。这里说一下命令行直接改,直接就生效。 首先是gfxmode 这个变量的值,具体可以参考grub官方文档 http://www.gnu.org/software/grub/manual/grub/grub.html#gfxmode 这个变量在启动的时候可以设...

chenqioulin的博客 3585

解决Linux系统GRUB错误:简单入门教程

GRUB(GNU GRand Unified Bootloader)是Linux系统中常用的引导加载程序。本文将详细介绍如何解决这些GRUB错误,并提供相应的源代码示例。Stage1被加载到主引导记录(MBR)中,它的主要作用是加载Stage2。这个错误通常表示GRUB无法找到指定的分区。解决这个问题的方法是确认分区是否存在以及分区的标识是否正确。这个错误表示GRUB检测到引导加载程序的签名无效。解决这个问题的方法是重新安装GRUB。这个错误表示GRUB无法找到指定的文件。表示第一个硬盘的第一个分区。

GvCybersecurity的博客 1548

centos gpt boot手动引导

load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod xfs set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=a.

pythonyzh2019的博客 756

神联动:LSTM+卡尔曼滤波!一区大门轻松开!

近来热度飙升,成为时间序列预测和状态估计等领域的香饽饽,非常好发高区!主要在于:这两者结合,不仅能提高模型预测准确性;还能拓展应用场景,为我们的论文创新提供发挥空间,且当下还在蓝海阶段,还不算卷。具体点说:卡尔曼滤波擅长处理线性状态估计和噪声,能使LSTM更好地适应动态环境的变化,减少噪声干扰,降低预测误差。而LSTM通过捕捉长期依赖关系,擅长处理非线性时间序列,能够弥补卡尔曼滤波在这方面的不足,从而把应用场景从传统的状态估计,延伸到金融预测、工业检测、自动驾驶等任务。

2401_82426425的博客 2209

【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose

【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose 在做时序列分析的时候,好多教程都告诉你要把时序列分解成趋势,季节性,残差,然后画图看一下有没有趋势变化,有没有季节性。像这样: import statsmodels.api as sm decomposition = sm.tsa.seasonal_decompose(train['Count'] ,model='add

weixin_47442572的博客 2万+

grub 命令使用

命令列表 ubuntu 的 iso 盘内一般有 command.lst 这个文件,里面是 grub 支持的命令 加载字体 ( 方便中文显示 ) grub> loadfont $prefix/fonts/unicode.pf2 if loadfont $font ; then insmod gettext fi 列出所有设备 ( SATA硬盘是用sda表示的,而IDE硬盘则是用hda表示 ) grub> ls grub> ls -l grub>...

freeabc的专栏 3719

手把手调试Android 14 ShellTransitions:用Log追踪ActiveTransition与Handler匹配过程

本文详细介绍了在Android 14中调试ShellTransitions机制的方法,重点通过Log追踪ActiveTransition与Handler的匹配过程。文章提供了关键日志点植入策略、Handler匹配机制解析及实战调试案例,帮助开发者解决窗口转场动画中的卡顿和错乱问题,提升系统动画性能。

weixin_42652674的博客 429

GRUB legacy和GRUB 2介绍 与 命令【包含kernel 与 initrd的详解】使用

Grub简介 GNU GRUB 是一个多重操作系统启动管理器。GNU GRUB 是由GRUB(GRand Unified Bootloader) 派生而来。GRUB最初由Erich Stefan Boleyn 设计和应用。 目前,GRUB分成GRUB legacy和GRUB 2。版本号为0.9x及以前的版本均被称为GRUB legacy,版本号从1.x开始就被称为GRUB2。目前GRUB

灵魂自由的忙人 9517

《IC验证必看|IC验证的全流程概览(从DUT到回归交付)》

本文系统介绍了IC验证的全流程,从理解设计需求到最终交付验证结果。主要内容包括:1)深入理解DUT的功能和接口;2)制定详细的测试计划(Testplan);3)搭建UVM验证平台;4)执行定向和随机测试并进行回归;5)分析功能、代码和断言覆盖率;6)交付完整的验证报告。文章强调验证是一个闭环过程,特别指出新手容易忽视测试计划和覆盖率分析这两个关键环节,导致验证不充分。文末还提出思考题,引导读者反思验证计划的制定方法。

m0_46663240的博客 1261

保姆级教程:在Ubuntu 22.04上搞定PX4 V1.14 + ROS2 Humble的HITL仿真(避坑实录)

本文提供在Ubuntu 22.04上配置PX4 V1.14与ROS2 Humble的HITL仿真环境的详细教程,涵盖环境准备、固件编译、QGroundControl配置、ROS2通信设置及联调测试。特别针对版本兼容性、Gazebo插件构建和MicroDDS配置等常见问题提供避坑指南,帮助开发者高效搭建无人机仿真系统。

weixin_30836759的博客 1004

GRUB2配置文件"grub.cfg"详解(GRUB2实战手册)

GRUB2配置文件"grub.cfg"详解(GRUB2实战手册) 作者:金步国 版权声明 本文作者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。 无担保:本文作者不保证作品内容准确无误,亦不承担任何由于使用此文档所导致的损失。自由使用:任何人都可以自由的阅读/链接/打印此文档,无需任何附加条件。名誉权:任何人都可以自由的转载/引用/再创作此文档,但必须保

xiedapang_pang的博客 4055

【文献阅读笔记】之基于注意力机制的深度学习路面裂缝检测

中文,计算机辅助设计与图形学学报,第 32 卷 第 8 期,2020 年 8 月。 DOI: 10.3724/SP.J.1089.2020.18059 摘要: 为实现自动准确地检测路面裂缝, 提升路面裂缝检测效果, 提出了一种基于注意力机制的裂缝检测网络 (attention-based crack networks, ACNet). 该网络采用编码器-解码器网络构架, 编码器采用 ResNet34 为骨干网, 提取路面裂缝特征; 在编码器和解码器间加入基于注意力机制的特征模块(attention-b

qq_44785998的博客 7593

grub2详解(翻译和整理官方手册)

只说明几个主要的:1.配置文件的名称改变了。在grub中,配置文件为grub.conf或menu.lst(grub.conf的一个软链接),在grub2中改名为grub.cfg。2.grub2增添了许多语法,更接近于脚本语言了,例如支持变量、条件判断、循环。3.grub2中,设备分区名称从1开始,而在grub中是从0开始的。4.grub2使用img文件,不再使用grub中的stage1、stage1.5和stage2。

精选资讯文章 4580

华为OD机试真题2026双机位C卷 Python&JS 语言 实现【主次关联成环警告】

在ICT运维领域,现网运维工程师面向对设备上报的众多告警,往往需要筛选出最主要的告警优先处理,次等级的告警或许为同一个根因导致的告警,处理优先级会放后或者不处理,这样就诞生出主次关联告警的概念。给定一系列告警的主次关联关系,判断是否存在如下情况:

MISAYAONE的博客 269

使用timeROC包的compare函数比较不同标记物下两个多时间AUC值是否具有统计显著性

时间依赖的接收器操作特征曲线(time-dependent receiver operating characteristic curve, time-dependent ROC curve)是评估和比较标记物在不同时间点上预测能力的重要工具。在R语言中,timeROC包提供了丰富的函数和工具,可用于分析和比较多时间点的AUC值。时间点(timepoints)表示观察的时间点,标记物1(marker1)和标记物2(marker2)分别表示在每个时间点上的预测概率。最后,我们输出比较结果。

2301_79331387的博客 921

详解GRUB 2命令

这里以ubuntu 12.04中的GRUB 2为例(GRUB 1.9x称为GRUB 2)来讲述一下GRUB的命令。 打开终端,运行sudo gedit /boot/grub/grub.cfg,打开这个文件。上面的一行行文字令人眼花缭乱,现在只用一些重要的。 在第59行有一段文字:set timeout=-1,把timeout这个值设成了负数。timeout是指GRUB显示的时间,如果是负数,则

ghj123h的专栏 2067

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

grub2 linux 参数,对grub2的详细介绍

翻译了grub2官方手册的绝大部分内容,然后自己整理了一下。因为内容有点杂,所以章节安排上可能不是太合理,敬请谅解。本文目录:1.1 基础内容1.2 安装grub21.3 grub2配置文件1.4 命令行和菜单项中的命令1.5 几个常见的内置变量1.6 grub配置和安装示例1.7 传统grub简述本文主要介绍的是grub2,在文末对传统grub进行了简述,但在grub2的内容部分中包含了很多gr...

weixin_34832116的博客 2422

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

GRUB, GRUB2 and GRUB4DOS

用GRUB制作可引导光盘mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso  CDlinuxs mkisofs.sh#!/bin/sh## build CDlinux ISO image

digwtx的专栏 4411

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

GRUB2配置

原文:https://blog.youkuaiyun.com/duanlove/article/details/8066570 介绍 GRUB 2 通过运行/etc/grub.d/folder目录下的脚本来 建立配置文件 (grub.cfg) ,并且/etc/default/grub这个文件也可以配置。update-grub命令(手动运行,或更新内核的时候会被执行)可以自动更新grub.cfg ...

Hunk的菜鸟之路 3515

grub2详解

大约2002年左右,Yoshinori K. Okuji在PUPA重写了GRUB,使他更清晰,安全,健壮,更强大,PUPA最后把他重命名为GRUB2,把原来版本的grub命名为GRUB Legacy,2005年发行了grub legacy(0.97),2007 GNU/Linux 开始在小范围内使用GRUB2,到2009年底大多数主要的发行版都开始默认安装GRUB2。      虽然grub

xiedapang_pang的博客 7171

Grub命令详解

一、菜单命令菜单命令只能用于grub配置文件的全局配置部分,不能用在grub命令行交互界面,菜单命令在配置文件中应放在其它命令之前。1、default//设置默认启动的菜单项2、fallback//设置启动某菜单项失败后反回的菜单项3、hiddenmenu//隐藏菜单界面4...

chenjian1797的博客 2474

linux查看grub2版本,Grub2配置

出自Linux Wiki提示:此文已超过 8 年(3243 天)未更新,如发现内容过时或有误,欢迎改进:)GRUB,全称the GRand Unified Bootloader,是常用的引导程序,一般负责在开机时装载操作系统内核。GRUB 2是最近流行起来的GRUB新版本。Grub 2与GrubGrub 2虽在名称上是Grub的升级版,但其代码实际上被完全重写了。自动搜索可用的内核和硬盘中的可用系...

weixin_42620340的博客 3420

Grub2配置

form http://linux-wiki.cn/wiki/zh-hans/Grub2%E9%85%8D%E7%BD%AE Grub2配置 此页由Linux Wiki用户Chenxing于2012年6月13日 (星期三) 06:17的最后更改。 GRUB,全称the GRand Unified Bootloader,是常用的引导程序,一般负责在开机时装载操作系统内核。G

xunilunix 4471

linux grub2文件,[grub2-filemanager] grub下的文件管理器

说明grub2-filemanager是一个兼具文件浏览的加载引导器,其默认的配置可引导linux类常见的系统(热门linux、openbsd、Android-X86)。这是一个基于Lua5.1语言的GRUB2文件管理器支持x86_64-efi,i386-efi,i386-pc文件管理器可以执行以下操作:加载efi可执行文件 (efi)查看jpg、png、tga格式的图片查看文本文件内容[GBK/...

weixin_31792645的博客 1672

grub和grub2相关概念

一、GRUB(Bootloader) 二、Grub的命令行接口 三、/etc/grub/grub 四、进入单用户模式 五、Grub损坏,修复 六、救援模式 七、ramdisk文件的管理和initrd 八、grub2详解一、GRUB(Boot loader) Grub:GRand Unified Bootloader Grub 0.x:grub legac...

weixin_34080571的博客 656
上一篇: efi下的的shell
下一篇: Wine1.7+QQ6.4+处理中文乱码
listenerri
博客等级 码龄12年 39粉丝 66原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值