0%

修改deepin启动内核参数

晚上修改了deepin的启动项。
虽然还不知道为什么amd64版本就可以使用,但是先照一个帖子修改了启动项。我觉得没问题。但是还是记录一下修改过程以及一些细节

首先防止崩溃我把配置文件原件复制下来了
然后打开/boot/grub/grub.cfg,赫然大字:not edit this file
没事大神帖子撑腰,大不了重装嘛..

然后发现了,,这里面几乎是完全定义了grup的所有内容,包括文字图片主题等待时间(注释说这个文件是由其他两个配置文件自动生成的)
根据仅有的英文水平(介绍+翻译)看懂一些

首先有个GRUB_DEFAULT=0,默认启动项,这个值为0就是默认启动第一个,为1默认启动第二个

然后是启动菜单,好几个系统内核赫然在列,也包括advanced option的选项称之为submenu,其下面就是两个deepin内核了。我的是

  • Deepin 15.8 GNU/Linux, with Linux 4.15.0-29deepin-generic
  • Deepin 15.8 GNU/Linux, with Linux 4.9.0-deepin13-amd64

对的下面那个能用..
然后我就粗暴的(小心翼翼)的把这个启动项【描述(如下)】整个复制到了第一项上面(前面设定了默认启动首项)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
menuentry 'Deepin 15.8 GNU/Linux, with Linux 4.9.0-deepin13-amd64(这里改名字)' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-deepin13-amd64-advanced-f35aea66-7d3d-46a8-8ad9-ac8abf142a40' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt9'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt9 --hint-efi=hd0,gpt9 --hint-baremetal=ahci0,gpt9 f35aea66-7d3d-46a8-8ad9-ac8abf142a40
else
search --no-floppy --fs-uuid --set=root f35aea66-7d3d-46a8-8ad9-ac8abf142a40
fi
linux /boot/vmlinuz-4.9.0-deepin13-amd64 root=UUID=f35aea66-7d3d-46a8-8ad9-ac8abf142a40 ro splash quiet DEEPIN_GFXMODE=$DEEPIN_GFXMODE
initrd /boot/initrd.img-4.9.0-deepin13-amd64
}

听说描述最后两行是启动内核,看了一下,确实:第一项Deepin 15.8 GNU/Linux的内核为Linux 4.15.0-29deepin-generic。
所以我想以后看不顺眼了可以把原第一项给删了。
最后改了一下名(位置如上),改为Deepin 15.8 GNU/Linux -amd64

关闭以后更新配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ sudo update-grub
Generating grub configuration file ...
Found theme: /boot/grub/themes/deepin/theme.txt
Found background image: /boot/grub/themes/deepin/background.png
Found linux image: /boot/vmlinuz-4.15.0-29deepin-generic
Found initrd image: /boot/initrd.img-4.15.0-29deepin-generic
Found linux image: /boot/vmlinuz-4.9.0-deepin13-amd64
Found initrd image: /boot/initrd.img-4.9.0-deepin13-amd64
Found deepin image: /boot/deepin/vmlinuz-4.14.13
Found initrd image: /boot/deepin/initrd.img-4.14.13
Found Windows Boot Manager on /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi
Found Ubuntu 18.04.1 LTS (18.04) on /dev/sda8
Adding boot menu entry for EFI firmware configuration
done

完成,现在我要重启了,希望一切正常。。


好的一切正常??完全没有变化。打开grub.cfg文件一看,咦难道我刚刚忘了保存,恢复原样。
看了原帖,大神已经说的很清楚了呀,这个文件是根据另外两文件生成,改这个没有用的,update-grub反而是更新了该文件,所以复原了。
好吧只能改原文件了。是/etc/default/grub,和/etc/grub.d下的一系列文件

/etc/grub.d
00_header 配置初始的显示项目,如默认选项,时间限制等,一般由/etc/default/grub导入,一般不需要配置
05_debian_theme 配置引导画面,文字颜色等主题
10_linux 定位当前操作系统使用中的root设备内核的位置,包含deepin 启动项和advanced里面的启动项
15_linux_bar 救援模式的启动项
20_linux_xen 虚拟机监视器的东西,(暂时不知有什么用
30_uefi-firmware “system setup” 的启动项
35_os-prober windows的启动项一般在这个里面
40_custom 用来加入用户自定义的启动项,将会在执行update-grub时更新至grub.cfg中
41_custom 判断custom.cfg此配置文件是否存在,如果存在就加载它

前面的数字是对文件排列执行的顺序进行排序,可进行更改,比如你想把windows启动项调到第一个,就把35_os-prober前面那个数字改成5到10的数字,比如06~09.
(快没电了直接摘)

好的成功了。(虽然由于计算失误)
接下来就是想办法吧它挪到第一个(好看…)

我猜测,这个新添加的启动项应该就是40_custom,所以把它改为9_custom。看起来没有成功。原来那次改完没有update就没电了。于是改为7_custom,update。成了。别忘了把启动项改为0。


结束总结:

完美满足了我的需求!


以下为补充:

  1. root 告诉内核根分区设备
  2. ro 表示在设备启动时为read-only,如果是rw表示read-write
  3. splash 表示开机画面
  4. quiet 示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示
  5. single 以单用户模式登录,一般用于修复系统,比如忘记密码
  6. 一些内核相关的命令
    • 查看本机的内核
      1
      $ uname -r
    • 显示可以安装的内核
      1
      $ apt-cache search linux
    • 安装内核
      1
      $ sudo apt-get install -y linux-headers-version-generic linux-image-version-generic linux-image-extra-version-generic
    • 查看系统中已经安装的内核
      1
      $ dpkg -l|grep linux-image
    • 卸载无用的内核
      1
      $ sudo apt-get purge xxxxx
      以及一位同道中人对重装失败换内核的心得总结,果然外国友人看得明白,我也弄懂了大概怎么回事:

      当15.5出现并且在升级之后,我注意到系统可以在启动时登录到登录屏幕并且无法加载桌面或登录后出现的任何GUI。由于升级后(非全新安装),以前版本附带的内核仍然驻留在系统上,我尝试使用GRUB上的高级选项启动笔记本电脑(现在使用Deepin 15.5)和旧内核(附带15.4)菜单。选择以前的内核Linux 4.9.0-deepin13-amd64有用。所以新的15.5现在可以运行,但只有15.4附带的内核

      当15.6和15.7出局时也是如此。唯一有效的内核是与Deppin 15.4 一样的旧Linux 4.9.0-deepin13-amd64。这意味着Deepin打包的新内核目前无法在这些笔记本电脑上运行。

      这意味着如果我碰巧重新安装Deepin OS 15.5,15.6或当前的15.7,这些内核包装的是15.4中加载的内核以外的新内核,笔记本电脑甚至都无法启动。

      如果我要安装Deepin 15.7,那么首先我必须安装15.4并升级到15.7,这样我才能保留并使用15.4附带的内核。换句话说,只有Deepin 15.4可以在这些机器上进行全新安装

      在其他机器上复制这些安装最终使所有安装工作正常,15.5,15.6和15.7与更新的内核一起提供。

      奖励:我还观察到,在15.4(工作正常)时,Deepin桌面环境(dde)的任何升级 都会使机器处于与安装15.5,15.6和15.7时相同的状态。

至于为什么新内核不能用,原因大概是:更新完内核之后,我的 Nvidia独显驱动和内核无法一起工作,导致无法进入桌面


完结 撒花 ฅ>ω<*ฅ