Linux下用BusyBox制作Ramdisk全过程(转帖部分完善)-薛正华的专栏-CSDN博客

Linux下用Busy Box制作Ramdisk全过程(转帖+部分完善) 收藏

/software_zone/2008/0625/947526.shtml

1.基础知识

一个操作系统可以简单的抽象为,引导程序 内核 文件系统。

vmlinuz 是 Linux 内核的镜像文件,可以被引导程序加载,从而启动 Linux 系统。

initrd 的全称是 boot loader initialized RAM disk,它是系统启动时所使用的根文

件系统映像文件,这个文件系统中包含几个驱动模块,用来装载实际的根文件系统,比如

一个 IDE 或 SCSI 硬盘的驱动模块,内核装入这个模块之后用它来驱动硬盘,挂接硬盘到

ramdisk 的某个子目录,然后再用其中的 pivot_root 命令,将硬盘文件系统变成根文件

系统,并开始执行 init 进程,此时 init ram disk 被 umount,寿终正寝。

由此可见,我们可以用vmlinuz initrd.img 做一个文件系同长驻内存的迷你 Linu

x。

现在进入正题了:

2.编译内核

cd /usr/src/进入内核源代码目录,没有的话去官方网站,随便下

make menuconfig配置编译选项请注意一定加入 RAM disk support 和 initi

al RAM disk

(initrd) support 的支持(在 block device 中)。另外最好将ext3 文件系统编入内

核,不要编成模块。配置完毕后保存为.config(默认)

make bzImage编译

在许多内核编译参考中还有

make modules

make modules_install 两步

但我们这里没有加入对 modules 的支持,所以不需要。生成的 bzImage 文件在 us

r/src/linux/arch/.../boot 中,省略的根据你的机器架构决定,make 过程中会有提示,

比如我的是x86_64. 注意这个文件非常重要,其实就是我们最终的 vmlinuz.

(我们做的就没有上面两步,也能成功,大家注意要把许多东西编译到内核里才能

用,如把网卡、磁盘驱动等,还有一些系统命令如果内核里没有的话不支持,如:moun

t、brctl 等。如还有一种方法就是在一个完整的 OS 上查看一些软件所依赖的库函数,然

后再打到 ramdisk 的对应目录)如下例:

[root@localhost zhxue]# which brctl

/usr/sbin/brctl

[root@localhost zhxue]# ldd /usr/sbin/brctl

linux-gate.so.1 => (0x009ad000)

libsysfs.so.2 => /usr/lib/libsysfs.so.2 (0x00abd000)

libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0

/lib/ld-linux.so.2 (0

3.busybox

busybox 是一个集成了一百多个最常用 linux 命令和工具的软件,它甚至还集成了一

个 http 服务器和一个 telnet 服务器,而所有这一切功能却只有区区 1M 左右的大小.我们

平时用的那些 linux 命令就好比是分力式的电子元件,而 busybox 就好比是一个集成电路,

把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌

入式 linux 应用中,busybox 有非常广的应用,另外,大多数 linux 发行版的安装程序中都有

busybox 的身影,安装 linux 的时候案 ctrl alt F2 就能得到一个控制台,而这个控制台中的

所有命令都是指向 busybox 的链接.在我们的迷你 Linux 中,需要的也正是 busybox 的

命令和工具。

下载 /downloads/

使用过程中许多高版本都出现编译错误,所以用了一个最原始的版本 busybox-1.00

#cp busybox-1.00.tar.gz /tmp/bunny

#cd /tmp/bunny

#tar xvfz busybox-1.0

linux ramdisk 工具,Linux下用Busy Box制作Ramdisk全过程(转帖+部分完善) - 薛正华的专栏 - CSDN博客.pdf...相关推荐

  1. [Linux实用工具]Linux监控工具munin的展示(Nginx)

    Munin的安装和配置可以参考第一篇文章: [Linux实用工具]Linux监控工具munin的安装和配置 http://www.cnblogs.com/rond/p/3757804.html Mun ...

  2. 自己动手编写CSDN博客备份工具-blogspider之源码分析(3)

    作者:gzshun. 原创作品,转载请标明出处! 来源:http://blog.csdn.net/gzshun 周星驰:剪头发不应该看别人怎么剪就发神经跟流行,要配合啊!你看你的发型,完全不配合你的脸 ...

  3. python+shell 备份 CSDN 博客文章,CSDN博客备份工具

    python+shell 备份 CSDN 博客文章,CSDN博客备份工具 在 csdn 写了几年的博客了.多少也积累了两三百篇博文,近日,想把自己的这些文章全部备份下来,于是开始寻找解决方案. 我找到 ...

  4. CSDN博客 专用备份工具

    CSDN博客 专用备份工具 用要的朋友可下载. 本程序为个人所用,仅供学习. 作者:潇湘博客 网站:http://blog.csdn.net/fkedwgwy 默认文件存放位置为用户名文件夹下,也可以 ...

  5. 【工具】复制别人的CSDN博客文章到本地

    复制别人的CSDN博客文章到本地 操作流程 1.打开自己喜欢的博客的文章,然后同时按shift+ctrl+I三个键,打开开发者工具. 2.选择elements选项,按下面图片选择(chorme浏览器) ...

  6. 【小工具】CSDN博客导出工具-Java集成Maven开发

    CSDN博客导出工具 之前一直想把CSDN的博客导入到自己的网站中,可是由于博客比较多,后面受朋友老郭启发,就找了个时间用Java开发了这款小工具. 转载请注明出处:http://chenhaoxia ...

  7. ubuntu下解决“无法获得锁 ”的方法_cppmylove的博客-CSDN博客_无法获得锁

    ubuntu下解决"无法获得锁 "的方法_cppmylove的博客-CSDN博客_无法获得锁 E: 无法获得锁 /var/lib/dpkg/lock-frontend - open ...

  8. CSDN博客导出备份工具

    写的文章太多,虽然都不是什么有深度的文章,大多只是做做笔记,但还是担心,有一天博客被误删了怎么办,所以上网找,碰巧找到了这样一个csdn博客导出工具: [csdn博客文章]导出备份 貌似有的用户反馈没 ...

  9. ASP.NET Core默认注入方式下如何注入多个实现(多种方式) - sky 胡萝卜星星 - CSDN博客...

    ASP.NET Core默认注入方式下如何注入多个实现(多种方式) - sky 胡萝卜星星 - CSDN博客 原文:ASP.NET Core默认注入方式下如何注入多个实现(多种方式) - sky 胡萝 ...

最新文章

  1. python学习详解_深入解析Python小白学习【操作列表】
  2. linux之errno值为104(connetction reset by peer)
  3. python之禅星号_Python之禅
  4. 【clickhouse】ClickHouse基础、实践、调优全视角解析
  5. .net core webapi 文件上传在 Swagger 文档中的有好提示处理
  6. 微信小程序点击按钮弹出弹窗_转载 | 广东大学生就业创业微信小程序操作流程详解(一)...
  7. 工业大数据有哪些特征
  8. LVS+Keepalived 高可用环境部署记录(主主和主从模式)
  9. linux 系统信号忽略和system函数返回值问题(system的实现)
  10. 3D Slicer Programmatically Set Slice Offset and Intersections 用代码修改Slicer中的切片偏移和交叉点显示...
  11. PBOC规范研究之四、文件结构及访问(转)
  12. 【ASP.NET Web API教程】1 ASP.NET Web API入门
  13. 荔枝派Nano 全流程指南
  14. 全民居家都带不动的AI健身,到底是不是伪命题?
  15. TF-IDF mapreduce实现
  16. SEM竞价员一天的工作流程了解一下?
  17. Spring Boot项目@RunWith注解报错
  18. 项目经历怎么写_工作经历、项目经验怎么写?
  19. Mean-shift算法的直观理解
  20. linux设置定时关机及取消

热门文章

  1. Vue 项目导入字体文件
  2. 「UG/NX」Block UI 对象颜色拾取器ObjectColorPicker
  3. SAP ABAP EXCEL 下载模板并导入(数据批导)
  4. P7453 [THUSCH2017] 大魔法师 题解
  5. Ubuntu16.04LTS环境下搭建MQTT服务器以及QT实现MQTT客户端
  6. Ubuntu20.04 通过deb包方式安装微信
  7. (ICCV-2017)使用伪 3D 残差网络学习时空表示
  8. Windows下 批量重命名文件【bat实现】
  9. raspberry树莓派 -- CAN收发 - waveshare微雪
  10. 【RuoYi-Vue-Plus】扩展笔记 02 - 集成 WebSocket 发送消息到客户端(源码)