发新帖

通过grub修改linux内核启动参数

myccloves / 2018-9-15 21:39
浏览: 3610 / 回复: 14
查看: 3610|回复: 14

通过grub修改linux内核启动参数

[复制链接]
收藏
跳转到指定楼层
这里记录几个常用的linux内核参数。
在开机的时候我们会发现有一个菜单让我们选择。

DeepinScreenshot_select-area_20180915210114.png

通过光标键可以高亮选择某个菜单,此时按e键可以编辑菜单中的内容(c键进入grub命令行),如:

  1. menuentry 'Deepin 15.7 GNU/Linux' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-b66d8ffa-aed9-466c-bc12-6bb801e45901' {
  2.         load_video
  3.         insmod gzio
  4.         if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
  5.         insmod part_gpt
  6.         insmod ext2
  7.         set root='hd2,gpt1'
  8.         if [ x$feature_platform_search_hint = xy ]; then
  9.           search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt1 --hint-efi=hd2,gpt1 --hint-baremetal=ahci2,gpt1  56a1a52b-599c-40c1-906a-8be908fb3ac4
  10.         else
  11.           search --no-floppy --fs-uuid --set=root 56a1a52b-599c-40c1-906a-8be908fb3ac4
  12.         fi
  13. linux        /vmlinuz-4.15.0-29deepin-generic root=UUID=b66d8ffa-aed9-466c-bc12-6bb801e45901 ro  splash quiet
  14. initrd        /initrd.img-4.15.0-29deepin-generic
  15. }
复制代码

我们发现有一行:


  1. linux        /vmlinuz-4.15.0-29deepin-generic root=UUID=b66d8ffa-aed9-466c-bc12-6bb801e45901 ro splash quiet
复制代码

这行表示加载linux内核文件,后面是内核的参数
  • root 告诉内核根分区设备
  • ro 表示在设备启动时为read-only,如果是rw表示read-write
  • splash 表示开机画面
  • quiet 示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示
  • single 以单用户模式登录,一般用于修复系统,比如密码忘记了。


我们可以修改这些参数,之后按f10键启动系统。

Example:

1. 开机不显示画面,而显示一行行的字符信息:
  1. linux        /vmlinuz-4.15.0-29deepin-generic root=UUID=b66d8ffa-aed9-466c-bc12-6bb801e45901 ro
复制代码

2. 单用登录:
  1. linux        /vmlinuz-4.15.0-29deepin-generic root=UUID=b66d8ffa-aed9-466c-bc12-6bb801e45901 rw single init=/bin/bash
复制代码

3. 开机卡机的处理
  1. linux        /vmlinuz-4.15.0-29deepin-generic root=UUID=b66d8ffa-aed9-466c-bc12-6bb801e45901 ro  splash quiet  acpi_osi=! acpi="windows 2009"
复制代码

重点说一下最后一个,很多网友用笔记本装系统,重启机器就卡住了,用例3就可以解决大部分这样的情况。

其中ACPI就是高级配置与电源管理接口(Advanced Configuration and Power Interface)是提供操作系统与应用程序管理所有电源管理接口,包括了各种软件和硬件方面的规范。ACPI可以实现的功能包括:电源管理;性能管理;配置与即插即用;系统事件;温度管理;电池管理;SMBus控制器;嵌入式控制器。

这里windowss 2009表示windows 7或 windwos server 2008 R2。可以参考下面的列表:

cpi_os_name=“字符串”
告诉ACPI BIOS操作系统的名称。
常用于哄骗有缺陷的BIOS,让其以为运行的是Windows系统而不是Linux系统。

  • “Linux” = Linux
  • “Microsoft Windows” = Windows 98
  • “Windows 2000” = Windows 2000
  • “Windows 2001” = Windows XP
  • “Windows 2001 SP2” = Windows XP SP2
  • “Windows 2001.1” = Windows Server 2003
  • “Windows 2001.1 SP1” = Windows Server 2003 SP1
  • “Windows 2006” = Windows Vista
  • “Windows 2006 SP1” = Windows Vista SP1
  • “Windows 2006.1” = Windows Server 2008
  • “Windows 2009” = Windows 7 / Windows Server 2008 R2
  • “Windows 2012” = Windows 8 / Windows Server 2012
  • “Windows 2013” = Windows 8.1 / Windows Server 2012 R2


acpi_osi=“字符串”
对于较新的内核而言,当BIOS询问内核:“你是Linux吗?”,内核都会回答"No",但早版本内核会如实回答"Yes",结果造成很多BIOS兼容性问题
此参数用于修改内核中的操作系统接口字符串(_OSI string)列表默认值,这样当BIOS向内核询问:"你是xxx吗?"的时候,内核就可以根据修改后的列表中是否存在"xxx"回答"Yes"或"No"了,主要用于解决BIOS兼容性问题导致的故障。

DeepinScreenshot_select-area_20180915213914.png

那么内核参数加了这个参数:acpi_osi=! acpi=“windows 2009” , 当bios寻问内核,是windows 7 吗? 内核说是啊,所以就不卡机了。

引用网友的话:
bios遇到不认识的系统,就不启动独显,所以卡机了。

万恶的BIOS …


评分

参与人数 6贡献 +18 收起 理由
aurora_lzdf + 3 收藏收藏
hyikesong + 3 我滴乖乖,厉害了
lvzhu + 3 加分鼓励 : )
GreenHat + 3 原创内容!
ylxdxx + 3 加分鼓励 : )
wtz + 3 干货,好评!

查看全部评分

办公已解决:打印机驱动,打印机共享,截图识字

8

主题

1793

帖子

5945

积分

drw-r-----

Rank: 7Rank: 7Rank: 7

积分
5945
wtz 发表于 2018-9-16 03:06:50 | 显示全部楼层
楼主你进步神速啊……

183

主题

1238

帖子

7196

积分

-rw-rw-rw-

Rank: 6Rank: 6

积分
7196
myccloves 发表于 2018-9-16 11:58:59 | 显示全部楼层
wtz 发表于 2018-9-16 03:06
楼主你进步神速啊……

昨天一些人在官方群讨论之后,我整理的笔记。
办公已解决:打印机驱动,打印机共享,截图识字

41

主题

1284

帖子

5336

积分

-rw-rw-rw-

Rank: 6Rank: 6

积分
5336
windcz91 发表于 2018-9-16 13:16:09 | 显示全部楼层
老陌已经深入到如此境地了!可喜可贺!
我在使用deepin过程中遇到的问题及解决方法,欢迎参考
https://bbs.deepin.org/forum.php?mod=viewthread&tid=141477&extra=

8

主题

239

帖子

1773

积分

-rw-rw-r--

Rank: 5Rank: 5

积分
1773
lvzhu 发表于 2018-9-16 19:06:11 | 显示全部楼层
老陌越来越厉害了

53

主题

426

帖子

3489

积分

-rw-rw-rw-

Rank: 6Rank: 6

积分
3489
lixiaobai 发表于 2018-9-18 22:59:59 来自移动端 | 显示全部楼层
总结的很好

58

主题

1783

帖子

8435

积分

-rw-rw-rw-

Rank: 6Rank: 6

积分
8435
QQ
nero28 发表于 2018-9-19 09:42:41 | 显示全部楼层
為什麼這句acpi_osi=! acpi=“windows 2009” , 当bios寻问内核,是windows 7 吗? 内核说"是"?
與你說的----当BIOS询问内核:“你是Linux吗?”,内核都会回答"No",但早版本内核会如实回答"Yes",因為內核會回覆NO,所以加個!,雙重否定=YES,是嗎?

183

主题

1238

帖子

7196

积分

-rw-rw-rw-

Rank: 6Rank: 6

积分
7196
myccloves 发表于 2018-9-19 12:57:45 | 显示全部楼层
nero28 发表于 2018-9-19 09:42
為什麼這句acpi_osi=! acpi=“windows 2009” , 当bios寻问内核,是windows 7 吗? 内核说"是"?
與你說的- ...

我是整理的笔记,=! 表示删除内置的字符串, 如果你是程序员,想要知道内部原理,参考内核的源码。
办公已解决:打印机驱动,打印机共享,截图识字

18

主题

100

帖子

1075

积分

-rw-r--r--

Rank: 4

积分
1075
qq379377944 发表于 2018-9-19 13:17:37 | 显示全部楼层
不知道哪些机型比较友好?
Lenovo Yoga系列,ThinkPad T系列/L系列/X系列,Lenovo IdeaPad系列,这些支持怎么样?

现在还有没有笔记本BIOS/EFI支持关闭独显的,算是从硬件层关闭吧

34

主题

299

帖子

2443

积分

-rw-rw-r--

Rank: 5Rank: 5

积分
2443
henaiji826 志愿者 发表于 2018-9-19 15:57:20 | 显示全部楼层
wtz 发表于 2018-9-16 03:06
楼主你进步神速啊……

何止神速啊,火箭都没他快
只有技术创新,才能拥有改变世界的力量。

1

主题

5

帖子

34

积分

-r--------

Rank: 1

积分
34
tonydeng974 发表于 2018-9-19 16:15:02 | 显示全部楼层
我刚装好系统,开机启动只能进grub>提示符下,是怎么回事。在grub提示符下如何启动DeepIn

183

主题

1238

帖子

7196

积分

-rw-rw-rw-

Rank: 6Rank: 6

积分
7196
myccloves 发表于 2018-9-19 16:27:59 | 显示全部楼层
tonydeng974 发表于 2018-9-19 16:15
我刚装好系统,开机启动只能进grub>提示符下,是怎么回事。在grub提示符下如何启动DeepIn ...

uefi还是mbr?
办公已解决:打印机驱动,打印机共享,截图识字

13

主题

185

帖子

1327

积分

-rw-r--r--

Rank: 4

积分
1327
QQ
zss1993 发表于 2018-9-19 18:38:37 来自移动端 | 显示全部楼层
大佬,我开机关机有报错信息,能去掉么,看的好烦

183

主题

1238

帖子

7196

积分

-rw-rw-rw-

Rank: 6Rank: 6

积分
7196
myccloves 发表于 2018-9-20 06:37:21 | 显示全部楼层
zss1993 发表于 2018-9-19 18:38
大佬,我开机关机有报错信息,能去掉么,看的好烦

最好的方法是把眼睛闭上,哈哈。
办公已解决:打印机驱动,打印机共享,截图识字

215

主题

4206

帖子

1万

积分

d-rw-rw-r--

Rank: 8Rank: 8

积分
15813
aida 官方管理员 志愿者 发表于 2018-9-29 15:30:14 | 显示全部楼层
这个要加精一波  鼓励原创分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回版块 返回顶部