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

linux生成initramfs,Linux启动过程与initramfs

Linux启动过程概述 这里先简单列一下 Linux 操作系统启动的全过程: 按下电脑的电源键后,电脑通电,BIOS启动; BIOS读取硬盘的MBR,运行启动扇区中的代码,旧系统往往需要自己写启动扇区,...而新系统基本上由专用的启动软件接管了,在 Linux 世界中,目前都是用的 Grub2。...; 内核进行初始化,内核的初始化过程结束后,就会把控制权交给/init程序,从此进入用户空间; 因为内核先是将 initramfs 文件挂在为根文件系统,所以刚开始运行的/init程序其实是 initramfs...文件中的,所以该文件需要的重要的初始化脚本、内核模块、配置文件等,都位于 initramfs 文件中,这也是为什么很多时候我们修改了某些配置文件后,需要先更新 initramfs 文件再重启操作系统才会生效...initramfs概述 Initramfs/Initrd 用于创建一个系统启动初期的小型用户空间,解决复杂启动流程问题,作为真实rootfs挂载前的过渡。

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

Linux加密initramfs,initramfs 製作方式

Linux kernel在自身初始化完成之后,需要能够找到并运行第一个用户程序(这个程序通常叫做“init”程序)。...为 解决此问题,Linux kernel提出了一个RAM disk的解决方案,把一些启动所必须的用户程序和驱动模块放在RAM disk中,这个RAM disk看上去和普通的disk一样,有文件系统,有cache...Linux 2.6 kernel提出了一种新的实现机制,即initramfs。顾名思义,initramfs只是一种RAM filesystem而不是disk。...I. initramfs 详细的initramfs的资料可以参考如下: (1) 黃敬群先生的blog:深入理解 Linux 2.6 的 initramfs 機制 (2) initramfs, a new...II. initrd 目前还是有不少Linux发行版采用initrd(即RAM disk的方式)来实现引导,所以了解一下mkinitrd这个命令也很有必要。

1.5K10

linux initramfs加载系统指令_正在生成initramfs

3. initramfs被解析处理后原始的cpio包(压缩或非压缩)所占的空间 (&__initramfs_start – &__initramfs_end) 是作为系统的一部分直接保留在系统中,不会被释放掉...现在普遍用initramfs(嵌入式linux内核)或cpio-initrd(发行版linux的grub),具体有点参见工作流程 下面我们解包一个发行版linux的initrd加载的文件系统来了解一下(...sys var 是不是很像我们的文件系统,在挂载我们实际的文件系统之前,它就相当于文件系统 注:对于通用或复杂的内核你会看到CONFIG_BLK_DEV_INITRD被配置上了(如发行版linux...,CentOS 6.4,你会在/boot/config-2.6.32-358.el6.i686 里看到 CONFIG_BLK_DEV_INITRD = y),因为发行版linux是比较通用的,要通过制作的...但对于嵌入式的linux内核,硬件比较固定,可以把需要的模块编译进内核(比如开发板常用的nand Flash),这时不需要一个 单独的initramfs镜像来干什么,这时只需要按照默认的来就行了,CONFIG_BLK_DEV_INITRD

98020

initramfs-kernel_deepin initramfs

但对于许多系统,initramfs 是强制性使用的。 了解 initramfs(或者需要)的关键概念是了解 Linux 引导过程的工作原理,即使是在高级方法中也是如此。...Linux 启动过程 一旦 Linux 内核控制了系统(内核在由启动加载引导程序加载后获得控制权),它就会准备好内存结构和驱动程序。...因为它是一个真实的、 静态的设备,它消耗 Linux 内核中的缓存内存和易于使用的文件(如分页),这使得 initrd 有更大的内存消耗。 initramfs 的诞生解决了这些的问题。...The boot loader will then offer it to the Linux kernel at boot time so the kernel knows an initramfs...另一个值得阅读的关于自定义 initramfs 的文章 外部资源 The ramfs-rootfs-initramfs.txt file within the Linux kernel documentation

62520

initramfs-kernel_ubuntu initramfs

Linux系统启动时使用initramfs (initram file system), initramfs可以在启动早期提供一个用户态环境,借助它可以完成一些内核在启动阶段不易完成的工作。...当然initramfs是可选的,Linux中的内核编译选项默认开启initrd。在下面的示例情况中你可能要考虑用initramfs。...Linux的initramrd img 在/boot目录下的initrd.img-xxx (Ubuntu)或者initramfs-xxx.img (CentOS) 文件即为Linux用的initramfs...qemu中启动”Hello World” initramfs 在前文“在QEMU环境中使用GDB调试Linux内核”中,已经准备了一个Linux启动环境,但是缺少initramfs。...结合前文“在QEMU环境中使用GDB调试Linux内核”,可以看到qemu虚机中运行的Linux系统已经成功挂载了initramfs, 在console日志中也能看到“Unpacking initramfs

53420

Initramfs_正在生成initramfs

一、initramfs是什么 在2.6版本的linux内核中,都包含一个压缩过的cpio格式的打包文件。...这个压缩过的cpio格式的打包文件就是initramfs。编译2.6版本的linux内核时,编译系统总会创建initramfs,然后把它与编译好的内核连接在一起。...如果把initramfs比作种子,那么rootfs就是它生长的土壤。大部分linux系统正常运行后都会安装另外的文件系统,然后忽略rootfs。...它把许多常用的Linux命令都集成到一个单一的可执行程序中,只用这一个可执行程序(即busybox)加上Linux内核就可以构建一个基本的Linux系统。...最后,执行make命令重新编译内核后,在QEMU试验环境中,把initrd配置框(linux配置框的下面)的内容写为 ~/initramfs-test/initramfs_data.cpio.gz,指定

1.5K20

initramfs是什么_hdfs工作原理

initramfs概述 initramfs与initrd类似,也是初始化好了且存在于ram中的,可以压缩也可以不压缩。...但是目前initramfs只支持cpio包格式,它会被populate_rootfs->unpack_to_rootfs(&__initramfs_start, &__initramfs_end – &...initramfs与initrd区别 (1) Linux内核只认cpio格式的initramfs文件包(因为unpack_to_rootfs只能解析cpio格式文件),非cpio格式的 initramfs...单独加载到ram中内核空间外的地址,比如加载的地址为addr(是物理地址而非虚拟地址),大小为8MB,那么只要在命令行加入”initrd=addr,8M”命令,系统就可以找到 initrd(当然通过适当修改Linux...init -> bin/busybox,否则内核启动将会失败) 链接入内核的initramfs文件在linux-2.6.24/usr/initramfs_data.cpio.gz 使用initrd

64720

生成initramfs_windows引导文件

在制作Initramfs文件系统之前,我先简单介绍下linux各文件系统。...linux支持多种文件系统类型,包括ext2,ext3,vfat,jffs, ramfs,nfs等,为了对各类文件系统进行统一管理,linux引入了虚拟文件系统vfs(virtual file system...initramfs:基于ram的文件系统。initramfs出现在2.6内核中,它类似于tmpfs,是一种基于内存的文件系统,它的使用不需要创建内存块设备。...4、编译内核模块 进入Linux内核目录(linux-2.6.30.4) make modules 注意:最好将内核根目录下的Makefile文件中的ARCH改成arm CROSS-COMPILE...文件系统: 1、建立Initramfs文件系统启动时所需文件init(initramfs文件系统启动时会在根文件系统中执行第一个init程序,它对uboot传过来的参数init=/linuxrc不予理睬

73510

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

这时内核终于开始替代 BIOS 接管 Linux 的启动过程了。...那么,Linux 的内核到底放在了哪里呢?当然是 /boot 的启动目录中了,我们来看看这个目录下的内容吧。...Linux 给出的解决办法是使用 initramfs 这个虚拟文件系统来处理这个问题。...也就是说,通过 initramfs 虚拟文件系统在内存中模拟出一个根目录,然后在这个模拟根目录中加载 SCSI 等硬件的驱动,就可以加载真正的根目录了,之后才能调用 Linux 的第一个进程 /sbin...initramfs 重复利用了 Linux caching 的代码,因此几乎没有増加内核尺寸,而 caching 的代码已经经过良好测试,所以 initramfs 的代码质量也有保证。

25620

CVM启动环境检查

二、linux CVM脚本适用范围适用linux操作系统基础网络CVM,在切换VPC网络前,可使用脚本检查启动环境(检查cloud-init,initramfs, fstab, bin/lib软链接)是否正常...操作步骤在CVM内运行命令:1、wget http://mirrors.tencentyun.com/install/cts/linux/basenet_to_vpc_check.sh2、chmod +.../etc/fstab is ok异常处理1、cloud-init异常,需重装 cloud-init,参考文档:云服务器 Linux 系统安装 cloud-init-操作指南-文档中心-腾讯云安装绿色版...:图片2、initramfs错误,需重建initramfs, 执行如下命令:wget http://mirrors.tencentyun.com/install/cts/linux/cvmrescue_main.sh.../cvmrescue_main.sh -m rebuild_initramfs3、bin lib 软链接异常修复参考:云服务器 系统 bin 或 lib 软链接缺失-故障处理-文档中心-腾讯云4、/etc

1.8K50

破解Linux系统root用户密码

linux系统的启动过程 在介绍破解Linux系统root密码之前先了解一下linux系统的启动过程: 1 开机自检(POST),初始化部分硬件 2 搜素可用于引导的启动设备(如磁盘的MBR)...initramfs中的硬件驱动,作为PID=1从initramfs执行/sbin/init (在RHEL7中,为systemd,并包含udev守护进程 8 Systemd执行initrd.target...破解Linux系统root用户密码 破解root密码的大致思路为,linux系统启动时会加载Initramfs文件系统,而Initramfs文件系统其实就是压缩的仅包含开机引导所必须的一小部分系统命令,...在我们进入磁盘系统之前会有系统启动加载器grub2来加载内核和Initramfs文件系统,因为磁盘系统的root密码忘记了,所以我们必须修改步骤3的启动部分,告诉系统加载完内核后就停止,让我们进入Initramfs...3.修改linux16行中的ro以后的部分内容(就是红色线标记的部分),然后替换为rd.break ? 变更为如下所示,然后ctrl+x保存,继续下一步 ?

14.5K90

使用fsck命令检查并修复linux文件系统

再次重启后出现黑屏,提示错误如下: initramfs unpacking failed decoding failed radeon 0000:01:00.0: failed VCE resume (...经过一通man busybox猛如虎的操作后,发现BusyBox是一个集合多种工具命令的工具箱,又或称嵌入式Linux系统的瑞士军刀。可用作急救盘。...image.png initramfs initramfs (initram file system) 用于挂载根文件系统。...initramfs是在普通根文件系统上可以找到的完整目录集, 在启动时,引导加载程序会把内核和initramfs镜像加载到内存并启动内核。 initramfs可以在启动早期提供一个用户态环境。...initramfs 与 BusyBox 是什么关系? 我理解initramfs就是一种文件系统。BusyBox是命令工具集,其中还有一个switch_root命令,可以切换root文件系统。

4.5K20
领券