首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GRUB2:如何记住grub最后的选择

GRUB2:如何记住grub最后的选择
EN

Unix & Linux用户
提问于 2013-03-07 13:29:26
回答 2查看 18.8K关注 0票数 13

我目前正在尝试各种发行版,所以当我启动我的笔记本电脑时,我有几个操作系统可供选择。通常,所有这些发行版都安装grub2并将自己定位在列表的顶部,因此它们是安装完成后启动的默认版本。

但是Manjaro做了一些不同的事情。它安装了一些版本的grub2,它会记住我上次引导的发行版,并一直引导那个发行版(重新启动时),直到我选择了另一个发行版(然后它会引导那个发行版等等)。

我有想过吗?曼吉罗真的这么做吗?如果是这样,我如何将该版本的grub安装到我的系统中?干杯。

这是我的/etc/grub.d/40_custom文件:

代码语言:javascript
复制
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

这是我的/etc/default/grub文件:

代码语言:javascript
复制
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2013-03-07 19:15:20

根据GRUB手册

‘GRUB_DEFAULT’.如果将其设置为“saved”,则默认菜单项将由“grub_SAVEDEFAULT”、“grub- set -default”或“grub-重新启动”保存。

“GRUB_SAVEDEFAULT”如果此选项设置为“true”,则在选择条目时,将其保存为新的默认条目,供以后运行GRUB使用。这只有在‘grub_default=saved’的情况下才有用;它是一个单独的选项,因为‘GRUB_DEFAULT=saved’与grub设置默认或grub重新启动一起使用时没有此选项。默认情况下未设置。此选项依赖于环境块,而环境块可能并非在所有情况下都可用(参见环境块)。

你必须加上:

GRUB_DEFAULT=saved

GRUB_SAVEDEFAULT=true

敬你的/etc/default/grub。此外,如果使用自定义菜单文件(如/etc/grub.d/40_custom ),则必须添加该选项。

savedefault

到该文件中的menuentry/menuentry。在更新之后,GRUB:

grub-mkconfig -o /boot/grub/grub.cfg

update-grub

如果安装了多个发行版,请确保正在配置和更新活动GRUB。

票数 14
EN

Unix & Linux用户

发布于 2016-08-14 09:05:36

我在使用Arch作为VirtualBox客人时遇到了麻烦。问题是我对LVM的使用。

同样,来自GRUB手册

13.2 GRUB环境块能够记住从一个引导到下一个引导的少量信息通常是有用的。例如,您可能希望根据上次选择的内容设置默认菜单项。GRUB故意不实现对写入文件的支持,以尽量减少引导加载程序负责文件系统损坏的可能性,因此GRUB配置文件不能只以普通方式创建文件。但是,GRUB提供了一个“环境块”,可以用来保存少量的状态。环境块是一个预先分配的1024字节文件,它通常位于/boot/grub/grubenv中(尽管您不应该这样认为)。在启动时,load_env命令(请参阅load_env)从它加载环境变量,而save_env (参见save_env)命令将环境变量保存到它。从正在运行的系统中,可以使用grub实用程序来编辑环境块。出于安全考虑,只有当安装在普通磁盘(没有LVM或RAID)、使用非校验和文件系统(没有ZFS)和使用BIOS或EFI函数(没有ATA、USB或IEEE1275)时,才能使用此存储。grub使用这个工具来实现‘GRUB_SAVEDEFAULT’(参见简单的配置)。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/67194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档