相关疑难解决方法(0)

GRUB 是最好的引导加载解决方案吗?有没有更简单的选择?

我有一些相当糟糕的经历GRUB2。我可以说(并且已经说过)关于它的设计和开发过程的一些令人讨厌的事情。我特别不喜欢它的更新方式:无论出于何种原因,它必须半自动地更新多个脚本——一个脚本通过链中的另一个间接更新——对于每次内核更新——或者许多其他小的(看似无关的)配置更改。

这与我之前的经历形成鲜明对比LILO——我正在认真考虑恢复——因为我从来没有遇到过任何问题,而且它的配置非常简单。一方面,正如我所记得的,我只需要更新(或者更确切地说,它只更新过)每个内核更新的单个、简单管理的配置文本文件。

那么 LILO 如何在具有当今内核的现代硬件上工作?GRUB 是怎么做的?其他引导加载程序如何?我是否必须满足任何先决条件,还是只是编写配置文件和运行lilo命令,因为我在过去深情地记得它?内核包更新 (Debian/Ubuntu) 是否会像 GRUB2 一样更新 LILO?

grub2 lilo

31
推荐指数
1
解决办法
3万
查看次数

如何从命令行编写/编辑/更新 OsIndications efi 变量?

在使用超快速启动时需要进入 UEFI 固件设置实用程序(POST 期间未加载键盘驱动程序),我希望写入“Os Indications”efi 变量。我的操作系统是 Ubuntu 14.04 内核 3.13.0-35-generic。

OsIndications 变量返回一个 UINT64 位掩码

OsIndicationsSupported 变量返回一个 UINT64 位掩码

EFI_OS_INDICATIONS_BOOT_TO_FW_UI如果固件支持 OS 请求在固件用户界面上停止,固件可以在 OsIndicationsSupported 变量中设置该位。该 EFI_OS_INDICATIONS_BOOT_TO_FW_UI位可由操作系统在 OsIndications 变量中设置,如果操作系统希望固件在下次启动时停止在固件用户界面。

EFI_OS_INDICATIONS_BOOT_TO_FW_UI= 0x0000000000000001- UEFI 规范 2.3.1C 第 312 页

我的固件能够在下次启动时进入固件设置实用程序:

$ hexdump /sys/firmware/efi/vars/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c/data
0000000 0001 0000 0000 0000
0000008
Run Code Online (Sandbox Code Playgroud)

我可以在/sys/firmware/efi/efivars使用时 创建一个新变量

$ printf\x07\x00\x00\x00\x00" > myvar-12345678-1234-1234-1234-123456789abc
Run Code Online (Sandbox Code Playgroud)

然而,写入 efi 变量会OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c导致各种write error: Invalid argument

使用新的 efivarfs

# printf "x00\x00\x00\x01" > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c
-bash: printf: write error: Invalid argument

# …
Run Code Online (Sandbox Code Playgroud)

command-line ubuntu firmware uefi

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

command-line ×1

firmware ×1

grub2 ×1

lilo ×1

ubuntu ×1

uefi ×1