1.环境:
Ubuntu 16.04
Linux linuxidc 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
2.查看当前linux内核的启动html" target="_blank">参数:
cat /proc/cmdline
笔者的输出内容如下:
BOOT_IMAGE=/boot/vmlinuz-4.4.0-89-generic root=UUID=bef418fa-4202-4513-b39b-cde6a5d9753f ro quiet splash vt.handoff=7
3.开始解析
root=UUID=bef418fa-4202-4513-b39b-cde6a5d9753f :这一串可以用root=/dev/sda1(假如根文件系统在第一个分区)来代替,但是不能用root=(hd0,msdos1)来代替
ro : 启动时以只读方式挂载根文件系统
quiet: 不进行打印信息的输出,所以去掉此项将会迎来很多打印信息
splash: 显示开机动画
vt.handoff=7 : 图形界面会去使用tty7,此项用来禁止splash占用tty7,因此如果将splash参数去掉,此项就无效了
4.添加新的启动参数
vi /boot/grub/grub.cfg
此文件中会有第2步输出的内容,在其后追加参数即可,例如:
笔者的grub.cfg文件中就有如下行:(是不是与第2步输出的信息有些类似)
linux /boot/vmlinuz-4.4.0-89-generic root=UUID=bef418fa-4202-4513-b39b-cde6a5d9753f ro quiet splash $vt_handoff
假设笔者要加入参数dwc_otg.speed=1,那么修改后如下:
linux /boot/vmlinuz-4.4.0-89-generic root=UUID=bef418fa-4202-4513-b39b-cde6a5d9753f ro quiet splash $vt_handoff dwc_otg.speed=1
至此保存此文件重启即可使此参数生效
5.为何没有使用update-grub来更新grub.cfg文件呢?
update-grub命令无法满足更细致的内核参数修改需求
主要内容:GRUB加载内核的过程在刚刚的启动过程中,我们已经知道启动引导程序(Boot Loader,也就是 GRUB)会在启动过程中加载内核,之后内核才能取代 BIOS 接管启动过程。如果没有启动引导程,那么内核是不能被加载的。 本节,我们就来看看启动引导程序加载内核的过程,当然 initramfs 这个虚拟文件系统也是要靠启动引导程序调用的。在 CentOS 6.x 中,启动引导程序默认是 GRUB,GRUB 是现在最为流行
nf_conntrack nf_conntrack是Linux内核连接跟踪的模块,常用在iptables中,比如 -A INPUT -m state --state RELATED,ESTABLISHED -j RETURN -A INPUT -m state --state INVALID -j DROP 可以通过cat /proc/net/nf_conntrack来查看当前跟踪的连接信息,这
简介 如你所知,我从去年开始写了一系列关于 x86_64 架构汇编语言程序设计的博文。除了大学期间写过一些 Hello World 这样无实用价值的程序之外,我从来没写过哪怕一行的底层代码。那些程序也是很久以前的事情了,就像我刚才说的,我几乎完全没有写过底层代码。直到不久前,我才开始对这些事情感兴趣,因为我意识到我虽然可以写出程序,但是我却不知道我的程序是怎样被组织运行的。 在写了一些汇编代码之后
本章描述内核中使用到的各种各样的概念。 每个 CPU 的变量 CPU 掩码 initcall 机制 Linux 内核的通知链
一系列关于 Linux 内核和其内在机理的帖子,目的很简单 - 分享我对 Linux 内核内在机理的一点知识,帮助对 Linux 内核内在机理感兴趣的人,和其他低级话题。
一系列关于 Linux 内核和其内在机理的帖子。目的很简单 - 分享我对 Linux 内核内在机理的一点知识,帮助对 Linux 内核内在机理感兴趣的人,和其他低级话题。