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

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

我们知道启动引导程序(Boot Loader,也就是 GRUB)会在启动过程中加载内核,之后内核才能取代 BIOS 接管启动过程。如果没有启动引导程,那么内核是不能被加载的。...本节,我们就来看看启动引导程序加载内核的过程,当然 initramfs 这个虚拟文件系统也是要靠启动引导程序调用的。...在 CentOS 6.x 中,启动引导程序默认是 GRUB,GRUB 是现在最为流行的启动引导程序,我们也用 GRUB 来说明启动引导程序的作用。...那么 Linux 的解决办法是把 GRUB 的程序分成了三个阶段来执行。...Stage 1:执行GRUB主程序第一阶段是用来执行 GRUB 主程序的,这个主程序必须放在启动区中(也就是 MBR 或者引导扇区中)。

49120

Linux启动引导参数grub

内核引导参数大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导参数多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导参数。...比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导参数,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导参数说明。...内核引导参数精选 由于引导参数多如牛毛,本文不可能涉及全部,因此本文只基于 X86_64 平台以及 Linux-3.13.2 精选了一些与设备无关的引导参数以及少部分与设备有关的引导参数,过时的参数、非...BOOT 是一个引导程序参数 标记为"BOOT"的参数实际上由引导程序(例如GRUB)使用,对内核本身没有直接的意义。...norandmaps 默认情况下,内核会随机化程序启动地址,也就是每一次分配给程序的虚拟地址空间都不一样,主要目的是为了防止缓冲区溢出攻击。

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

    Linux学习笔记之Linux启动引导过程

    早期时,启动一台计算机意味着要给计算机喂一条包含引导程序的纸带,或者手工使用前端面板地址/数据/控制开关来加载引导程序。...这就是 Linux 引导的整个过程。现在让我们深入挖掘一下这个过程,并深入研究一下 Linux 引导过程的一些详细信息。 系统启动 系统启动阶段依赖于引导 Linux 系统上的硬件。...Init 当内核被引导并进行初始化之后,内核就可以启动自己的第一个用户空间应用程序了。这是第一个调用的使用标准 C 库编译的程序。在此之前,还没有执行任何标准的 C 应用程序。...在桌面 Linux 系统上,第一个启动程序通常是 /sbin/init。但是这不是一定的。...在很多情况下,我们可以调用一个简单的 shell 脚本来启动必需的嵌入式应用程序。 结束语 与 Linux 本身非常类似,Linux引导过程也非常灵活,可以支持众多的处理器和硬件平台。

    10.5K41

    Android启动流程——1序言、bootloader引导Linux启动

    从系统角度看,Android的启动程序可分为: 1、bootloader引导 2、装载与启动Linux内核 3、启动Android系统 3.1、启动Init进程 3.1、启动Zygote 3.1、...描述 X86 ARM PowerPC U-boot 是 通用引导程序 是 是 是 ReBoot 是 是基于eCos的引导程序 是 是 是 BLOB 否 (StrongARM架构) LART(主板)等硬件平台的引导程序...否 是 否 LILO 否 Linux磁盘引导程序 是 否 否 GRUB 否 GNU的LILO替代程序 是 否 否 Loadlin 否 从DOS引导Linux 是 否 否 Vivi 是 韩国mizi公司开发的...从初始化引导到第一个用户空间来研究Linux启动进程。...BootLoader完成系统的引导以后并将Linux内核调入内核之后,调用do_bootm_linux(),这个函数将跳转到kernel的其实位置。如果kernel没有被压缩,就可以启动了。

    5K21

    linux aarch64启动不了,引导AArch64 Linux

    这篇文章基于Russell King所写的《the ARM booting document》,并与AArch64 Linux kernel的所有公开版本相关。...在本文中,我们使用术语“boot loader”来简单地定义在控制权传递给Linux kernel之前,在CPU上执行的所有软件,这可能包括Secure Monitor和hypervisor代码,或者仅仅是一小段预备好最小引导环境的指令代码...解压缩kernel映像 —————————————————- 要求:可选 目前,AArch64 kernel映像不提供解压缩程序,因此如果使用的是压缩的kernel映像(如Image.gz),那么需要boot...会跳回code0处来恢复正常引导过程。...发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/181201.html原文链接:https://javaforall.cn

    4.9K10

    Arch Linux切换rEFInd开机引导程序

    使用rEFInd的需求是我原来使用的是bootctl这个启动引导程序,虽然简单好用,但是只有黑白界面难免有点单调,所以就想使用一个比较漂亮的但是文件结构又简洁的bootloader,所以grub就被丢弃了...systemd-bootx64.efi文件 cp -r /boot/loader ~/loader cp -r /boot/EFI/systemd ~/systemd 配置rEFInd 安装rEFInd引导文件至启动分区...配置自定义启动项 编辑文件/boot/EFI/refind/refind.conf中向下滑差不多到3/4位置的位置中的Arch Linux小节,将其中的文件配置成自己的启动方式,下面的例子是我的 menuentry...Linux" loader /vmlinuz-linux initrd /amd-ucode.img initrd /initramfs-linux.img...icon是使用主题里面提供的,可以使得启动的界面更加统一 后记 rEFInd启动引导程序还是很秀的,主题也挺美观,下面放一张效果图(虚拟机中的) ?

    7K10

    SpringBoot 通过SpringApplication 引导启动

    文章目录 通过SpringApplication开始引导启动 SpringApplication类是用来执行Spring框架启动引导类。...有两种方式可以进行启动引导: 通过静态方法 SpringApplication.run启动。 先创建 SpringApplication实例,在调用的实例方法 run进行启动。...new SpringApplication——创建引导启动的实例 在创建SpringApplication实例的时候,会根据用户输入和工程环境做一些基础配置,供之后引导启动中使用。...从类中加载initializer和listener放在集合 设置是否为Web环境(先确认用户是否指定,未指定则根据工程目录下是否有servlet相关环境) 从工程环境中决定主入口的类 run()——开始引导启动...默认的监听器是EventPublishRunListener,用户也可以通过实现SpringApplicationRunListener接口,实现应用程序对SpringApplication启动过程的监听

    17710

    Linux引导流程

    本文将深入探讨Linux服务管理的关键概念和最佳实践,帮助读者更好地理解和优化系统服务的运行。 1....服务的目标是通过网络或系统调用为其他程序或用户提供某种功能,以促进系统的模块化和可扩展性。 服务通常以守护进程(Daemon)的形式运行,即在后台持续运行,而不需要用户干预。...在Linux系统中,服务是操作系统运行的基本构建块之一。通过合理配置和管理服务,系统管理员可以确保系统安全、稳定,并满足用户和应用程序的需求。...服务管理工具 Linux提供了多种工具来管理系统服务,其中最常用的是systemd。systemd是一个先进的初始化系统和服务管理器,它负责启动、停止和管理系统中的各种服务。...自启动配置 为了确保系统服务在启动时能够自动运行,需要正确配置自启动项。systemd通过配置单元文件(unit files)来定义服务的启动行为,包括依赖关系和启动顺序。 6.

    11810

    通过汇编实现引导程序

    启动流程 通电后,主板上BIOS或者UEFI,会加电自检(检查硬件有没错误),加载bootloader(执行程序)到内存 bootloader被写死在磁盘上第一个扇区,启动后被加载到内存的一个固定的位置...因此引导程序一定要放在这个位置才能执行。 ; 下面部分和10h有关中断,10h中断用来显示字符 ; 8086CPU 16位寄存器想用20位寻址,于是加了段寄存器。为了向后兼容,后来一直保留下来。...(是装有Linux系统的硬盘的第一个扇区) 汇编伪指令ORG,规定程序的起始地址,其作用是告诉汇编程序,以下机器语言加载到内存中的哪个地址。...这个大小是固定的 dd if=boot.bin of=myos.img bs=512 count=1 制作包含主引导记录boot.bin的启动镜像文件,512字节的引导程序 dd if=floppy.img...of=myos.img skip=1 seek=1 bs=512 count=2879 引导程序复制到软盘上。

    1.1K10

    Android客户端首次启动引导界面

    刚做完一个比赛项目,来写点以后能用着的东西–Android客户端的首次启动页面,而且这个以后复用的几率很大,也不怎么修改,特留下为以后准备,同时为初学者提供一个帮助。...实现思路是:用SharedPreferences保存一个首次登陆的信息,默认是true,进入MainActivity后对其经行赋flase保存,把GuideActivity作为软件的启动界面,如果是第一次启动...,就初始化该activity,不是的话直接跳转到应用主界面activity,这里有些不合理,启动界面如果设置成一个每次app启动都显示的界面最好了,这不是重点,我也就没实现。...首先使用viewpager实现 首先是引导页的布局文件:直接加入ViewPager就可以了,下面的LinearLayout是底部的小圆圈 <?...代码下载地址:Android客户端启动引导界面 以上就是本文的全部内容,希望对大家的学习有所帮助。

    1.2K10

    清除linux系统的多余引导

    由于我把系统给升级(update)了,在grub引导模式出现新旧版本(Grub与Grub2)的引导系统分别为正常启动和进入恢复模式各2个引导项,如下图显示:百度找不到相关或类似的教程,只好半夜起来研究,...此时我们选择新版本的引导项(旧版本的引导是无法登录系统的),进入系统后打开终端界面,使用cd命令切换到/boot分区,再用ls命令查看该分区,此时应该会有显示grub和grub2这两个文件夹,重点在grub2...这个文件夹内,cd命令切换到/boot/grub2/目录下,再用ls查看目录下的内容,使用VIM编辑器找到并打开gurb.conf文件,找到多余的引导代码行删除并保存后方可重启。...多余的代码可以从启动时的选项中参考,重启后就剩下新版本的正常启动和恢复模式了,grub.conf文件中每一个menuentry就是一个引导项,所以找到你要删的引导项,删除整个menuentry{}即可。

    6.2K20
    领券