创建工作目录

使用busybox生成根文件系统中的bin等目录

创建服务启动脚本与inittab文件与fstab文件

创建根文件系统的init脚本(initrc使用linuxrc,而initramfs使用init脚本,所以先删除busybox为initrc生成的默认的linuxrc文件,rm-rf$LINUX/linuxrc),init文件可以是任何ELF格式的可执行性文件,例如如果是一个编译过的C程序也是可以的,记得安装编译c文件要用到的库:sudoyum install -y glibc-static libstdc++-static。

使用chroot在未make内核之前就可以先测试initramfs

构建initramfs,先配置支持Generalsetup -> Initial RAM filesystem and RAM disk (initramfs/initrd)support (默认就是支持的),再将linux内核的CONFIG_INITRAMFS_SOURCE(Generalsetup -> initramfs sourcefile(s))指向这个目录,然后执行make命令内核就会自动构建生成initramfs了(是一个压缩过的cpio档案文件),并且将它链接到内核镜像中。

调试验证。可以使用物理机验证,也可以采用qemu虚机验证。如果使用物理机来验证的话,本来可以直接使用makeinstall命令自动安装,但最好不要这么做,因为它会自动执行updategrub命令来破坏你的grub文件,可以手工做:

initramfs是一个最小化的根文件系统,它的根本目的是为了为切换到新的根文件系统做准备。initrd方式使用pivot_root命令切换到新的根文件系统,然后卸载ramdis,但是initramfs方式由于它是本身就是rootfs(rootfs是ramfs的一个实例)位于内存中,所以它既不能pivot_root,也不能umount,是常驻内存的。

对模块的支持,到目前为止,我们在构建initramfs时还没有涉及内核模块的支持,所用到的硬件驱动程序都是直接编译到内核中。现在我们就看看如何使initramfs支持内核模块。

linux怎样自制库_如何制作自己的LINUX系统?相关推荐

  1. linux怎样自制库_苹果开源Swift System,增加Linux支持

    今年六月,Apple 推出了 Swift System,这是一个底层系统接口库.现在 Swift System 已开源并增加了 Linux 支持.Apple 称,他们的目标是为所有受支持的 Swift ...

  2. linux运行隐藏文件,Linux下如何隐藏文件_网站服务器运行维护,Linux,隐藏文件

    linux系统怎样安装软件_网站服务器运行维护 linux系统安装软件的方法:1.使用apt命令进行安装,如[apt install app_name]:2.使用rpm命令进行安装,如[rpm -i ...

  3. Linux c编译库路径,【一点一点学Linux C】交叉编译时候如何配置连接库的搜索路径...

    交叉编译的时候不能使用本地(i686机器,即PC机器,研发机器)机器上的库,但是在做编译链接的时候默认的是使用本地库,即/usr/lib,/lib两个目录.因此,在交叉编译的时候,要采取一些方法使得在 ...

  4. linux 启动一个网站_在线试用 200 多种 Linux 和 Unix 操作系统

    只要打开该网站,选择你需要的 Linux/Unix 发行版,然后开始试用! -- Sk(作者) 不久前我们介绍过 OSBoxes ,该网站提供了一系列免费且开箱即用的 Linux 和 Unix 虚拟机 ...

  5. linux 路由跟踪命令_云计算网络知识学习-linux网络基础

    1 linux虚拟网络基础 1.1 Device 在linux里面devic(设备)与传统网络概念里的物理设备(如交换机.路由器)不同,Linux所说的设备,其背后指的是一个类似于数据结构.内核模块或 ...

  6. linux怎样自制库_linux 下动态链接库的制作与使用

    linux 下动态链接库的制作与使用 动态链接库*.so的编译与使用- - 动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一 ...

  7. linux 环境变量文件_应急响应系列之Linux库文件劫持技术分析,有点硬核哟

    0×01 菜逼阶段 Linux库文件劫持这种案例在今年的9月份遇到过相应的案例,当时的情况是有台服务器不断向个可疑IP发包,尝试建立连接,后续使用杀软杀出木马,重启后该服务器还是不断的发包,使用net ...

  8. gcc g++ Linux下动态库_静态库

    关于Unix静态库和动态库的分析 基本概念 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀. 例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在 ...

  9. 在arm上运行x86动态库_用 qemu-user 在arm linux机器上运行amd64/x86程序

    1. qemu-user 是什么 本来, 对于 QEmu, 我只知道它是一个模拟器, 可以像 VirtualBox/VMWare 那样跑一个操作系统, 只不过 QEmu 可以在 AMD64 上面跑针对 ...

最新文章

  1. CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建
  2. Powershell AWS 自动化管理 (6) - IAM
  3. 知识图谱(二)——知识表示
  4. 视频控件VideoCapX的使用指南和常见问题合集
  5. python ftp 设置代理_用Python搭建一个简单的代理池
  6. 【idea基础知识】常用快捷键整理
  7. C#读取文本文件和C# 写文本文件
  8. python怎么读单词和古文_Python 实现文言文词频统计
  9. android 识别车牌颜色,Android、ios移动端车牌识别sdk / 车牌识别API
  10. webmax函数高级教程整理集2
  11. unity 移动物体位置的常用方法
  12. 广州华龙展贸考场——科目三
  13. 国土档案管理信息系统【档案著录】-地籍类档案著录
  14. Gson的使用——Gson解析json数组并展示在ListView控件上
  15. 初来乍到,多多关照!
  16. xyplorer保存设置失败_XYplorer有哪些独特的强大之处?又可以在哪些方面替代,或者超越total commander?...
  17. 碰到文件夹损坏咋解决?
  18. 高通SDX12:基于sgm4151x的充电IC代码架构
  19. 2019年什么工作最有前景?互联网/IT行业职业方向大盘点!
  20. 矩阵的Kronecker积的相关结论

热门文章

  1. html 修改背景透明度,html – 用css更改背景图像的不透明度
  2. jtable mysql数据库_使用MySQL数据库语法错误填充jTable
  3. ktm390蓝牙连接安卓_蓝牙音乐AudioTrack Session ID的获取
  4. 计算机学院 年度工作计划,计算机教研组年度工作计划
  5. vue require css html,requirejs vue vue.router简单框架
  6. html特效指令,vue2——指令v-text v-html v-bind
  7. linuxoracle静默安装应答文件修改_Oracle 19c的examples静默安装
  8. 服务器实际显示内存,服务器实际显示内存大小
  9. python公开发行版本_Python2 最后一个版本发布,正式迈入 Python3 时代
  10. excel怎么启用宏_EXCEL制作的小升初毕业生登记表,全自动填充,包括照片