[Problem feedback] deepin是不是把etc/default/grub屏蔽了?
Tofloor
poster avatar
openttd
deepin
2025-11-26 14:40
Author

想修改下分辨率,在etc/default/grub里面添加GRUB_GFXMODE=1024x768,一点作用也没有,而且修改了timeout也不起作用,update-grub后看grub.cfg依然没变。

是不是deepin把grub屏蔽掉,还是deepin写配置的时候把grub里面参数覆盖了?

Reply Favorite View the author
All Replies
一粒
deepin
2025-11-26 15:11
#1

是什么系统版本呢?

Reply View the author
deepin流云
Super Moderator
Community OP
2025-11-26 15:26
#2

可以修改的,改了之后需要跑update-grub2生效

Reply View the author
openttd
deepin
2025-11-26 15:57
#3

deepin 25.0.9


/etc/default/grub 文件:

Generated by deepin-installer

GRUB_BACKGROUND="/boot/grub/themes/deepin/background.jpg"
GRUB_CMDLINE_LINUX_DEFAULT="video=efifb:nobgrt splash quiet loglevel=0 locales=zh_CN.UTF-8"
GRUB_DEFAULT=0
GRUB_DISTRIBUTOR="/usr/bin/lsb_release -d -s 2>/dev/null || echo UOS 20"
#GRUB_THEME="/boot/grub/themes/deepin/theme.txt"
GRUB_TIMEOUT=17
#GRUB_GFXMODE=auto
GRUB_GFXMODE=1024x768
#DEEPIN_GFXMODE_DETECT=1

GRUB_CMDLINE_LINUX=""


sudo update_grub 或者update_grub2之后

/boot/grub/grub.cfg 里面依旧是没有指定成功1024x768,而且timeout也没有设定为17


grub.cfg文件部分:

font=unicode
set gfxmode=auto
if loadfont $font ; then
set gfxmode=1920x1080,1680x1050,1280x1024,1440x900,1280x720,1024x768,auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=zh_CN
insmod gettext
fi

这个问题搞了很久,没有装grub customizer,因为它把文件改来改去的。系统新装很干净。看了00_header也看不出问题,deepin theme也禁掉了,除了下去改grub.cfg不知道怎么解决

Reply View the author
𰻞𰻝面
deepin
2025-11-26 17:39
#4

我的是这样,开机有倒计时
image.png

Reply View the author
W2J
deepin
2025-11-26 20:46
#5

这bug可以绕过去。

我是启动后选进乌班图LTS,修改乌班图LTS的/etc/default/grub,再update-grub之后,引导二进制就换成了乌班图LTS自带grub了,可以保证它没bug。

Reply View the author
翻过山峰看见云
deepin
2025-11-27 10:28
#6

我之前想改grub主题的时候也碰到这个问题了改了不生效,后来发现要在/etc/default/grub.d/11_dde.cfg中去改,然后sudo update-grub后才会生效

Reply View the author
openttd
deepin
2025-11-27 12:26
#7
翻过山峰看见云

我之前想改grub主题的时候也碰到这个问题了改了不生效,后来发现要在/etc/default/grub.d/11_dde.cfg中去改,然后sudo update-grub后才会生效

问题查到了,用strace记录了update-grub的调用过程,发现

先读取了/etc/default/grub

然后读取了 /etc/default/grub.d下面的

10_deepin.cfg

11_dde.cfg

11_uos-ste-eventd.cfg

14_user-boot-crypt.cfg

再读取/etc/grub.d 下面的脚本,然后结束生成grub.cfg

而 11_dde.cfg看时间记录,试验了一下是 控制中心-系统-启动菜单 那里做过设置后自动生成的。

11_dde.cfg文件内容如下


Written by org.deepin.dde.Grub2

DEEPIN_GFXMODE_DETECT=1
GRUB_BACKGROUND=
GRUB_DEFAULT=1
GRUB_GFXMODE=1920x1080,1680x1050,1280x1024,1440x900,1280x720,1024x768,auto
GRUB_THEME=
GRUB_TIMEOUT=1


所以这里把系统自己的/etc/default/grub里面相应设置覆盖掉了,导致在grub里面设置失效。

解决办法:

把/etc/default/grub.d目录下的11_dde.cfg改名即可,在/etc/default/grub里面就可以自定义设置了。不过下次在控制中心那里改启动菜单,又会自动生成一个11_dde.cfg了。

Reply View the author
openttd
deepin
2025-11-27 12:42
#8

给deepin开发团队建议:

既然控制中心那里修改启动菜单,只涉及到背景图片,主题,默认选项,几个选择

那么在自动生成的11_dde.cfg文件里面就不要添加GRUB_TIMEOUT,GRUB_GFXMODE参数,

这样用户只需要修改/etc/default/grub就可以了,既不会设置被覆盖,也不需要多操作,要不然就多加几个对应选项,让大家设置。

问题已经转发到 产品反馈 板块

Reply View the author
openttd
deepin
2025-11-27 19:15
#9

重装了系统,发现系统自带的11_dde.cfg里面就含有GRUB_TIMEOUT,GRUB_GFXMODE参数,

而这两个参数在控制中心-启动菜单那里怎么设置都不会改。对于用theme的用户,影响不大。

但用文本模式的用户,grub那里改这两项,都会在加载11_dde.cfg这里被覆盖掉。

所以建议,下一版本中的11_dde.cfg就删除GRUB_TIMEOUT,GRUB_GFXMODE这两行

Reply View the author