首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux启动引导程序(GRUB加载内核的过程

我们知道启动引导程序(Boot Loader,也就是 GRUB)会在启动过程中加载内核,之后内核才能取代 BIOS 接管启动过程。如果没有启动引导程,那么内核是不能被加载的。...GRUB加载内核的过程GRUB 的作用有以下几个:加载操作系统的内核;拥有一个可以让用户选择的的菜单,来选择到底启动哪个系统;可以调用其他的启动引导程序,来实现多系统引导。...答案是空间不够,GRUB 的功能非常强大,MBRM 空间是不够使用的。那么 Linux 的解决办法是把 GRUB 的程序分成了三个阶段来执行。...Stage 2:加载GRUB的配置文件Stage 2 阶段主要就是加载 GRUB 的配置文件 /boot/grub/grub.conf,然后根据配置文件中的定义,加载内核和虚拟文件系统。...接下来内核就可以接管启动过程,继续自检与加载硬件模块了。

40320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    linux内核模块加载命令

    目录 一,内核相关的命令 1、lsmod 列出已经加载内核模块; 2、modinfo 查看模块信息; 3、modprobe 挂载新模块以及新模块相依赖的模块 4、rmmod 移除已挂载模块;...三,、硬件驱动在系统中的目录; 四、自己编译驱动的办法; 一,内核相关的命令 1、lsmod 列出已经加载内核模块; lsmod 是列出目前系统中已加载的模块的名称及大小等;另外我们还可以查看 /proc...modules.conf 或 modprobe.conf 内核模块的开机自动挂载模块一般是位于一个配置文件,一般的Linux发行版本都有 /etc/modules.conf 或 /etc/modprobe.conf...比如Fedora Core 4.0 内核模块开机自动加载文件是 /etc/modprobe.conf ;在这个文件中,一般是写入模块的加载命令或模块的别名的定义等;比如我们在modules.conf 中可能会发行类似的一行...modules.conf 中加入什么内容; 如果您有些模块不能开机加载,您想让一些模块加机自动加载,就可以把modprobe 模块 直接写入配置文件; 2、内核模块其它配置文件 内核模块的其它配置文件还是需要了解的

    5.1K30

    Linux内核内核模块)的加载过程(超详细)

    GRUB 加载内核之后,内核首先会再进行二次系统的自检,而不一定使用 BIOS 检测的硬件信息。这时内核终于开始替代 BIOS 接管 Linux 的启动过程了。...内核完成再次系统自检之后,开始采用动态的方式加载每个硬件的模块,这个动态模块大家可以想象成硬件的驱动(默认 Linux 硬件的驱动是不需要手工安装的,如果是重要的功能,则会直接编译到内核当中;如果是非重要的功能...这个文件是一个压缩的内核镜像我们已经知道,Linux 会把不重要的功能编译成内核模块,在需要时再调用,从而保证了内核不会过大。...如果 Linux 安装在 IDE 硬盘之上,并且采用的是默认的 ext3/4 文件系统,那么内核启动后加载根分区和模块的加载都没有什么问题,系统会顺利启动。...但是,如果 Linux 安装在 SCSI 硬盘之上,或者采用的是 LVM 文件系统,那么内核内核载入内存是启动引导程序 GRUB 调用的,并不存在硬盘驱动不识别的问题)在加载根目录之前是需要加载 SCSI

    49320

    Linux修改grub菜单

    【注】参考自 grub 官方手册。 1. 保留上一次 grub 菜单选项 1.1 问题 每次开机时,大部分 Linux 发行版的 grub 菜单都是定位在首选项位置(即当前系统选项位置)。...1.2 解决 修改 Linux 的 /etc/default/grub 文件,添加以下内容: GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true GRUB_DEFAULT...saved 使用 GRUB_SAVEDEFAULT 变量保存的或 grub-set-default 命令设定的选项作为 grub 默认菜单选项。...修改 grub 菜单等待时间 2.1 问题 有些 Linux 发行版开机进入 grub 菜单后等待时间很短,因此每次都需要抓住 grub 菜单出来的那一刻手动按键终止 grub 菜单等待时间倒计时。...2.2 解决 修改 Linux 的 /etc/default/grub 文件中的 GRUB_TIMEOUT 变量值,单位为秒: GRUB_TIMEOUT="30" # 比如修改为 30 秒的等待时间

    8K20

    Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

    文章目录 一、操作系统需要满足的要素 二、宏内核 三、微内核 四、Linux 内核动态加载机制 一、操作系统需要满足的要素 ---- 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要...---- 宏内核 : 内核代码 编译成 二进制文件 , 内核 运行在 一个 大内核 地址空间 中 , 可以 直接 访问 , 调用 内核代码 , 这种内核优点是 效率高 , 性能强 ; 下图中 , 最上层是...进行通信 , 微内核优点 : 稳定性好 , 实时性好 ; 微内核缺点 : 高度模块化 , 模块之间只能通过消息传递信息 , 效率低 ; 四、Linux 内核动态加载机制 ---- Linux 内核模块动态加载...: Linux 内核 使用了 模块设计 , 可以进行 动态加载 内核模块 ; Linux 内核的 核心实现 , 设备驱动实现 , 可以 编译成一个独立模块 , 这些独立模块可以被编译成 独立的目标文件..., 可以在运行时 , 动态 加载 / 卸载 内核模块 ; 开发简单 : Linux 内核模块引入 , 带来了很多便利 , 很多内核驱动 , 都可以 编译成动态 加载 / 卸载 的模块 , 驱动开发时

    4.2K30

    windows10 双系统安装后,grub2 引导修复(亲自实验);grub2 命令行 手动加载内核;fedora 29 系统grub2引导修复;

    之前在本机有fedora 29的系统,但是由于错误安装,把windows10 启动安装到 linux 所在的硬盘中,导致原来的 efi中的grub启动被破坏,不能进入到linux中;我首先通过磁盘精灵,...把efi中启动文件拷贝到现有的windows安装盘中,重新启动后成功从新的efi分区进入windows; 然后开始进行恢复fedora系统;这时候,有两种办法,一种是重新安装 linux; 另外一种方法就是重新修复...grub引导;因为对linux比较了解,我选择了后者;首先参考了几篇已经实践的博客; Fedora 29 引导修复: 创建修复环境: 制作live cd 或者 启动盘; 启动进入live os  sudo...,建议手动装载linux内核: mount /dev/sda2 /boot (启动分区 sda2)  mkdir /mnt/efi  mount /dev/sda1 /mnt/efi (efi分区 sda1...-o /boot/grub2/grub.cfg  grub2 手动引导加载linux内核:参考 Using the GRUB2 boot prompt insmod part_gpt insmod

    4.2K20

    Linux: 深入解析GRUB2引导加载器的核心原理

    GRUB2不仅支持多种操作系统,还支持多种文件系统和设备类型,成为Linux系统中最常见的引导加载器。...随后,core.img会加载位于/boot/grub/目录下的第二阶段引导加载器。 第三阶段:第二阶段引导加载器会加载GRUB2配置文件(grub.cfg),并根据配置文件中的指令引导操作系统内核。...例如,添加一个新的Linux内核启动项: plaintext menuentry 'New Linux Kernel' { set root=(hd0,1) linux /boot/vmlinuz...通过配置grub.cfg文件,可以实现多操作系统的共存和引导。例如,在Linux和Windows双系统中,GRUB2可以配置为在启动时提供选择菜单,让用户选择启动Linux或Windows。...4.2 故障排除 GRUB2的命令行界面和高级调试功能使其成为系统故障排除的重要工具。在系统无法正常启动时,可以使用GRUB2的命令行界面手动加载内核和初始化文件,以排除引导过程中的问题。

    41010

    Linux内核模块驱动加载与dmesg调试

    因为近期用到了Linux内核的相关知识,下面随笔将给出内核模块的编写记录,供大家参考。...1、运行环境   Ubuntu 版本:20.04   Linux内核版本:5.4.0-42-generic   gcc版本:gcc version 9.3.0   驱动和一般应用程序的执行方式很大不同...,然后应用程序触发这些函数的执行   例如:驱动程序在初始化时,向内核注册处理某个设备写操作的函数   当应用程序使用write系统调用写该设备时,内核就会调用注册的上述函数 3、内核模型常见的回调函数举例...> 14 15 #include 16 17 #include 18 19 #include 20 21...20 21 endif 9、运行测试   首先运行MakeFile文件,通过终端输入make命令即可,生成PrintModule.ko和PrintModule.mod: image.png    之后加载内核驱动

    6.6K20

    linux grub 启动菜单修复办法

    现象:GRUB菜单消失,直接进入系统 解决方法: 把LINUX安装盘的第一张放到光驱,然后重新启动机器,在BOIS中设置用光驱来引导。...2.等安装界面出来后,按[F4]键,也就是linux rescue模式。 3.一系列键盘以及几项简单的配制,过后就[继续]了。。。这个过程,我不说了,比较简单。...sh#grub 会出现这样的字符 grub> 我们就可以在这样的字符后面,输入 grub>root (hdX,Y) grub>setup (hd0) 如果成功会有一个successful.........请留意root和(hdX,Y)之间有一个空格,这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。...setup (hd0)就是把GRUB写到硬盘的MBR上。 有时重启后发现无法进入系统,此时可以利用光盘进入紧急救援模式,然后进行grub-install安装修复 ?

    7.6K10

    Linux 内核Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

    文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的...Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址...: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ Linux 内核 5.6.18 版本 : https://mirrors.edge.kernel.org...参考 【错误记录】解压 Linux 内核报错 ( Can not create symbolic link : 客户端没有所需的特权 | Windows 中配置 7z 命令行执行解压操作 ) 博客 ;...不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用

    23.4K32

    Linux 内核Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

    文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的...Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址...: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ Linux 内核 5.6.18 版本 : https://mirrors.edge.kernel.org...不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用...按钮 , 此时就可以在 VSCode 中阅读 Linux 内核源码 ;

    21.3K30
    领券